• CompuBBS code - September 2020 (1/3)

    From Aryavarta@21:1/5 to All on Thu Sep 24 02:19:18 2020
    The CompuBBS code; please use it to communicate :-) ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- readme.txt file below between horizontal rule ----------------------------------------------------------------------------- The CompuBBS code; please use it to communicate :-)
    Satya Prasad Popuri
    Bachelors in Computer Science

    Silence is death. The need for an open source bulletin board system is
    vital for communication to prosper across this earth planet. In my
    travels I have discovered certain tools that help many to research and
    develop with ease while maintaining a sound and cogent system toward
    such an end. This CompuBBS is an open source version of the NYUNET
    bulletin board system I discovered while mistakenly studying and working
    there in my quest for enligtenment. As fate would have it, I chanced
    upon certain tools that I now present with an assortment of other tools
    I have discovered in my triste with death while working in the I.T.
    industry.

    Indeed, such tools have helped me here and there to maintain a
    consistent understanding of not only Unix fundamentals but also a feel
    good experience that is second to none. These tools represent the love
    affair that never quit. Not only has it valorized and inundated across
    this earth planet but has been the aims and means of my reason for
    living.

    Man needs a proper meditation of the heart and this tool list is one of
    the things I have used to be able to better understand myself and
    others. It was during the college years that I was exposed to such
    tools in over 3 universities and 11 years of employment here and there.
    They just work. Given the level of complexity the graphical user
    interface engenders it is refreshing to fall back on a tool base that is
    time immemorial. So please feel free to use them and contribute toward
    the open source endeavor to foster freedom of speech.

    For me prayer works but without a means of communication that is
    uninhibited and unmoderated we are at a loss for words. That is the
    shear beauty of the traditional tools as tin of the USENET NEWS servers;
    as well as the irssi of the IRC servers. It goes on. The list of tools
    I mention are as follows based on over 20 years of experience with the
    UNIX pragma.

    0. Alpine - a nice email client
    1. Tin - a nice newsreader
    2. Irssi - a nice internet relay chat client
    3. Lynx - a nice web browser
    4. Gopher - a nice ftp client
    5. Nano - a nice text editor
    6. Bash - a nice command prompt
    7. T.I.A. - a nice programming editor [This is known as Tiny IDE
    Ada/Anything editor. I am trying to encourage the Ada programming
    language over C++ and Java.]
    8. Nslookup - a nice directory service
    9. Telnet - a nice remote login tool
    A. Tailer - a nice monitoring tool [This I discovered at a .com I worked
    for. It simply goes to an i.p. address and searches for a string. If
    the string is not there an alert is genertated. Maybe it is out there
    in the wild blue yonder of the internet.]
    B. Calc - a nice calculator tool
    C. ECN - a nice day trading game [This is Josh Green's day trading
    algorithym in Python when he worked at Daytek. I posted it somewhere on
    USENET but I am unable to find it.... If you are able to find it please
    let me know. I encourage learning how to deal with money because "when
    men and women get together [money] gets in the way".] That too, they
    say, education is about learning how to communicate and learn how to
    deal with money.
    D. Tutor - a nice Unix tutorial [This tutorial I discovered at New York University. I wonder if there is an open source version of it.] It is
    a great way to learn the Unix operating system.
    E. Bible - a nice text based bible program [Does anyone know of an old
    school Bible program that is text based and worthy of praise? Prayer to
    Jesus Christ works!]
    F. Sendpage - this is a nice beeper software that helps to keep in touch
    with loved ones and others through the beeper or pager tool.
    $. Exit - a simple exit to the whole compubbs tools for research and development.

    I have foregoed useing the queue tool as it may cause some problems as
    far as managing and maintaining. The queue tool is always an issue for
    any I.T. computer lab as it is often the target of attacks by
    miscreants. There are other tools, such as 'talk', that are also good
    if you know how to use them in the code I mentioned. I refrained from mentioning talk because it requires input about the user and terminal to literally talk to using a text based interface. Maybe someone can
    design a text based form to fill out that will allow for one to use talk
    and then go back to the main menu. The file list for this compubbs
    endeavor is as follows:

    compubbs.sh
    bash-menu.sh
    bash-draw.sh
    readme.txt

    Please find the code in the following USENET newsgroups:

    soc.culture.indian
    soc.culture.asian.american
    soc.culture.usa
    soc.cutlure.spain
    soc.culture.bangladesh
    soc.culture.puerto.rico
    alt.computer.consultants
    alt.sex.stories.hetero

    Let's setup servers of this type of an unmoderated bulletin board
    system. While the internet has encouraged reciprocity or mutual
    respect, the BBS has encouraged comaraderie or mutual trust. This
    cybermatrix endeavor which I am trying to contravecy is an attempt
    toward synergy or mutual success. As well, there is a need for unity or
    mutual purpose. The T.E.A.M. acronymn for "together everyone
    accomplishes more" is worth encouraging.

    The following are some nice networks I am encouraging toward some level
    of mutuality:

    # - network - tool - idnustry - smurf - mutuality - signal ----------------------------------------------------------
    1 - Simulcast - radio - spiritual - arabian - comaradery - analog
    2 - Internet - computer - technological - indian - reciprocity - digital
    3 - Cybermatrix - television - financial - hispanic - synergy - ?
    4 - Tektocracy - beeper - political - russian - unity - ?
    5 - Sneakerweb - tablet - educational - gypsy - infidelity - ?
    6 - Darkring - console - architectural - african - ? - ?
    7 - Datatron - tracker(i.e. fitbit) - medical - european - ? - ?
    8 - Heliopex - watch - recreational - artican - ? - ?
    9 - Transpace - PDA(a.k.a smartphone) - sexual - oriental - ? -
    ? 10 - Stargate - controller - audiovisual - australian - ? - ?

    As well I have noticed the following dutys that seem to withstand the
    test of time and surpass all understanding with my I.T. industry. They
    are as follows:

    CIS Sysadmins:
    (Computer Information Specialties)
    ----------------------------------
    1. networking - solaris : british/grocer
    2. databasing - linux : oriental/escort
    3. multimedia - macintosh osx(bsd) : european/physcian
    4. programming - minix/x11/react os : indian/consultant
    5. productivity - haiku? : (Terron,Tamil,Taino,Tiwi)lawyer?
    6. security – sgi? : australian/designer
    7. management - sap/vax? : african/landlord
    8. troubleshooting - cytrix? : hispanic/accountant
    9. testing - sco/sylk? : arabian/scholar
    10.gaming - irix : russian//bouncer?
    ----------
    Outside contractors:
    11.tutoring - amix : jewish/teacher (outside contractor)

    With respect to the involvement of the Jewish blight upon humanity
    within the I.T. industry I find they are a curse more than anything.
    All they do is sabotage whichever system to justify yet another failed investment into thier diaspora. It is like that among them as their
    history of failure is not only evidenced in the Holy Bible as in the
    kingdom of Egypt but also in whichever other civilization to have graced
    this earth. That is why the Jews of the Yiddish, Zen, Vudu, Hindu,
    LGBTQ, NGR, Creole, Hapa, Hoon, and Roma ancestorys are known as the
    Negroid race, the niggers of the world.

    Anyway, join us in this endeavor to liberate humanity from the vice grip
    of the jew baiting culture of the idiot and wrong. I pray to Jesus
    Christ that you find them useful and worthy of praise as I have. This
    compubbs is a brief history of time and space of a world so good. In a
    way, the nature of the good is to overcome and defeat the bad. So, God
    bless and God speed for Jesus Christ is God. Always a pleasure. May
    you and your loved one's in the name of Jesus Christ be well, happy, prosperous, peacefull, healthy, and safe.

    P.S.
    Let it be said, "[financial] frustration creates a great imbalance
    in mind and body." We need to allay our antogonizing forces so that
    open source fiat like monies are provided for all concerned. The UNIX
    may help with learning how to communicate but the FIAT may help with
    learning how to deal with monies.

    The only issues I have are the evil empire of the JUBU and their
    branches of the Transcedentalism, Allopathy, Microsoft, Niggervision, Palmistry, and Insurance corporations of whichever bilk and swindel.
    There is that of a thing as evil and it is their incessant anti-Christ
    ways which ruin the whole thing. That is the issue. The dangers of the Jewish, Zen, Vudu, Hindu, LGBTQ, NGR, Creole, Hapa, Hoon, Roma masters
    of the nothing or meaningless things as in zazen(breathing excercises),
    mantra recitation, and koan visualization of the Satanic Dharma is more
    than anything. They are more of an evil and a bad influence than one can possibly dream. Quite a number bank on those people in order to
    eliminate innocent and good people to further their zero sum end game.
    Simply say the words Jesus Christ in your prayers to escape from such
    negative influences.

    The following republics are the bases of the evil empire of the JUBU:

    Taiwan - empire of Zen
    Israel - empire of Jews
    Sicily - empire of LGBTQ
    Haiti - empire of Vudu
    Hawaii - empire of Hindus
    Trinidad - empire of Creole?
    Indonesia - empire of Hapa?
    Phillipines - empire of Ngrs?
    Tibet - empire of Hoon?
    Brooklyn - empire of the Roma?

    Transcendentalist mafia are from such areas acenstorally and are
    harbingers of the worst known massacre known to man, called the
    religious war. This ComuBBS tool is to help people communicate for the
    sake of not only the ontology of Jesus Christ but also to better get
    clues on how to deal with those people of the Dying Arts. I really want
    to setup this system so that those stinken Jews are not a part of it.
    Their trespass into literally every industry to do stupid and useless
    things is a real danger for all concerned. Those people of the Dying
    Arts and the Jewish diaspora are like monkeys hell bent on suicide and sacrifice, to name a few. With their penchant toward brain degenerating
    ways, we are headed toward a nuclear war and economic collapse the world
    over unlike anything before. What is the use?

    Already the evil empire of the JUBU has perpetuated the destruction of
    the World Trade Center through thier Y2K bug fix pretention. Already
    the state of Louisiana has been horribly flooded because of yet another
    Jew baiting fetish gone wrong. Already the coronavirus has been
    unleashed to kill off more people.

    I see a trend and history by the Jewish diaspora to literally war with
    anyone for the sake of thier religious war. A religious war documented
    in religious books, life experiences, and television programming. It is
    like all over the place. Open and unmoderated communication for our
    people of Abraham hostaged by those of the evil empire of the JUBU is a
    good means toward liberating us from the ignorance which is not bliss.
    More will arrive to the body of Christ. Believe you me, those stinken
    Jews have to be defeated.

    Already, the Europeans, Russians, Chinese, and now the Arabians have politically made it known that Jews are unwanted in their realm. I as a
    Desi or native of the Indian subcontinent do the same. I tell ya,
    travelling to my homeland of the Indian subcontinent or Aryavarta was a
    real shocking reality to see so many of my people in abject life
    conditions due to the Hindu pride and prejudice maintained for over
    5,000 years and then some. Those gypsy niggers or even to say the
    negroid race are the very reason why Desi civilization could never come
    up and was the riddicule of the masses.

    Now with this wonderful capitalism, we can see a world where anyone and everyone is able to use such weapons to ward off the evil ones. Nothing
    worse than trying to find enlightenment in the wrong way through a one
    way ticket to the foothills of the Himalayas after following some
    Satanic master of the Zen empire of Taiwan. Ignorance is not bliss and ignorance of Jesus Christ is like the worst. God bless and God speed
    for Jesus Christ is God. Always a pleasure. Nothing worse than being
    on a park bench drinking liquor going through an existential doubt.
    Believe it.

    Sincerely,

    Satya Prasad Popuri (Satyababu)

    Signature: "The nature of the good is to overcome and defeat the bad." ----------------------------------------------------------------------------- compubbs.sh file below between horizontal rule ----------------------------------------------------------------------------- #!/bin/bash

    # Ensure we are running under bash
    if [ "$BASH_SOURCE" = "" ]; then /bin/bash "$0" exit 0 fi

    #
    # Load bash-menu script
    #
    # NOTE: Ensure this is done before using or overriding menu
    # functions/variables.
    #
    . "bash-menu.sh"


    ################################
    ## Example Menu Actions
    ##
    ## They should return 1 to indicate that the menu should continue, or
    ## return 0 to signify the menu should exit.
    ################################
    actionA() { alpine return 1
    }

    actionB() { tin -r -g freenews.netfront.net return 1
    }

    actionC() { irssi return 1
    }

    actionD() { lynx return 1
    }

    actionE() { gopher return 1
    }

    actionF() { nano return 1
    }

    actionG() { bash return 1
    }

    actionH() { tia return 1
    }

    actionI() { nslookup return 1
    }

    actionJ() { telnet return 1
    }

    actionK() { tailer return 1
    }

    actionL() { calc return 1
    }

    actionM() { ecn return 1
    }

    actionN() { bible return 1
    }

    actionO() { tutor return 1
    }

    actionP() { sendpage return 1
    }

    actionX() { return 0
    }


    ################################
    ## Setup Example Menu
    ################################

    ## Menu Item Text
    ##
    ## It makes sense to have "Exit" as the last item, as pressing Esc will
    ## jump to last item (and pressing Esc while on last item will perform
    ## the associated action).
    ##
    ## NOTE: If these are not all the same width the menu highlight will
    ## look wonky
    menuItems=( "0. Alpine ----------------------- email client" "1. Tin
    -------------------------- usenet news reader" "2. Irssi
    ------------------------ irc network" "3. Lynx
    ------------------------- web browser" "4. Gopher
    ----------------------- ftp protocol" "5. Nano
    ------------------------- text editor" "6. Bash
    ------------------------- command prompt" "7. T.I.A.
    ----------------------- programming IDE" "8. Nslookup
    --------------------- directory service" "9. Telnet
    ----------------------- remote login" "A. Tailer
    ----------------------- monitoring tool" "B. Calc
    ------------------------- calculator" "C. ECN
    -------------------------- daytrading game" "D. Tutor
    ------------------------ unix tutorial" "E. Bible
    ------------------------ way of enlightenment" "F. Sendpage
    --------------------- beeper server" "$. Exit
    ------------------------- God speed :-)"
    )

    ## Menu Item Actions
    menuActions=( actionA actionB actionC actionD actionE actionF actionG
    actionH actionI actionJ actionK actionL actionM actionN actionO
    actionP actionX
    )

    ## Override some menu defaults
    menuTitle=" CompuBBS - The nature of the good is to overcome and defeat
    the bad..." menuFooter=" Enter=Select, Navigate via Up/Down/First
    number/letter - [Prayer works!]" menuWidth=74 menuLeft=13 menuHighlight=$DRAW_COL_WHITE


    ################################
    ## Run Menu
    ################################
    menuInit menuLoop


    exit 0 ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- bash-menu.sh file below between horizontal rule ----------------------------------------------------------------------------- #!/bin/bash

    #
    # Public Functions
    #
    # menuInit() menuLoop()
    #
    #
    # Public Variables to Override
    #
    # Should these get passed into menuInit() rather than be set as global
    # script variables?
    #
    # menuTop # Top row of menu (defaults to row 2) menuLeft # Left offset
    # for menu item text (defaults to column 15) menuWidth # Width of menu
    # (defaults to 42 columns) menuMargin # Left offset for menu border
    # (defaults to column 4)
    #
    # menuColour # Colour of menu text (defaults to DRAW_COL_WHITE)
    # menuHighlight # Highlight colour for menu (defaults to
    # DRAW_COL_GREEN)
    #
    # menuTitle # Title of menu menuFooter # Footer text of menu
    #
    # menuItems # Array containing menu item text menuActions # Array
    # containing functions to call upon menu item selection
    #


    # Ensure we are running under bash (will not work under sh or dash etc)
    if [ "$BASH_SOURCE" = "" ]; then echo "ERROR: bash-menu requires to be
    running under bash" exit 1
    fi

    # Get script root (as we are sourced from another script, $0 will not be
    # us)
    declare -r menuScript=$(readlink -f ${BASH_SOURCE[0]})
    menuRoot=$(dirname "$menuScript")

    # Ensure we can access our dependencies
    if [ ! -s "$menuRoot/bash-draw.sh" ]; then echo "ERROR: Missing required
    draw.sh script" exit 1
    fi

    # Load terminal drawing functions
    . "$menuRoot/bash-draw.sh"


    ################################
    # Private Variables
    #
    # These should not be overridden
    ################################
    declare -a menuItems declare -a menuActions

    menuHeaderText="" menuFooterText="" menuBorderText=""


    ################################
    # Setup Menu
    #
    # These are defaults which should be overridden as required. ################################

    # Top of menu (row 2)
    menuTop=2

    # Left offset for menu items (not border)
    menuLeft=15

    # Width of menu
    menuWidth=42

    # Left offset for menu border (not menu items)
    menuMargin=4

    menuItems[0]="Exit" menuActions[0]="return 0"

    menuItemCount=1 menuLastItem=0

    menuColour=$DRAW_COL_WHITE menuHighlight=$DRAW_COL_GREEN

    menuTitle=" Super Bash Menu System" menuFooter=" Enter=Select, Up/Down=Prev/Next Option"


    ################################
    # Initialise Menu
    ################################
    menuInit() { menuItemCount=${#menuItems[@]}
    menuLastItem=$((menuItemCount-1))

    # Ensure header and footer are padded appropriately
    menuHeaderText=`printf "%-${menuWidth}s" "$menuTitle"`
    menuFooterText=`printf "%-${menuWidth}s" "$menuFooter"`

    # Menu (side) borders
    local marginSpaces=$((menuMargin-1)) local
    menuSpaces=$((menuWidth-2)) local leftGap=`printf
    "%${marginSpaces}s" ""` local midGap=`printf "%${menuSpaces}s" ""`
    menuBorderText="${leftGap}x${midGap}x"
    }


    ################################
    # Show Menu
    ################################
    menu_Display() { local menuSize=$((menuItemCount+2)) local
    menuEnd=$((menuSize+menuTop+1))

    drawClear drawColour $menuColour $menuHighlight

    # Menu header
    drawHighlightAt $menuTop $menuMargin "$menuHeaderText" 1

    # Menu (side) borders
    for row in $(seq 1 $menuSize); do drawSpecial "$menuBorderText" 1
    done

    # Menu footer
    drawHighlightAt $menuEnd $menuMargin "$menuFooterText" 1

    # Menu items
    for item in $(seq 0 $menuLastItem); do menu_ClearItem $item done
    }


    ################################
    # Mark Menu Items
    ################################

    # Ensure menu item is not highlighted
    menu_ClearItem() { local item=$1 local top=$((menuTop+item+2)) local
    menuText=${menuItems[$item]}

    drawPlainAt $top $menuLeft "$menuText"
    }

    # Highlight menu item
    menu_HighlightItem() { local item=$1 local top=$((menuTop+item+2)) local
    menuText=${menuItems[$item]}

    drawHighlightAt $top $menuLeft "$menuText"
    }


    ################################
    # Wait for and process user input
    ################################
    menu_HandleInput() { local choice=$1

    local after=$((choice+1)) [[ $after -gt $menuLastItem ]] && after=0

    local before=$((choice-1)) [[ $before -lt 0 ]] &&
    before=$menuLastItem

    # Clear highlight from prev/next menu items
    menu_ClearItem $before menu_ClearItem $after

    # Highlight current menu item
    menu_HighlightItem $choice

    # Get keyboard input
    local key="" local extra=""

    read -s -n1 key 2> /dev/null >&2 while read -s -n1 -t .05 extra 2>
    /dev/null >&2 ; do
    key="$key$extra" done

    # Handle known keys
    local escKey=`echo -en "\033"` local upKey=`echo -en "\033[A"` local
    downKey=`echo -en "\033[B"`

    if [[ $key = $upKey ]]; then return $before elif [[ $key = $downKey
    ]]; then
    return $after elif [[ $key = $escKey ]]; then if [[ $choice -eq
    $menuLastItem ]]; then
    # Pressing Esc while on last menu item will trigger action
    # This is a helper as we assume the last menu option is exit
    key="" else
    # Jumping possibly more than 1 (next/prev) item
    menu_ClearItem $choice return $menuLastItem fi elif [[
    ${#key} -eq 1 ]]; then
    # See if we wanrt to jump to a menu item by entering the first
    # character
    for index in $(seq 0 $menuLastItem) ; do local
    item=${menuItems[$index]} local startChar=${item:0:1} if [[
    "$key" = "$startChar" ]]; then
    # Jumping possibly more than 1 (next/prev) item
    menu_ClearItem $choice return $index fi done fi

    if [[ "$key" = "" ]]; then
    # Notify that Enter key was pressed
    return 255 fi

    return $choice
    }


    ################################
    # Main Menu Loop
    ################################
    menuLoop() { local choice=0 local running=1

    menu_Display

    while [[ $running -eq 1 ]]; do
    # Enable case insensitive matching
    local caseMatch=`shopt -p nocasematch` shopt -s nocasematch

    menu_HandleInput $choice local newChoice=$?

    # Revert to previous case matching
    $caseMatch

    if [[ $newChoice -eq 255 ]]; then
    # Enter pressed - run menu action
    drawClear action=${menuActions[$choice]} $action running=$?

    # Back from action If we are still running, redraw menu
    [[ $running -eq 1 ]] && menu_Display

    elif [[ $newChoice -lt $menuItemCount ]]; then
    # Update selected menu item
    choice=$newChoice fi done

    # Cleanup screen
    drawClear
    }
    ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- bash-draw.sh file below between horizontal rule ----------------------------------------------------------------------------- #!/bin/bash

    #
    # Public Functions:
    #
    # drawClear() drawColour(colour = DRAW_COL_DEF, bgColour =
    # DRAW_COL_DEF)
    #
    # drawPlain(text, newLine = 0) drawSpecial(text, newLine = 0)
    # drawHighlight(text, newLine = 0) drawPlainAt(left, top, text,
    # newLine = 0) drawHighlightAt(left, top, text, newLine = 0)
    #
    #
    # Colours
    #
    # DRAW_COL_DEF # Default colour DRAW_COL_BLACK DRAW_COL_WHITE
    # DRAW_COL_RED DRAW_COL_GREEN DRAW_COL_YELLOW DRAW_COL_BLUE
    # DRAW_COL_GRAY # Light gray (grey?)
    #


    # Ensure we are running under bash (will not work under sh or dash etc)
    if [ "$BASH_SOURCE" = "" ]; then echo "ERROR: bash-draw requires to be
    running under bash" exit 1
    fi


    DRAW_COL_DEF=39 DRAW_COL_BLACK=30 DRAW_COL_WHITE=97 DRAW_COL_RED=31 DRAW_COL_GREEN=32 DRAW_COL_YELLOW=33 DRAW_COL_BLUE=34 DRAW_COL_GRAY=37


    # drawClear()
    drawClear() { $ESC_WRITE "\033c"
    }

    # drawColour(colour = DRAW_COL_DEF, bgColour = DRAW_COL_DEF)
    drawColour() { local colour=$DRAW_COL_DEF local
    bgColour=$((DRAW_COL_DEF+10))

    if [[ ! -z "$1" && "$1" != "" ]]; then colour="$1" fi

    if [[ ! -z "$2" && "$2" != "" ]]; then bgColour="$2" fi

    $ESC_ECHO "\033c\033[H\033[J\033[${colour};${bgColour}m\033[J"
    }

    # drawPlain(text, newLine = 0)
    drawPlain() { if [[ -z "$2" || "$2" -eq 0 ]]; then $ESC_WRITE "$1" else
    $ESC_ECHO "$1"
    fi
    }

    # drawSpecial(text, newLine = 0)
    drawSpecial() { [[ -z "$2" ]] && newLine=0 || newLine="$2"

    draw_SetDrawMode drawPlain "$1" "$newLine" draw_SetWriteMode
    }

    # drawHighlight(text, newLine = 0)
    drawHighlight() { [[ -z "$2" ]] && newLine=0 || newLine="$2"

    draw_StartHighlight drawPlain "$1" "$newLine" draw_EndHighlight
    }

    # drawPlainAt(left, top, text, newLine = 0)
    drawPlainAt() { [[ -z "$4" ]] && newLine=0 || newLine="$4"

    draw_MoveTo $1 $2 drawPlain "$3" "$newLine"
    }

    # drawHighlightAt(left, top, text, newLine = 0)
    drawHighlightAt() { [[ -z "$4" ]] && newLine=0 || newLine="$4"

    draw_StartHighlight drawPlainAt "$1" "$2" "$3" "$newLine"
    draw_EndHighlight
    }


    # Write escape sequence with no newline
    ESC_WRITE='echo -en'

    # Write escape sequence adding newline
    ESC_ECHO='echo -e'


    # Move cursor to specified location
    draw_MoveTo() { $ESC_WRITE "\033[${1};${2}H"
    }

    draw_StartHighlight() { $ESC_WRITE "\033[7m"
    }

    draw_EndHighlight() { $ESC_WRITE "\033[27m"
    }

    draw_SetDrawMode() { $ESC_WRITE "\033%@\033(0"
    }

    draw_SetWriteMode() { $ESC_WRITE "\033(B"
    }
    ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- CompuBBS - ECN code ----------------------------------------------------------------------------- Please find below the CompuBBS ECN code originally developed by Josh
    Greene. It is something a former friend of mine once told me about as
    he worked at Daytek during the dawn of the internet. At the time I was
    to oblivous to the fact that money is the very means by which our lives
    revolve around. As they say, "when men and women get together [money]
    gets in the way". The Josh Greene's ECN day trading code is intended as
    a game for now until it becomes more viable for the purposes of the Cybermatrix.

    The below ECN day trading code is in Python. So check it out. Try to
    make it into a game at first so that you and your network can learn how
    to play it before proceeding. I heard when it comes to the stock market
    one can literally loose their shirt on this. So beware. Ignorance is
    not bliss.

    The intention for this code is toward the establishment of the
    cybermatrix or to say the opern source fiat like monies initiative for
    the sake of synergy or mutual success. The meaning of cybermartix is
    virtual as in cyber and a database of the nth dimension as in matrix.
    So the cybermatrix is a network of databases of a given
    dimension(matricees) with a larger databases of the nth
    dimension(matrix). So, let's do this.

    God bless and God speed for Jesus Christ is God. Always a pleasure.
    Good luck to you all. I want you to win. Allahu Akhbar! ----------------------------------------------------------------------------- Josh Greene's Island ECN day trading code in Python between horizontal
    rule ----------------------------------------------------------------------------- SET TALK OFF SET CURSOR OFF SET SAFETY OFF SET MEMOWIDTH TO 80 CLEAR ALL
    CLOSE ALL CLEAR CLEAR MACRO && Get rid of F keys typing commands SET
    HELP OFF && Needed to clear out F1 key too

    =rand(-1)

    #define COREDEST "FFFFFFFF0673"

    gstoredflag = .F. && Are there any messages buffered that could be
    flushed?

    #define VERSION "2.40"

    malertfile = "M:\logs\island2.err" mholdofffile =
    "M:\island2\holdoff.txt"

    blanknbuffer="R"+replicate( " " , 200 ) && get BRIGADEN message here

    #define CORELINELEN 124 define COREMESSAGELEN 122

    #define READPORT "067F"

    load int99

    define window title from 0,0 to 0,scols()-1 COLOR "W/B" NONE define
    window output from 1,0 to 10,scols()-1 NONE COLOR "W+/N" define window
    ticker from 12,0 to srows()-1,scols()-1 NONE define window status from
    11,0 to 11,scols()-1 COLOR "W+/R" NONE

    do title do initstatus

    activate window title activate window status

    activate window output activate window ticker


    s = fopen( "ISLAND2.TXT" )

    if s <= 0 wait window "COULD NOT FIND ISLAND2.TXT IN CURRENT DIR. RUN
    RESET." quit
    endif

    x = fgets( s )

    if "ISLAND2" # x wait window "ACCOUNT IN ISLAND2.TXT DOES NOT MATCH
    ACCOUNT ENV VAR. RUN RESET." =fclose( s ) quit
    endif

    tcount = 0 && For counting random stuff

    tseq = val( fgets( s ) ) && Next order number tmatch = val( fgets( s ) )
    && Next match number tnextdead = val( fgets( s ) ) && Next dead order (zero=none) =fclose( s )

    select select(1) use events set order to WHEN

    tnow = 0

    ttoolate = 0 && Count the too late to cancel events

    gaccept = .F. && Let any orders in? Set by SOD, cleared by EOD
    gactaccept = .F. && Let ACT orders in? Set by SOD, cleared by EOA

    geom = .F. && Have we gotten EOM yet?

    gprinting = .F. && Print incoming messages?

    go top

    if eof("EVENTS")

    tnext = 99999.999

    else

    tnext = WHEN && Time of next event

    endif

    select 0 use sources set order to SOURCE

    select select(1) use island

    gsx = alltrim( str( date() - {2/6/1996} ) )

    gsession = left( "0000000000" , 9-len( gsx ) ) + gsx + "F"

    s="N"+gsession+"5050" && Open the islandfile for writing Mold on port
    5050 call int99 with s

    if s # "n" && Valid open file?

    do alert with "InitMold filed with reason >"+s

    do case

    case s = "i"

    sm ="Error opening files in deney-write mode"

    case s = "j"

    sm = "a file had a partial line fragment"

    case s = "k"

    sm = "not all trailing files are empty"

    case s = "l"

    sm = "all files full"

    otherwise

    sm = "Unknown error"

    endcase

    do alert with sm

    wait window "Error on ISLAND.OUT or ISLAND2.OUT OPEN:"+s

    quit

    endif

    select island

    tecount = 0 && Assume worst case, just to make sure ecount is high
    enough txcount = 0 && Cancels

    x = "L"+READPORT+" " && Read Island2 requests call int99 with x if x #
    "l"
    do alert with "Could not open Command listen!" endif


    gstatdelay = 0.25 do showstatus gnextstats = seconds() + gstatdelay

    gmolddelay = 1 && Time between mold heartbeats gmoldheart = seconds() + gmolddelay && Time to send a MOLD heartbeat by doing a FLUSH

    gmessages = 0 && Number of messages written to the stream gpackets = 0
    && Number of packets writtento the stream

    mdone = .F.

    do while !mdone

    tnow = seconds()

    do while tnow >= tnext

    if !EVENTS.PROCESSED

    do swrite with "G" , EVENTS.CODE

    select EVENTS replace PROCESSED with .T. select
    ISLAND

    else

    ? time()+" Event bypassed:"+ EVENTS.CODE

    endif

    do seteventflags with EVENTS.CODE

    skip 1 in EVENTS

    if eof("EVENTS")

    tnext = 99999.999

    else

    tnext = EVENTS.WHEN

    endif

    enddo

    nbuffer = blanknbuffer

    call int99 with nbuffer

    if nbuffer = "r"

    tlenstr = substr( nbuffer , 2 , 5 )

    tlen = val( tlenstr )

    tmessage = substr( nbuffer , 43 , tlen )

    if gprinting ? time()+" >"+tmessage+"<" endif

    if tmessage = "P" && PING REQUEST

    tsource = substr( nbuffer ,11 , 8)

    do pingreply with tsource , tmessage

    else

    do processtcpip with tmessage

    endif

    else && No pending commands...

    if gstoredflag


    [continued in next message]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Aryavarta@21:1/5 to All on Thu Sep 24 02:20:22 2020
    The CompuBBS code; please use it to communicate :-) ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- readme.txt file below between horizontal rule ----------------------------------------------------------------------------- The CompuBBS code; please use it to communicate :-)
    Satya Prasad Popuri
    Bachelors in Computer Science

    Silence is death. The need for an open source bulletin board system is
    vital for communication to prosper across this earth planet. In my
    travels I have discovered certain tools that help many to research and
    develop with ease while maintaining a sound and cogent system toward
    such an end. This CompuBBS is an open source version of the NYUNET
    bulletin board system I discovered while mistakenly studying and working
    there in my quest for enligtenment. As fate would have it, I chanced
    upon certain tools that I now present with an assortment of other tools
    I have discovered in my triste with death while working in the I.T.
    industry.

    Indeed, such tools have helped me here and there to maintain a
    consistent understanding of not only Unix fundamentals but also a feel
    good experience that is second to none. These tools represent the love
    affair that never quit. Not only has it valorized and inundated across
    this earth planet but has been the aims and means of my reason for
    living.

    Man needs a proper meditation of the heart and this tool list is one of
    the things I have used to be able to better understand myself and
    others. It was during the college years that I was exposed to such
    tools in over 3 universities and 11 years of employment here and there.
    They just work. Given the level of complexity the graphical user
    interface engenders it is refreshing to fall back on a tool base that is
    time immemorial. So please feel free to use them and contribute toward
    the open source endeavor to foster freedom of speech.

    For me prayer works but without a means of communication that is
    uninhibited and unmoderated we are at a loss for words. That is the
    shear beauty of the traditional tools as tin of the USENET NEWS servers;
    as well as the irssi of the IRC servers. It goes on. The list of tools
    I mention are as follows based on over 20 years of experience with the
    UNIX pragma.

    0. Alpine - a nice email client
    1. Tin - a nice newsreader
    2. Irssi - a nice internet relay chat client
    3. Lynx - a nice web browser
    4. Gopher - a nice ftp client
    5. Nano - a nice text editor
    6. Bash - a nice command prompt
    7. T.I.A. - a nice programming editor [This is known as Tiny IDE
    Ada/Anything editor. I am trying to encourage the Ada programming
    language over C++ and Java.]
    8. Nslookup - a nice directory service
    9. Telnet - a nice remote login tool
    A. Tailer - a nice monitoring tool [This I discovered at a .com I worked
    for. It simply goes to an i.p. address and searches for a string. If
    the string is not there an alert is genertated. Maybe it is out there
    in the wild blue yonder of the internet.]
    B. Calc - a nice calculator tool
    C. ECN - a nice day trading game [This is Josh Green's day trading
    algorithym in Python when he worked at Daytek. I posted it somewhere on
    USENET but I am unable to find it.... If you are able to find it please
    let me know. I encourage learning how to deal with money because "when
    men and women get together [money] gets in the way".] That too, they
    say, education is about learning how to communicate and learn how to
    deal with money.
    D. Tutor - a nice Unix tutorial [This tutorial I discovered at New York University. I wonder if there is an open source version of it.] It is
    a great way to learn the Unix operating system.
    E. Bible - a nice text based bible program [Does anyone know of an old
    school Bible program that is text based and worthy of praise? Prayer to
    Jesus Christ works!]
    F. Sendpage - this is a nice beeper software that helps to keep in touch
    with loved ones and others through the beeper or pager tool.
    $. Exit - a simple exit to the whole compubbs tools for research and development.

    I have foregoed useing the queue tool as it may cause some problems as
    far as managing and maintaining. The queue tool is always an issue for
    any I.T. computer lab as it is often the target of attacks by
    miscreants. There are other tools, such as 'talk', that are also good
    if you know how to use them in the code I mentioned. I refrained from mentioning talk because it requires input about the user and terminal to literally talk to using a text based interface. Maybe someone can
    design a text based form to fill out that will allow for one to use talk
    and then go back to the main menu. The file list for this compubbs
    endeavor is as follows:

    compubbs.sh
    bash-menu.sh
    bash-draw.sh
    readme.txt

    Please find the code in the following USENET newsgroups:

    soc.culture.indian
    soc.culture.asian.american
    soc.culture.usa
    soc.cutlure.spain
    soc.culture.bangladesh
    soc.culture.puerto.rico
    alt.computer.consultants
    alt.sex.stories.hetero

    Let's setup servers of this type of an unmoderated bulletin board
    system. While the internet has encouraged reciprocity or mutual
    respect, the BBS has encouraged comaraderie or mutual trust. This
    cybermatrix endeavor which I am trying to contravecy is an attempt
    toward synergy or mutual success. As well, there is a need for unity or
    mutual purpose. The T.E.A.M. acronymn for "together everyone
    accomplishes more" is worth encouraging.

    The following are some nice networks I am encouraging toward some level
    of mutuality:

    # - network - tool - idnustry - smurf - mutuality - signal ----------------------------------------------------------
    1 - Simulcast - radio - spiritual - arabian - comaradery - analog
    2 - Internet - computer - technological - indian - reciprocity - digital
    3 - Cybermatrix - television - financial - hispanic - synergy - ?
    4 - Tektocracy - beeper - political - russian - unity - ?
    5 - Sneakerweb - tablet - educational - gypsy - infidelity - ?
    6 - Darkring - console - architectural - african - ? - ?
    7 - Datatron - tracker(i.e. fitbit) - medical - european - ? - ?
    8 - Heliopex - watch - recreational - artican - ? - ?
    9 - Transpace - PDA(a.k.a smartphone) - sexual - oriental - ? -
    ? 10 - Stargate - controller - audiovisual - australian - ? - ?

    As well I have noticed the following dutys that seem to withstand the
    test of time and surpass all understanding with my I.T. industry. They
    are as follows:

    CIS Sysadmins:
    (Computer Information Specialties)
    ----------------------------------
    1. networking - solaris : british/grocer
    2. databasing - linux : oriental/escort
    3. multimedia - macintosh osx(bsd) : european/physcian
    4. programming - minix/x11/react os : indian/consultant
    5. productivity - haiku? : (Terron,Tamil,Taino,Tiwi)lawyer?
    6. security – sgi? : australian/designer
    7. management - sap/vax? : african/landlord
    8. troubleshooting - cytrix? : hispanic/accountant
    9. testing - sco/sylk? : arabian/scholar
    10.gaming - irix : russian//bouncer?
    ----------
    Outside contractors:
    11.tutoring - amix : jewish/teacher (outside contractor)

    With respect to the involvement of the Jewish blight upon humanity
    within the I.T. industry I find they are a curse more than anything.
    All they do is sabotage whichever system to justify yet another failed investment into thier diaspora. It is like that among them as their
    history of failure is not only evidenced in the Holy Bible as in the
    kingdom of Egypt but also in whichever other civilization to have graced
    this earth. That is why the Jews of the Yiddish, Zen, Vudu, Hindu,
    LGBTQ, NGR, Creole, Hapa, Hoon, and Roma ancestorys are known as the
    Negroid race, the niggers of the world.

    Anyway, join us in this endeavor to liberate humanity from the vice grip
    of the jew baiting culture of the idiot and wrong. I pray to Jesus
    Christ that you find them useful and worthy of praise as I have. This
    compubbs is a brief history of time and space of a world so good. In a
    way, the nature of the good is to overcome and defeat the bad. So, God
    bless and God speed for Jesus Christ is God. Always a pleasure. May
    you and your loved one's in the name of Jesus Christ be well, happy, prosperous, peacefull, healthy, and safe.

    P.S.
    Let it be said, "[financial] frustration creates a great imbalance
    in mind and body." We need to allay our antogonizing forces so that
    open source fiat like monies are provided for all concerned. The UNIX
    may help with learning how to communicate but the FIAT may help with
    learning how to deal with monies.

    The only issues I have are the evil empire of the JUBU and their
    branches of the Transcedentalism, Allopathy, Microsoft, Niggervision, Palmistry, and Insurance corporations of whichever bilk and swindel.
    There is that of a thing as evil and it is their incessant anti-Christ
    ways which ruin the whole thing. That is the issue. The dangers of the Jewish, Zen, Vudu, Hindu, LGBTQ, NGR, Creole, Hapa, Hoon, Roma masters
    of the nothing or meaningless things as in zazen(breathing excercises),
    mantra recitation, and koan visualization of the Satanic Dharma is more
    than anything. They are more of an evil and a bad influence than one can possibly dream. Quite a number bank on those people in order to
    eliminate innocent and good people to further their zero sum end game.
    Simply say the words Jesus Christ in your prayers to escape from such
    negative influences.

    The following republics are the bases of the evil empire of the JUBU:

    Taiwan - empire of Zen
    Israel - empire of Jews
    Sicily - empire of LGBTQ
    Haiti - empire of Vudu
    Hawaii - empire of Hindus
    Trinidad - empire of Creole?
    Indonesia - empire of Hapa?
    Phillipines - empire of Ngrs?
    Tibet - empire of Hoon?
    Brooklyn - empire of the Roma?

    Transcendentalist mafia are from such areas acenstorally and are
    harbingers of the worst known massacre known to man, called the
    religious war. This ComuBBS tool is to help people communicate for the
    sake of not only the ontology of Jesus Christ but also to better get
    clues on how to deal with those people of the Dying Arts. I really want
    to setup this system so that those stinken Jews are not a part of it.
    Their trespass into literally every industry to do stupid and useless
    things is a real danger for all concerned. Those people of the Dying
    Arts and the Jewish diaspora are like monkeys hell bent on suicide and sacrifice, to name a few. With their penchant toward brain degenerating
    ways, we are headed toward a nuclear war and economic collapse the world
    over unlike anything before. What is the use?

    Already the evil empire of the JUBU has perpetuated the destruction of
    the World Trade Center through thier Y2K bug fix pretention. Already
    the state of Louisiana has been horribly flooded because of yet another
    Jew baiting fetish gone wrong. Already the coronavirus has been
    unleashed to kill off more people.

    I see a trend and history by the Jewish diaspora to literally war with
    anyone for the sake of thier religious war. A religious war documented
    in religious books, life experiences, and television programming. It is
    like all over the place. Open and unmoderated communication for our
    people of Abraham hostaged by those of the evil empire of the JUBU is a
    good means toward liberating us from the ignorance which is not bliss.
    More will arrive to the body of Christ. Believe you me, those stinken
    Jews have to be defeated.

    Already, the Europeans, Russians, Chinese, and now the Arabians have politically made it known that Jews are unwanted in their realm. I as a
    Desi or native of the Indian subcontinent do the same. I tell ya,
    travelling to my homeland of the Indian subcontinent or Aryavarta was a
    real shocking reality to see so many of my people in abject life
    conditions due to the Hindu pride and prejudice maintained for over
    5,000 years and then some. Those gypsy niggers or even to say the
    negroid race are the very reason why Desi civilization could never come
    up and was the riddicule of the masses.

    Now with this wonderful capitalism, we can see a world where anyone and everyone is able to use such weapons to ward off the evil ones. Nothing
    worse than trying to find enlightenment in the wrong way through a one
    way ticket to the foothills of the Himalayas after following some
    Satanic master of the Zen empire of Taiwan. Ignorance is not bliss and ignorance of Jesus Christ is like the worst. God bless and God speed
    for Jesus Christ is God. Always a pleasure. Nothing worse than being
    on a park bench drinking liquor going through an existential doubt.
    Believe it.

    Sincerely,

    Satya Prasad Popuri (Satyababu)

    Signature: "The nature of the good is to overcome and defeat the bad." ----------------------------------------------------------------------------- compubbs.sh file below between horizontal rule ----------------------------------------------------------------------------- #!/bin/bash

    # Ensure we are running under bash
    if [ "$BASH_SOURCE" = "" ]; then /bin/bash "$0" exit 0 fi

    #
    # Load bash-menu script
    #
    # NOTE: Ensure this is done before using or overriding menu
    # functions/variables.
    #
    . "bash-menu.sh"


    ################################
    ## Example Menu Actions
    ##
    ## They should return 1 to indicate that the menu should continue, or
    ## return 0 to signify the menu should exit.
    ################################
    actionA() { alpine return 1
    }

    actionB() { tin -r -g freenews.netfront.net return 1
    }

    actionC() { irssi return 1
    }

    actionD() { lynx return 1
    }

    actionE() { gopher return 1
    }

    actionF() { nano return 1
    }

    actionG() { bash return 1
    }

    actionH() { tia return 1
    }

    actionI() { nslookup return 1
    }

    actionJ() { telnet return 1
    }

    actionK() { tailer return 1
    }

    actionL() { calc return 1
    }

    actionM() { ecn return 1
    }

    actionN() { bible return 1
    }

    actionO() { tutor return 1
    }

    actionP() { sendpage return 1
    }

    actionX() { return 0
    }


    ################################
    ## Setup Example Menu
    ################################

    ## Menu Item Text
    ##
    ## It makes sense to have "Exit" as the last item, as pressing Esc will
    ## jump to last item (and pressing Esc while on last item will perform
    ## the associated action).
    ##
    ## NOTE: If these are not all the same width the menu highlight will
    ## look wonky
    menuItems=( "0. Alpine ----------------------- email client" "1. Tin
    -------------------------- usenet news reader" "2. Irssi
    ------------------------ irc network" "3. Lynx
    ------------------------- web browser" "4. Gopher
    ----------------------- ftp protocol" "5. Nano
    ------------------------- text editor" "6. Bash
    ------------------------- command prompt" "7. T.I.A.
    ----------------------- programming IDE" "8. Nslookup
    --------------------- directory service" "9. Telnet
    ----------------------- remote login" "A. Tailer
    ----------------------- monitoring tool" "B. Calc
    ------------------------- calculator" "C. ECN
    -------------------------- daytrading game" "D. Tutor
    ------------------------ unix tutorial" "E. Bible
    ------------------------ way of enlightenment" "F. Sendpage
    --------------------- beeper server" "$. Exit
    ------------------------- God speed :-)"
    )

    ## Menu Item Actions
    menuActions=( actionA actionB actionC actionD actionE actionF actionG
    actionH actionI actionJ actionK actionL actionM actionN actionO
    actionP actionX
    )

    ## Override some menu defaults
    menuTitle=" CompuBBS - The nature of the good is to overcome and defeat
    the bad..." menuFooter=" Enter=Select, Navigate via Up/Down/First
    number/letter - [Prayer works!]" menuWidth=74 menuLeft=13 menuHighlight=$DRAW_COL_WHITE


    ################################
    ## Run Menu
    ################################
    menuInit menuLoop


    exit 0 ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- bash-menu.sh file below between horizontal rule ----------------------------------------------------------------------------- #!/bin/bash

    #
    # Public Functions
    #
    # menuInit() menuLoop()
    #
    #
    # Public Variables to Override
    #
    # Should these get passed into menuInit() rather than be set as global
    # script variables?
    #
    # menuTop # Top row of menu (defaults to row 2) menuLeft # Left offset
    # for menu item text (defaults to column 15) menuWidth # Width of menu
    # (defaults to 42 columns) menuMargin # Left offset for menu border
    # (defaults to column 4)
    #
    # menuColour # Colour of menu text (defaults to DRAW_COL_WHITE)
    # menuHighlight # Highlight colour for menu (defaults to
    # DRAW_COL_GREEN)
    #
    # menuTitle # Title of menu menuFooter # Footer text of menu
    #
    # menuItems # Array containing menu item text menuActions # Array
    # containing functions to call upon menu item selection
    #


    # Ensure we are running under bash (will not work under sh or dash etc)
    if [ "$BASH_SOURCE" = "" ]; then echo "ERROR: bash-menu requires to be
    running under bash" exit 1
    fi

    # Get script root (as we are sourced from another script, $0 will not be
    # us)
    declare -r menuScript=$(readlink -f ${BASH_SOURCE[0]})
    menuRoot=$(dirname "$menuScript")

    # Ensure we can access our dependencies
    if [ ! -s "$menuRoot/bash-draw.sh" ]; then echo "ERROR: Missing required
    draw.sh script" exit 1
    fi

    # Load terminal drawing functions
    . "$menuRoot/bash-draw.sh"


    ################################
    # Private Variables
    #
    # These should not be overridden
    ################################
    declare -a menuItems declare -a menuActions

    menuHeaderText="" menuFooterText="" menuBorderText=""


    ################################
    # Setup Menu
    #
    # These are defaults which should be overridden as required. ################################

    # Top of menu (row 2)
    menuTop=2

    # Left offset for menu items (not border)
    menuLeft=15

    # Width of menu
    menuWidth=42

    # Left offset for menu border (not menu items)
    menuMargin=4

    menuItems[0]="Exit" menuActions[0]="return 0"

    menuItemCount=1 menuLastItem=0

    menuColour=$DRAW_COL_WHITE menuHighlight=$DRAW_COL_GREEN

    menuTitle=" Super Bash Menu System" menuFooter=" Enter=Select, Up/Down=Prev/Next Option"


    ################################
    # Initialise Menu
    ################################
    menuInit() { menuItemCount=${#menuItems[@]}
    menuLastItem=$((menuItemCount-1))

    # Ensure header and footer are padded appropriately
    menuHeaderText=`printf "%-${menuWidth}s" "$menuTitle"`
    menuFooterText=`printf "%-${menuWidth}s" "$menuFooter"`

    # Menu (side) borders
    local marginSpaces=$((menuMargin-1)) local
    menuSpaces=$((menuWidth-2)) local leftGap=`printf
    "%${marginSpaces}s" ""` local midGap=`printf "%${menuSpaces}s" ""`
    menuBorderText="${leftGap}x${midGap}x"
    }


    ################################
    # Show Menu
    ################################
    menu_Display() { local menuSize=$((menuItemCount+2)) local
    menuEnd=$((menuSize+menuTop+1))

    drawClear drawColour $menuColour $menuHighlight

    # Menu header
    drawHighlightAt $menuTop $menuMargin "$menuHeaderText" 1

    # Menu (side) borders
    for row in $(seq 1 $menuSize); do drawSpecial "$menuBorderText" 1
    done

    # Menu footer
    drawHighlightAt $menuEnd $menuMargin "$menuFooterText" 1

    # Menu items
    for item in $(seq 0 $menuLastItem); do menu_ClearItem $item done
    }


    ################################
    # Mark Menu Items
    ################################

    # Ensure menu item is not highlighted
    menu_ClearItem() { local item=$1 local top=$((menuTop+item+2)) local
    menuText=${menuItems[$item]}

    drawPlainAt $top $menuLeft "$menuText"
    }

    # Highlight menu item
    menu_HighlightItem() { local item=$1 local top=$((menuTop+item+2)) local
    menuText=${menuItems[$item]}

    drawHighlightAt $top $menuLeft "$menuText"
    }


    ################################
    # Wait for and process user input
    ################################
    menu_HandleInput() { local choice=$1

    local after=$((choice+1)) [[ $after -gt $menuLastItem ]] && after=0

    local before=$((choice-1)) [[ $before -lt 0 ]] &&
    before=$menuLastItem

    # Clear highlight from prev/next menu items
    menu_ClearItem $before menu_ClearItem $after

    # Highlight current menu item
    menu_HighlightItem $choice

    # Get keyboard input
    local key="" local extra=""

    read -s -n1 key 2> /dev/null >&2 while read -s -n1 -t .05 extra 2>
    /dev/null >&2 ; do
    key="$key$extra" done

    # Handle known keys
    local escKey=`echo -en "\033"` local upKey=`echo -en "\033[A"` local
    downKey=`echo -en "\033[B"`

    if [[ $key = $upKey ]]; then return $before elif [[ $key = $downKey
    ]]; then
    return $after elif [[ $key = $escKey ]]; then if [[ $choice -eq
    $menuLastItem ]]; then
    # Pressing Esc while on last menu item will trigger action
    # This is a helper as we assume the last menu option is exit
    key="" else
    # Jumping possibly more than 1 (next/prev) item
    menu_ClearItem $choice return $menuLastItem fi elif [[
    ${#key} -eq 1 ]]; then
    # See if we wanrt to jump to a menu item by entering the first
    # character
    for index in $(seq 0 $menuLastItem) ; do local
    item=${menuItems[$index]} local startChar=${item:0:1} if [[
    "$key" = "$startChar" ]]; then
    # Jumping possibly more than 1 (next/prev) item
    menu_ClearItem $choice return $index fi done fi

    if [[ "$key" = "" ]]; then
    # Notify that Enter key was pressed
    return 255 fi

    return $choice
    }


    ################################
    # Main Menu Loop
    ################################
    menuLoop() { local choice=0 local running=1

    menu_Display

    while [[ $running -eq 1 ]]; do
    # Enable case insensitive matching
    local caseMatch=`shopt -p nocasematch` shopt -s nocasematch

    menu_HandleInput $choice local newChoice=$?

    # Revert to previous case matching
    $caseMatch

    if [[ $newChoice -eq 255 ]]; then
    # Enter pressed - run menu action
    drawClear action=${menuActions[$choice]} $action running=$?

    # Back from action If we are still running, redraw menu
    [[ $running -eq 1 ]] && menu_Display

    elif [[ $newChoice -lt $menuItemCount ]]; then
    # Update selected menu item
    choice=$newChoice fi done

    # Cleanup screen
    drawClear
    }
    ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- bash-draw.sh file below between horizontal rule ----------------------------------------------------------------------------- #!/bin/bash

    #
    # Public Functions:
    #
    # drawClear() drawColour(colour = DRAW_COL_DEF, bgColour =
    # DRAW_COL_DEF)
    #
    # drawPlain(text, newLine = 0) drawSpecial(text, newLine = 0)
    # drawHighlight(text, newLine = 0) drawPlainAt(left, top, text,
    # newLine = 0) drawHighlightAt(left, top, text, newLine = 0)
    #
    #
    # Colours
    #
    # DRAW_COL_DEF # Default colour DRAW_COL_BLACK DRAW_COL_WHITE
    # DRAW_COL_RED DRAW_COL_GREEN DRAW_COL_YELLOW DRAW_COL_BLUE
    # DRAW_COL_GRAY # Light gray (grey?)
    #


    # Ensure we are running under bash (will not work under sh or dash etc)
    if [ "$BASH_SOURCE" = "" ]; then echo "ERROR: bash-draw requires to be
    running under bash" exit 1
    fi


    DRAW_COL_DEF=39 DRAW_COL_BLACK=30 DRAW_COL_WHITE=97 DRAW_COL_RED=31 DRAW_COL_GREEN=32 DRAW_COL_YELLOW=33 DRAW_COL_BLUE=34 DRAW_COL_GRAY=37


    # drawClear()
    drawClear() { $ESC_WRITE "\033c"
    }

    # drawColour(colour = DRAW_COL_DEF, bgColour = DRAW_COL_DEF)
    drawColour() { local colour=$DRAW_COL_DEF local
    bgColour=$((DRAW_COL_DEF+10))

    if [[ ! -z "$1" && "$1" != "" ]]; then colour="$1" fi

    if [[ ! -z "$2" && "$2" != "" ]]; then bgColour="$2" fi

    $ESC_ECHO "\033c\033[H\033[J\033[${colour};${bgColour}m\033[J"
    }

    # drawPlain(text, newLine = 0)
    drawPlain() { if [[ -z "$2" || "$2" -eq 0 ]]; then $ESC_WRITE "$1" else
    $ESC_ECHO "$1"
    fi
    }

    # drawSpecial(text, newLine = 0)
    drawSpecial() { [[ -z "$2" ]] && newLine=0 || newLine="$2"

    draw_SetDrawMode drawPlain "$1" "$newLine" draw_SetWriteMode
    }

    # drawHighlight(text, newLine = 0)
    drawHighlight() { [[ -z "$2" ]] && newLine=0 || newLine="$2"

    draw_StartHighlight drawPlain "$1" "$newLine" draw_EndHighlight
    }

    # drawPlainAt(left, top, text, newLine = 0)
    drawPlainAt() { [[ -z "$4" ]] && newLine=0 || newLine="$4"

    draw_MoveTo $1 $2 drawPlain "$3" "$newLine"
    }

    # drawHighlightAt(left, top, text, newLine = 0)
    drawHighlightAt() { [[ -z "$4" ]] && newLine=0 || newLine="$4"

    draw_StartHighlight drawPlainAt "$1" "$2" "$3" "$newLine"
    draw_EndHighlight
    }


    # Write escape sequence with no newline
    ESC_WRITE='echo -en'

    # Write escape sequence adding newline
    ESC_ECHO='echo -e'


    # Move cursor to specified location
    draw_MoveTo() { $ESC_WRITE "\033[${1};${2}H"
    }

    draw_StartHighlight() { $ESC_WRITE "\033[7m"
    }

    draw_EndHighlight() { $ESC_WRITE "\033[27m"
    }

    draw_SetDrawMode() { $ESC_WRITE "\033%@\033(0"
    }

    draw_SetWriteMode() { $ESC_WRITE "\033(B"
    }
    ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- CompuBBS - ECN code ----------------------------------------------------------------------------- Please find below the CompuBBS ECN code originally developed by Josh
    Greene. It is something a former friend of mine once told me about as
    he worked at Daytek during the dawn of the internet. At the time I was
    to oblivous to the fact that money is the very means by which our lives
    revolve around. As they say, "when men and women get together [money]
    gets in the way". The Josh Greene's ECN day trading code is intended as
    a game for now until it becomes more viable for the purposes of the Cybermatrix.

    The below ECN day trading code is in Python. So check it out. Try to
    make it into a game at first so that you and your network can learn how
    to play it before proceeding. I heard when it comes to the stock market
    one can literally loose their shirt on this. So beware. Ignorance is
    not bliss.

    The intention for this code is toward the establishment of the
    cybermatrix or to say the opern source fiat like monies initiative for
    the sake of synergy or mutual success. The meaning of cybermartix is
    virtual as in cyber and a database of the nth dimension as in matrix.
    So the cybermatrix is a network of databases of a given
    dimension(matricees) with a larger databases of the nth
    dimension(matrix). So, let's do this.

    God bless and God speed for Jesus Christ is God. Always a pleasure.
    Good luck to you all. I want you to win. Allahu Akhbar! ----------------------------------------------------------------------------- Josh Greene's Island ECN day trading code in Python between horizontal
    rule ----------------------------------------------------------------------------- SET TALK OFF SET CURSOR OFF SET SAFETY OFF SET MEMOWIDTH TO 80 CLEAR ALL
    CLOSE ALL CLEAR CLEAR MACRO && Get rid of F keys typing commands SET
    HELP OFF && Needed to clear out F1 key too

    =rand(-1)

    #define COREDEST "FFFFFFFF0673"

    gstoredflag = .F. && Are there any messages buffered that could be
    flushed?

    #define VERSION "2.40"

    malertfile = "M:\logs\island2.err" mholdofffile =
    "M:\island2\holdoff.txt"

    blanknbuffer="R"+replicate( " " , 200 ) && get BRIGADEN message here

    #define CORELINELEN 124 define COREMESSAGELEN 122

    #define READPORT "067F"

    load int99

    define window title from 0,0 to 0,scols()-1 COLOR "W/B" NONE define
    window output from 1,0 to 10,scols()-1 NONE COLOR "W+/N" define window
    ticker from 12,0 to srows()-1,scols()-1 NONE define window status from
    11,0 to 11,scols()-1 COLOR "W+/R" NONE

    do title do initstatus

    activate window title activate window status

    activate window output activate window ticker


    s = fopen( "ISLAND2.TXT" )

    if s <= 0 wait window "COULD NOT FIND ISLAND2.TXT IN CURRENT DIR. RUN
    RESET." quit
    endif

    x = fgets( s )

    if "ISLAND2" # x wait window "ACCOUNT IN ISLAND2.TXT DOES NOT MATCH
    ACCOUNT ENV VAR. RUN RESET." =fclose( s ) quit
    endif

    tcount = 0 && For counting random stuff

    tseq = val( fgets( s ) ) && Next order number tmatch = val( fgets( s ) )
    && Next match number tnextdead = val( fgets( s ) ) && Next dead order (zero=none) =fclose( s )

    select select(1) use events set order to WHEN

    tnow = 0

    ttoolate = 0 && Count the too late to cancel events

    gaccept = .F. && Let any orders in? Set by SOD, cleared by EOD
    gactaccept = .F. && Let ACT orders in? Set by SOD, cleared by EOA

    geom = .F. && Have we gotten EOM yet?

    gprinting = .F. && Print incoming messages?

    go top

    if eof("EVENTS")

    tnext = 99999.999

    else

    tnext = WHEN && Time of next event

    endif

    select 0 use sources set order to SOURCE

    select select(1) use island

    gsx = alltrim( str( date() - {2/6/1996} ) )

    gsession = left( "0000000000" , 9-len( gsx ) ) + gsx + "F"

    s="N"+gsession+"5050" && Open the islandfile for writing Mold on port
    5050 call int99 with s

    if s # "n" && Valid open file?

    do alert with "InitMold filed with reason >"+s

    do case

    case s = "i"

    sm ="Error opening files in deney-write mode"

    case s = "j"

    sm = "a file had a partial line fragment"

    case s = "k"

    sm = "not all trailing files are empty"

    case s = "l"

    sm = "all files full"

    otherwise

    sm = "Unknown error"

    endcase

    do alert with sm

    wait window "Error on ISLAND.OUT or ISLAND2.OUT OPEN:"+s

    quit

    endif

    select island

    tecount = 0 && Assume worst case, just to make sure ecount is high
    enough txcount = 0 && Cancels

    x = "L"+READPORT+" " && Read Island2 requests call int99 with x if x #
    "l"
    do alert with "Could not open Command listen!" endif


    gstatdelay = 0.25 do showstatus gnextstats = seconds() + gstatdelay

    gmolddelay = 1 && Time between mold heartbeats gmoldheart = seconds() + gmolddelay && Time to send a MOLD heartbeat by doing a FLUSH

    gmessages = 0 && Number of messages written to the stream gpackets = 0
    && Number of packets writtento the stream

    mdone = .F.

    do while !mdone

    tnow = seconds()

    do while tnow >= tnext

    if !EVENTS.PROCESSED

    do swrite with "G" , EVENTS.CODE

    select EVENTS replace PROCESSED with .T. select
    ISLAND

    else

    ? time()+" Event bypassed:"+ EVENTS.CODE

    endif

    do seteventflags with EVENTS.CODE

    skip 1 in EVENTS

    if eof("EVENTS")

    tnext = 99999.999

    else

    tnext = EVENTS.WHEN

    endif

    enddo

    nbuffer = blanknbuffer

    call int99 with nbuffer

    if nbuffer = "r"

    tlenstr = substr( nbuffer , 2 , 5 )

    tlen = val( tlenstr )

    tmessage = substr( nbuffer , 43 , tlen )

    if gprinting ? time()+" >"+tmessage+"<" endif

    if tmessage = "P" && PING REQUEST

    tsource = substr( nbuffer ,11 , 8)

    do pingreply with tsource , tmessage

    else

    do processtcpip with tmessage

    endif

    else && No pending commands...

    if gstoredflag


    [continued in next message]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Aryavarta@21:1/5 to All on Thu Sep 24 02:21:24 2020
    The CompuBBS code; please use it to communicate :-) ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- readme.txt file below between horizontal rule ----------------------------------------------------------------------------- The CompuBBS code; please use it to communicate :-)
    Satya Prasad Popuri
    Bachelors in Computer Science

    Silence is death. The need for an open source bulletin board system is
    vital for communication to prosper across this earth planet. In my
    travels I have discovered certain tools that help many to research and
    develop with ease while maintaining a sound and cogent system toward
    such an end. This CompuBBS is an open source version of the NYUNET
    bulletin board system I discovered while mistakenly studying and working
    there in my quest for enligtenment. As fate would have it, I chanced
    upon certain tools that I now present with an assortment of other tools
    I have discovered in my triste with death while working in the I.T.
    industry.

    Indeed, such tools have helped me here and there to maintain a
    consistent understanding of not only Unix fundamentals but also a feel
    good experience that is second to none. These tools represent the love
    affair that never quit. Not only has it valorized and inundated across
    this earth planet but has been the aims and means of my reason for
    living.

    Man needs a proper meditation of the heart and this tool list is one of
    the things I have used to be able to better understand myself and
    others. It was during the college years that I was exposed to such
    tools in over 3 universities and 11 years of employment here and there.
    They just work. Given the level of complexity the graphical user
    interface engenders it is refreshing to fall back on a tool base that is
    time immemorial. So please feel free to use them and contribute toward
    the open source endeavor to foster freedom of speech.

    For me prayer works but without a means of communication that is
    uninhibited and unmoderated we are at a loss for words. That is the
    shear beauty of the traditional tools as tin of the USENET NEWS servers;
    as well as the irssi of the IRC servers. It goes on. The list of tools
    I mention are as follows based on over 20 years of experience with the
    UNIX pragma.

    0. Alpine - a nice email client
    1. Tin - a nice newsreader
    2. Irssi - a nice internet relay chat client
    3. Lynx - a nice web browser
    4. Gopher - a nice ftp client
    5. Nano - a nice text editor
    6. Bash - a nice command prompt
    7. T.I.A. - a nice programming editor [This is known as Tiny IDE
    Ada/Anything editor. I am trying to encourage the Ada programming
    language over C++ and Java.]
    8. Nslookup - a nice directory service
    9. Telnet - a nice remote login tool
    A. Tailer - a nice monitoring tool [This I discovered at a .com I worked
    for. It simply goes to an i.p. address and searches for a string. If
    the string is not there an alert is genertated. Maybe it is out there
    in the wild blue yonder of the internet.]
    B. Calc - a nice calculator tool
    C. ECN - a nice day trading game [This is Josh Green's day trading
    algorithym in Python when he worked at Daytek. I posted it somewhere on
    USENET but I am unable to find it.... If you are able to find it please
    let me know. I encourage learning how to deal with money because "when
    men and women get together [money] gets in the way".] That too, they
    say, education is about learning how to communicate and learn how to
    deal with money.
    D. Tutor - a nice Unix tutorial [This tutorial I discovered at New York University. I wonder if there is an open source version of it.] It is
    a great way to learn the Unix operating system.
    E. Bible - a nice text based bible program [Does anyone know of an old
    school Bible program that is text based and worthy of praise? Prayer to
    Jesus Christ works!]
    F. Sendpage - this is a nice beeper software that helps to keep in touch
    with loved ones and others through the beeper or pager tool.
    $. Exit - a simple exit to the whole compubbs tools for research and development.

    I have foregoed useing the queue tool as it may cause some problems as
    far as managing and maintaining. The queue tool is always an issue for
    any I.T. computer lab as it is often the target of attacks by
    miscreants. There are other tools, such as 'talk', that are also good
    if you know how to use them in the code I mentioned. I refrained from mentioning talk because it requires input about the user and terminal to literally talk to using a text based interface. Maybe someone can
    design a text based form to fill out that will allow for one to use talk
    and then go back to the main menu. The file list for this compubbs
    endeavor is as follows:

    compubbs.sh
    bash-menu.sh
    bash-draw.sh
    readme.txt

    Please find the code in the following USENET newsgroups:

    soc.culture.indian
    soc.culture.asian.american
    soc.culture.usa
    soc.cutlure.spain
    soc.culture.bangladesh
    soc.culture.puerto.rico
    alt.computer.consultants
    alt.sex.stories.hetero

    Let's setup servers of this type of an unmoderated bulletin board
    system. While the internet has encouraged reciprocity or mutual
    respect, the BBS has encouraged comaraderie or mutual trust. This
    cybermatrix endeavor which I am trying to contravecy is an attempt
    toward synergy or mutual success. As well, there is a need for unity or
    mutual purpose. The T.E.A.M. acronymn for "together everyone
    accomplishes more" is worth encouraging.

    The following are some nice networks I am encouraging toward some level
    of mutuality:

    # - network - tool - idnustry - smurf - mutuality - signal ----------------------------------------------------------
    1 - Simulcast - radio - spiritual - arabian - comaradery - analog
    2 - Internet - computer - technological - indian - reciprocity - digital
    3 - Cybermatrix - television - financial - hispanic - synergy - ?
    4 - Tektocracy - beeper - political - russian - unity - ?
    5 - Sneakerweb - tablet - educational - gypsy - infidelity - ?
    6 - Darkring - console - architectural - african - ? - ?
    7 - Datatron - tracker(i.e. fitbit) - medical - european - ? - ?
    8 - Heliopex - watch - recreational - artican - ? - ?
    9 - Transpace - PDA(a.k.a smartphone) - sexual - oriental - ? -
    ? 10 - Stargate - controller - audiovisual - australian - ? - ?

    As well I have noticed the following dutys that seem to withstand the
    test of time and surpass all understanding with my I.T. industry. They
    are as follows:

    CIS Sysadmins:
    (Computer Information Specialties)
    ----------------------------------
    1. networking - solaris : british/grocer
    2. databasing - linux : oriental/escort
    3. multimedia - macintosh osx(bsd) : european/physcian
    4. programming - minix/x11/react os : indian/consultant
    5. productivity - haiku? : (Terron,Tamil,Taino,Tiwi)lawyer?
    6. security – sgi? : australian/designer
    7. management - sap/vax? : african/landlord
    8. troubleshooting - cytrix? : hispanic/accountant
    9. testing - sco/sylk? : arabian/scholar
    10.gaming - irix : russian//bouncer?
    ----------
    Outside contractors:
    11.tutoring - amix : jewish/teacher (outside contractor)

    With respect to the involvement of the Jewish blight upon humanity
    within the I.T. industry I find they are a curse more than anything.
    All they do is sabotage whichever system to justify yet another failed investment into thier diaspora. It is like that among them as their
    history of failure is not only evidenced in the Holy Bible as in the
    kingdom of Egypt but also in whichever other civilization to have graced
    this earth. That is why the Jews of the Yiddish, Zen, Vudu, Hindu,
    LGBTQ, NGR, Creole, Hapa, Hoon, and Roma ancestorys are known as the
    Negroid race, the niggers of the world.

    Anyway, join us in this endeavor to liberate humanity from the vice grip
    of the jew baiting culture of the idiot and wrong. I pray to Jesus
    Christ that you find them useful and worthy of praise as I have. This
    compubbs is a brief history of time and space of a world so good. In a
    way, the nature of the good is to overcome and defeat the bad. So, God
    bless and God speed for Jesus Christ is God. Always a pleasure. May
    you and your loved one's in the name of Jesus Christ be well, happy, prosperous, peacefull, healthy, and safe.

    P.S.
    Let it be said, "[financial] frustration creates a great imbalance
    in mind and body." We need to allay our antogonizing forces so that
    open source fiat like monies are provided for all concerned. The UNIX
    may help with learning how to communicate but the FIAT may help with
    learning how to deal with monies.

    The only issues I have are the evil empire of the JUBU and their
    branches of the Transcedentalism, Allopathy, Microsoft, Niggervision, Palmistry, and Insurance corporations of whichever bilk and swindel.
    There is that of a thing as evil and it is their incessant anti-Christ
    ways which ruin the whole thing. That is the issue. The dangers of the Jewish, Zen, Vudu, Hindu, LGBTQ, NGR, Creole, Hapa, Hoon, Roma masters
    of the nothing or meaningless things as in zazen(breathing excercises),
    mantra recitation, and koan visualization of the Satanic Dharma is more
    than anything. They are more of an evil and a bad influence than one can possibly dream. Quite a number bank on those people in order to
    eliminate innocent and good people to further their zero sum end game.
    Simply say the words Jesus Christ in your prayers to escape from such
    negative influences.

    The following republics are the bases of the evil empire of the JUBU:

    Taiwan - empire of Zen
    Israel - empire of Jews
    Sicily - empire of LGBTQ
    Haiti - empire of Vudu
    Hawaii - empire of Hindus
    Trinidad - empire of Creole?
    Indonesia - empire of Hapa?
    Phillipines - empire of Ngrs?
    Tibet - empire of Hoon?
    Brooklyn - empire of the Roma?

    Transcendentalist mafia are from such areas acenstorally and are
    harbingers of the worst known massacre known to man, called the
    religious war. This ComuBBS tool is to help people communicate for the
    sake of not only the ontology of Jesus Christ but also to better get
    clues on how to deal with those people of the Dying Arts. I really want
    to setup this system so that those stinken Jews are not a part of it.
    Their trespass into literally every industry to do stupid and useless
    things is a real danger for all concerned. Those people of the Dying
    Arts and the Jewish diaspora are like monkeys hell bent on suicide and sacrifice, to name a few. With their penchant toward brain degenerating
    ways, we are headed toward a nuclear war and economic collapse the world
    over unlike anything before. What is the use?

    Already the evil empire of the JUBU has perpetuated the destruction of
    the World Trade Center through thier Y2K bug fix pretention. Already
    the state of Louisiana has been horribly flooded because of yet another
    Jew baiting fetish gone wrong. Already the coronavirus has been
    unleashed to kill off more people.

    I see a trend and history by the Jewish diaspora to literally war with
    anyone for the sake of thier religious war. A religious war documented
    in religious books, life experiences, and television programming. It is
    like all over the place. Open and unmoderated communication for our
    people of Abraham hostaged by those of the evil empire of the JUBU is a
    good means toward liberating us from the ignorance which is not bliss.
    More will arrive to the body of Christ. Believe you me, those stinken
    Jews have to be defeated.

    Already, the Europeans, Russians, Chinese, and now the Arabians have politically made it known that Jews are unwanted in their realm. I as a
    Desi or native of the Indian subcontinent do the same. I tell ya,
    travelling to my homeland of the Indian subcontinent or Aryavarta was a
    real shocking reality to see so many of my people in abject life
    conditions due to the Hindu pride and prejudice maintained for over
    5,000 years and then some. Those gypsy niggers or even to say the
    negroid race are the very reason why Desi civilization could never come
    up and was the riddicule of the masses.

    Now with this wonderful capitalism, we can see a world where anyone and everyone is able to use such weapons to ward off the evil ones. Nothing
    worse than trying to find enlightenment in the wrong way through a one
    way ticket to the foothills of the Himalayas after following some
    Satanic master of the Zen empire of Taiwan. Ignorance is not bliss and ignorance of Jesus Christ is like the worst. God bless and God speed
    for Jesus Christ is God. Always a pleasure. Nothing worse than being
    on a park bench drinking liquor going through an existential doubt.
    Believe it.

    Sincerely,

    Satya Prasad Popuri (Satyababu)

    Signature: "The nature of the good is to overcome and defeat the bad." ----------------------------------------------------------------------------- compubbs.sh file below between horizontal rule ----------------------------------------------------------------------------- #!/bin/bash

    # Ensure we are running under bash
    if [ "$BASH_SOURCE" = "" ]; then /bin/bash "$0" exit 0 fi

    #
    # Load bash-menu script
    #
    # NOTE: Ensure this is done before using or overriding menu
    # functions/variables.
    #
    . "bash-menu.sh"


    ################################
    ## Example Menu Actions
    ##
    ## They should return 1 to indicate that the menu should continue, or
    ## return 0 to signify the menu should exit.
    ################################
    actionA() { alpine return 1
    }

    actionB() { tin -r -g freenews.netfront.net return 1
    }

    actionC() { irssi return 1
    }

    actionD() { lynx return 1
    }

    actionE() { gopher return 1
    }

    actionF() { nano return 1
    }

    actionG() { bash return 1
    }

    actionH() { tia return 1
    }

    actionI() { nslookup return 1
    }

    actionJ() { telnet return 1
    }

    actionK() { tailer return 1
    }

    actionL() { calc return 1
    }

    actionM() { ecn return 1
    }

    actionN() { bible return 1
    }

    actionO() { tutor return 1
    }

    actionP() { sendpage return 1
    }

    actionX() { return 0
    }


    ################################
    ## Setup Example Menu
    ################################

    ## Menu Item Text
    ##
    ## It makes sense to have "Exit" as the last item, as pressing Esc will
    ## jump to last item (and pressing Esc while on last item will perform
    ## the associated action).
    ##
    ## NOTE: If these are not all the same width the menu highlight will
    ## look wonky
    menuItems=( "0. Alpine ----------------------- email client" "1. Tin
    -------------------------- usenet news reader" "2. Irssi
    ------------------------ irc network" "3. Lynx
    ------------------------- web browser" "4. Gopher
    ----------------------- ftp protocol" "5. Nano
    ------------------------- text editor" "6. Bash
    ------------------------- command prompt" "7. T.I.A.
    ----------------------- programming IDE" "8. Nslookup
    --------------------- directory service" "9. Telnet
    ----------------------- remote login" "A. Tailer
    ----------------------- monitoring tool" "B. Calc
    ------------------------- calculator" "C. ECN
    -------------------------- daytrading game" "D. Tutor
    ------------------------ unix tutorial" "E. Bible
    ------------------------ way of enlightenment" "F. Sendpage
    --------------------- beeper server" "$. Exit
    ------------------------- God speed :-)"
    )

    ## Menu Item Actions
    menuActions=( actionA actionB actionC actionD actionE actionF actionG
    actionH actionI actionJ actionK actionL actionM actionN actionO
    actionP actionX
    )

    ## Override some menu defaults
    menuTitle=" CompuBBS - The nature of the good is to overcome and defeat
    the bad..." menuFooter=" Enter=Select, Navigate via Up/Down/First
    number/letter - [Prayer works!]" menuWidth=74 menuLeft=13 menuHighlight=$DRAW_COL_WHITE


    ################################
    ## Run Menu
    ################################
    menuInit menuLoop


    exit 0 ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- bash-menu.sh file below between horizontal rule ----------------------------------------------------------------------------- #!/bin/bash

    #
    # Public Functions
    #
    # menuInit() menuLoop()
    #
    #
    # Public Variables to Override
    #
    # Should these get passed into menuInit() rather than be set as global
    # script variables?
    #
    # menuTop # Top row of menu (defaults to row 2) menuLeft # Left offset
    # for menu item text (defaults to column 15) menuWidth # Width of menu
    # (defaults to 42 columns) menuMargin # Left offset for menu border
    # (defaults to column 4)
    #
    # menuColour # Colour of menu text (defaults to DRAW_COL_WHITE)
    # menuHighlight # Highlight colour for menu (defaults to
    # DRAW_COL_GREEN)
    #
    # menuTitle # Title of menu menuFooter # Footer text of menu
    #
    # menuItems # Array containing menu item text menuActions # Array
    # containing functions to call upon menu item selection
    #


    # Ensure we are running under bash (will not work under sh or dash etc)
    if [ "$BASH_SOURCE" = "" ]; then echo "ERROR: bash-menu requires to be
    running under bash" exit 1
    fi

    # Get script root (as we are sourced from another script, $0 will not be
    # us)
    declare -r menuScript=$(readlink -f ${BASH_SOURCE[0]})
    menuRoot=$(dirname "$menuScript")

    # Ensure we can access our dependencies
    if [ ! -s "$menuRoot/bash-draw.sh" ]; then echo "ERROR: Missing required
    draw.sh script" exit 1
    fi

    # Load terminal drawing functions
    . "$menuRoot/bash-draw.sh"


    ################################
    # Private Variables
    #
    # These should not be overridden
    ################################
    declare -a menuItems declare -a menuActions

    menuHeaderText="" menuFooterText="" menuBorderText=""


    ################################
    # Setup Menu
    #
    # These are defaults which should be overridden as required. ################################

    # Top of menu (row 2)
    menuTop=2

    # Left offset for menu items (not border)
    menuLeft=15

    # Width of menu
    menuWidth=42

    # Left offset for menu border (not menu items)
    menuMargin=4

    menuItems[0]="Exit" menuActions[0]="return 0"

    menuItemCount=1 menuLastItem=0

    menuColour=$DRAW_COL_WHITE menuHighlight=$DRAW_COL_GREEN

    menuTitle=" Super Bash Menu System" menuFooter=" Enter=Select, Up/Down=Prev/Next Option"


    ################################
    # Initialise Menu
    ################################
    menuInit() { menuItemCount=${#menuItems[@]}
    menuLastItem=$((menuItemCount-1))

    # Ensure header and footer are padded appropriately
    menuHeaderText=`printf "%-${menuWidth}s" "$menuTitle"`
    menuFooterText=`printf "%-${menuWidth}s" "$menuFooter"`

    # Menu (side) borders
    local marginSpaces=$((menuMargin-1)) local
    menuSpaces=$((menuWidth-2)) local leftGap=`printf
    "%${marginSpaces}s" ""` local midGap=`printf "%${menuSpaces}s" ""`
    menuBorderText="${leftGap}x${midGap}x"
    }


    ################################
    # Show Menu
    ################################
    menu_Display() { local menuSize=$((menuItemCount+2)) local
    menuEnd=$((menuSize+menuTop+1))

    drawClear drawColour $menuColour $menuHighlight

    # Menu header
    drawHighlightAt $menuTop $menuMargin "$menuHeaderText" 1

    # Menu (side) borders
    for row in $(seq 1 $menuSize); do drawSpecial "$menuBorderText" 1
    done

    # Menu footer
    drawHighlightAt $menuEnd $menuMargin "$menuFooterText" 1

    # Menu items
    for item in $(seq 0 $menuLastItem); do menu_ClearItem $item done
    }


    ################################
    # Mark Menu Items
    ################################

    # Ensure menu item is not highlighted
    menu_ClearItem() { local item=$1 local top=$((menuTop+item+2)) local
    menuText=${menuItems[$item]}

    drawPlainAt $top $menuLeft "$menuText"
    }

    # Highlight menu item
    menu_HighlightItem() { local item=$1 local top=$((menuTop+item+2)) local
    menuText=${menuItems[$item]}

    drawHighlightAt $top $menuLeft "$menuText"
    }


    ################################
    # Wait for and process user input
    ################################
    menu_HandleInput() { local choice=$1

    local after=$((choice+1)) [[ $after -gt $menuLastItem ]] && after=0

    local before=$((choice-1)) [[ $before -lt 0 ]] &&
    before=$menuLastItem

    # Clear highlight from prev/next menu items
    menu_ClearItem $before menu_ClearItem $after

    # Highlight current menu item
    menu_HighlightItem $choice

    # Get keyboard input
    local key="" local extra=""

    read -s -n1 key 2> /dev/null >&2 while read -s -n1 -t .05 extra 2>
    /dev/null >&2 ; do
    key="$key$extra" done

    # Handle known keys
    local escKey=`echo -en "\033"` local upKey=`echo -en "\033[A"` local
    downKey=`echo -en "\033[B"`

    if [[ $key = $upKey ]]; then return $before elif [[ $key = $downKey
    ]]; then
    return $after elif [[ $key = $escKey ]]; then if [[ $choice -eq
    $menuLastItem ]]; then
    # Pressing Esc while on last menu item will trigger action
    # This is a helper as we assume the last menu option is exit
    key="" else
    # Jumping possibly more than 1 (next/prev) item
    menu_ClearItem $choice return $menuLastItem fi elif [[
    ${#key} -eq 1 ]]; then
    # See if we wanrt to jump to a menu item by entering the first
    # character
    for index in $(seq 0 $menuLastItem) ; do local
    item=${menuItems[$index]} local startChar=${item:0:1} if [[
    "$key" = "$startChar" ]]; then
    # Jumping possibly more than 1 (next/prev) item
    menu_ClearItem $choice return $index fi done fi

    if [[ "$key" = "" ]]; then
    # Notify that Enter key was pressed
    return 255 fi

    return $choice
    }


    ################################
    # Main Menu Loop
    ################################
    menuLoop() { local choice=0 local running=1

    menu_Display

    while [[ $running -eq 1 ]]; do
    # Enable case insensitive matching
    local caseMatch=`shopt -p nocasematch` shopt -s nocasematch

    menu_HandleInput $choice local newChoice=$?

    # Revert to previous case matching
    $caseMatch

    if [[ $newChoice -eq 255 ]]; then
    # Enter pressed - run menu action
    drawClear action=${menuActions[$choice]} $action running=$?

    # Back from action If we are still running, redraw menu
    [[ $running -eq 1 ]] && menu_Display

    elif [[ $newChoice -lt $menuItemCount ]]; then
    # Update selected menu item
    choice=$newChoice fi done

    # Cleanup screen
    drawClear
    }
    ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- bash-draw.sh file below between horizontal rule ----------------------------------------------------------------------------- #!/bin/bash

    #
    # Public Functions:
    #
    # drawClear() drawColour(colour = DRAW_COL_DEF, bgColour =
    # DRAW_COL_DEF)
    #
    # drawPlain(text, newLine = 0) drawSpecial(text, newLine = 0)
    # drawHighlight(text, newLine = 0) drawPlainAt(left, top, text,
    # newLine = 0) drawHighlightAt(left, top, text, newLine = 0)
    #
    #
    # Colours
    #
    # DRAW_COL_DEF # Default colour DRAW_COL_BLACK DRAW_COL_WHITE
    # DRAW_COL_RED DRAW_COL_GREEN DRAW_COL_YELLOW DRAW_COL_BLUE
    # DRAW_COL_GRAY # Light gray (grey?)
    #


    # Ensure we are running under bash (will not work under sh or dash etc)
    if [ "$BASH_SOURCE" = "" ]; then echo "ERROR: bash-draw requires to be
    running under bash" exit 1
    fi


    DRAW_COL_DEF=39 DRAW_COL_BLACK=30 DRAW_COL_WHITE=97 DRAW_COL_RED=31 DRAW_COL_GREEN=32 DRAW_COL_YELLOW=33 DRAW_COL_BLUE=34 DRAW_COL_GRAY=37


    # drawClear()
    drawClear() { $ESC_WRITE "\033c"
    }

    # drawColour(colour = DRAW_COL_DEF, bgColour = DRAW_COL_DEF)
    drawColour() { local colour=$DRAW_COL_DEF local
    bgColour=$((DRAW_COL_DEF+10))

    if [[ ! -z "$1" && "$1" != "" ]]; then colour="$1" fi

    if [[ ! -z "$2" && "$2" != "" ]]; then bgColour="$2" fi

    $ESC_ECHO "\033c\033[H\033[J\033[${colour};${bgColour}m\033[J"
    }

    # drawPlain(text, newLine = 0)
    drawPlain() { if [[ -z "$2" || "$2" -eq 0 ]]; then $ESC_WRITE "$1" else
    $ESC_ECHO "$1"
    fi
    }

    # drawSpecial(text, newLine = 0)
    drawSpecial() { [[ -z "$2" ]] && newLine=0 || newLine="$2"

    draw_SetDrawMode drawPlain "$1" "$newLine" draw_SetWriteMode
    }

    # drawHighlight(text, newLine = 0)
    drawHighlight() { [[ -z "$2" ]] && newLine=0 || newLine="$2"

    draw_StartHighlight drawPlain "$1" "$newLine" draw_EndHighlight
    }

    # drawPlainAt(left, top, text, newLine = 0)
    drawPlainAt() { [[ -z "$4" ]] && newLine=0 || newLine="$4"

    draw_MoveTo $1 $2 drawPlain "$3" "$newLine"
    }

    # drawHighlightAt(left, top, text, newLine = 0)
    drawHighlightAt() { [[ -z "$4" ]] && newLine=0 || newLine="$4"

    draw_StartHighlight drawPlainAt "$1" "$2" "$3" "$newLine"
    draw_EndHighlight
    }


    # Write escape sequence with no newline
    ESC_WRITE='echo -en'

    # Write escape sequence adding newline
    ESC_ECHO='echo -e'


    # Move cursor to specified location
    draw_MoveTo() { $ESC_WRITE "\033[${1};${2}H"
    }

    draw_StartHighlight() { $ESC_WRITE "\033[7m"
    }

    draw_EndHighlight() { $ESC_WRITE "\033[27m"
    }

    draw_SetDrawMode() { $ESC_WRITE "\033%@\033(0"
    }

    draw_SetWriteMode() { $ESC_WRITE "\033(B"
    }
    ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- CompuBBS - ECN code ----------------------------------------------------------------------------- Please find below the CompuBBS ECN code originally developed by Josh
    Greene. It is something a former friend of mine once told me about as
    he worked at Daytek during the dawn of the internet. At the time I was
    to oblivous to the fact that money is the very means by which our lives
    revolve around. As they say, "when men and women get together [money]
    gets in the way". The Josh Greene's ECN day trading code is intended as
    a game for now until it becomes more viable for the purposes of the Cybermatrix.

    The below ECN day trading code is in Python. So check it out. Try to
    make it into a game at first so that you and your network can learn how
    to play it before proceeding. I heard when it comes to the stock market
    one can literally loose their shirt on this. So beware. Ignorance is
    not bliss.

    The intention for this code is toward the establishment of the
    cybermatrix or to say the opern source fiat like monies initiative for
    the sake of synergy or mutual success. The meaning of cybermartix is
    virtual as in cyber and a database of the nth dimension as in matrix.
    So the cybermatrix is a network of databases of a given
    dimension(matricees) with a larger databases of the nth
    dimension(matrix). So, let's do this.

    God bless and God speed for Jesus Christ is God. Always a pleasure.
    Good luck to you all. I want you to win. Allahu Akhbar! ----------------------------------------------------------------------------- Josh Greene's Island ECN day trading code in Python between horizontal
    rule ----------------------------------------------------------------------------- SET TALK OFF SET CURSOR OFF SET SAFETY OFF SET MEMOWIDTH TO 80 CLEAR ALL
    CLOSE ALL CLEAR CLEAR MACRO && Get rid of F keys typing commands SET
    HELP OFF && Needed to clear out F1 key too

    =rand(-1)

    #define COREDEST "FFFFFFFF0673"

    gstoredflag = .F. && Are there any messages buffered that could be
    flushed?

    #define VERSION "2.40"

    malertfile = "M:\logs\island2.err" mholdofffile =
    "M:\island2\holdoff.txt"

    blanknbuffer="R"+replicate( " " , 200 ) && get BRIGADEN message here

    #define CORELINELEN 124 define COREMESSAGELEN 122

    #define READPORT "067F"

    load int99

    define window title from 0,0 to 0,scols()-1 COLOR "W/B" NONE define
    window output from 1,0 to 10,scols()-1 NONE COLOR "W+/N" define window
    ticker from 12,0 to srows()-1,scols()-1 NONE define window status from
    11,0 to 11,scols()-1 COLOR "W+/R" NONE

    do title do initstatus

    activate window title activate window status

    activate window output activate window ticker


    s = fopen( "ISLAND2.TXT" )

    if s <= 0 wait window "COULD NOT FIND ISLAND2.TXT IN CURRENT DIR. RUN
    RESET." quit
    endif

    x = fgets( s )

    if "ISLAND2" # x wait window "ACCOUNT IN ISLAND2.TXT DOES NOT MATCH
    ACCOUNT ENV VAR. RUN RESET." =fclose( s ) quit
    endif

    tcount = 0 && For counting random stuff

    tseq = val( fgets( s ) ) && Next order number tmatch = val( fgets( s ) )
    && Next match number tnextdead = val( fgets( s ) ) && Next dead order (zero=none) =fclose( s )

    select select(1) use events set order to WHEN

    tnow = 0

    ttoolate = 0 && Count the too late to cancel events

    gaccept = .F. && Let any orders in? Set by SOD, cleared by EOD
    gactaccept = .F. && Let ACT orders in? Set by SOD, cleared by EOA

    geom = .F. && Have we gotten EOM yet?

    gprinting = .F. && Print incoming messages?

    go top

    if eof("EVENTS")

    tnext = 99999.999

    else

    tnext = WHEN && Time of next event

    endif

    select 0 use sources set order to SOURCE

    select select(1) use island

    gsx = alltrim( str( date() - {2/6/1996} ) )

    gsession = left( "0000000000" , 9-len( gsx ) ) + gsx + "F"

    s="N"+gsession+"5050" && Open the islandfile for writing Mold on port
    5050 call int99 with s

    if s # "n" && Valid open file?

    do alert with "InitMold filed with reason >"+s

    do case

    case s = "i"

    sm ="Error opening files in deney-write mode"

    case s = "j"

    sm = "a file had a partial line fragment"

    case s = "k"

    sm = "not all trailing files are empty"

    case s = "l"

    sm = "all files full"

    otherwise

    sm = "Unknown error"

    endcase

    do alert with sm

    wait window "Error on ISLAND.OUT or ISLAND2.OUT OPEN:"+s

    quit

    endif

    select island

    tecount = 0 && Assume worst case, just to make sure ecount is high
    enough txcount = 0 && Cancels

    x = "L"+READPORT+" " && Read Island2 requests call int99 with x if x #
    "l"
    do alert with "Could not open Command listen!" endif


    gstatdelay = 0.25 do showstatus gnextstats = seconds() + gstatdelay

    gmolddelay = 1 && Time between mold heartbeats gmoldheart = seconds() + gmolddelay && Time to send a MOLD heartbeat by doing a FLUSH

    gmessages = 0 && Number of messages written to the stream gpackets = 0
    && Number of packets writtento the stream

    mdone = .F.

    do while !mdone

    tnow = seconds()

    do while tnow >= tnext

    if !EVENTS.PROCESSED

    do swrite with "G" , EVENTS.CODE

    select EVENTS replace PROCESSED with .T. select
    ISLAND

    else

    ? time()+" Event bypassed:"+ EVENTS.CODE

    endif

    do seteventflags with EVENTS.CODE

    skip 1 in EVENTS

    if eof("EVENTS")

    tnext = 99999.999

    else

    tnext = EVENTS.WHEN

    endif

    enddo

    nbuffer = blanknbuffer

    call int99 with nbuffer

    if nbuffer = "r"

    tlenstr = substr( nbuffer , 2 , 5 )

    tlen = val( tlenstr )

    tmessage = substr( nbuffer , 43 , tlen )

    if gprinting ? time()+" >"+tmessage+"<" endif

    if tmessage = "P" && PING REQUEST

    tsource = substr( nbuffer ,11 , 8)

    do pingreply with tsource , tmessage

    else

    do processtcpip with tmessage

    endif

    else && No pending commands...

    if gstoredflag


    [continued in next message]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Aryavarta@21:1/5 to All on Thu Sep 24 02:22:01 2020
    The CompuBBS code; please use it to communicate :-) ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- readme.txt file below between horizontal rule ----------------------------------------------------------------------------- The CompuBBS code; please use it to communicate :-)
    Satya Prasad Popuri
    Bachelors in Computer Science

    Silence is death. The need for an open source bulletin board system is
    vital for communication to prosper across this earth planet. In my
    travels I have discovered certain tools that help many to research and
    develop with ease while maintaining a sound and cogent system toward
    such an end. This CompuBBS is an open source version of the NYUNET
    bulletin board system I discovered while mistakenly studying and working
    there in my quest for enligtenment. As fate would have it, I chanced
    upon certain tools that I now present with an assortment of other tools
    I have discovered in my triste with death while working in the I.T.
    industry.

    Indeed, such tools have helped me here and there to maintain a
    consistent understanding of not only Unix fundamentals but also a feel
    good experience that is second to none. These tools represent the love
    affair that never quit. Not only has it valorized and inundated across
    this earth planet but has been the aims and means of my reason for
    living.

    Man needs a proper meditation of the heart and this tool list is one of
    the things I have used to be able to better understand myself and
    others. It was during the college years that I was exposed to such
    tools in over 3 universities and 11 years of employment here and there.
    They just work. Given the level of complexity the graphical user
    interface engenders it is refreshing to fall back on a tool base that is
    time immemorial. So please feel free to use them and contribute toward
    the open source endeavor to foster freedom of speech.

    For me prayer works but without a means of communication that is
    uninhibited and unmoderated we are at a loss for words. That is the
    shear beauty of the traditional tools as tin of the USENET NEWS servers;
    as well as the irssi of the IRC servers. It goes on. The list of tools
    I mention are as follows based on over 20 years of experience with the
    UNIX pragma.

    0. Alpine - a nice email client
    1. Tin - a nice newsreader
    2. Irssi - a nice internet relay chat client
    3. Lynx - a nice web browser
    4. Gopher - a nice ftp client
    5. Nano - a nice text editor
    6. Bash - a nice command prompt
    7. T.I.A. - a nice programming editor [This is known as Tiny IDE
    Ada/Anything editor. I am trying to encourage the Ada programming
    language over C++ and Java.]
    8. Nslookup - a nice directory service
    9. Telnet - a nice remote login tool
    A. Tailer - a nice monitoring tool [This I discovered at a .com I worked
    for. It simply goes to an i.p. address and searches for a string. If
    the string is not there an alert is genertated. Maybe it is out there
    in the wild blue yonder of the internet.]
    B. Calc - a nice calculator tool
    C. ECN - a nice day trading game [This is Josh Green's day trading
    algorithym in Python when he worked at Daytek. I posted it somewhere on
    USENET but I am unable to find it.... If you are able to find it please
    let me know. I encourage learning how to deal with money because "when
    men and women get together [money] gets in the way".] That too, they
    say, education is about learning how to communicate and learn how to
    deal with money.
    D. Tutor - a nice Unix tutorial [This tutorial I discovered at New York University. I wonder if there is an open source version of it.] It is
    a great way to learn the Unix operating system.
    E. Bible - a nice text based bible program [Does anyone know of an old
    school Bible program that is text based and worthy of praise? Prayer to
    Jesus Christ works!]
    F. Sendpage - this is a nice beeper software that helps to keep in touch
    with loved ones and others through the beeper or pager tool.
    $. Exit - a simple exit to the whole compubbs tools for research and development.

    I have foregoed useing the queue tool as it may cause some problems as
    far as managing and maintaining. The queue tool is always an issue for
    any I.T. computer lab as it is often the target of attacks by
    miscreants. There are other tools, such as 'talk', that are also good
    if you know how to use them in the code I mentioned. I refrained from mentioning talk because it requires input about the user and terminal to literally talk to using a text based interface. Maybe someone can
    design a text based form to fill out that will allow for one to use talk
    and then go back to the main menu. The file list for this compubbs
    endeavor is as follows:

    compubbs.sh
    bash-menu.sh
    bash-draw.sh
    readme.txt

    Please find the code in the following USENET newsgroups:

    soc.culture.indian
    soc.culture.asian.american
    soc.culture.usa
    soc.cutlure.spain
    soc.culture.bangladesh
    soc.culture.puerto.rico
    alt.computer.consultants
    alt.sex.stories.hetero

    Let's setup servers of this type of an unmoderated bulletin board
    system. While the internet has encouraged reciprocity or mutual
    respect, the BBS has encouraged comaraderie or mutual trust. This
    cybermatrix endeavor which I am trying to contravecy is an attempt
    toward synergy or mutual success. As well, there is a need for unity or
    mutual purpose. The T.E.A.M. acronymn for "together everyone
    accomplishes more" is worth encouraging.

    The following are some nice networks I am encouraging toward some level
    of mutuality:

    # - network - tool - idnustry - smurf - mutuality - signal ----------------------------------------------------------
    1 - Simulcast - radio - spiritual - arabian - comaradery - analog
    2 - Internet - computer - technological - indian - reciprocity - digital
    3 - Cybermatrix - television - financial - hispanic - synergy - ?
    4 - Tektocracy - beeper - political - russian - unity - ?
    5 - Sneakerweb - tablet - educational - gypsy - infidelity - ?
    6 - Darkring - console - architectural - african - ? - ?
    7 - Datatron - tracker(i.e. fitbit) - medical - european - ? - ?
    8 - Heliopex - watch - recreational - artican - ? - ?
    9 - Transpace - PDA(a.k.a smartphone) - sexual - oriental - ? -
    ? 10 - Stargate - controller - audiovisual - australian - ? - ?

    As well I have noticed the following dutys that seem to withstand the
    test of time and surpass all understanding with my I.T. industry. They
    are as follows:

    CIS Sysadmins:
    (Computer Information Specialties)
    ----------------------------------
    1. networking - solaris : british/grocer
    2. databasing - linux : oriental/escort
    3. multimedia - macintosh osx(bsd) : european/physcian
    4. programming - minix/x11/react os : indian/consultant
    5. productivity - haiku? : (Terron,Tamil,Taino,Tiwi)lawyer?
    6. security – sgi? : australian/designer
    7. management - sap/vax? : african/landlord
    8. troubleshooting - cytrix? : hispanic/accountant
    9. testing - sco/sylk? : arabian/scholar
    10.gaming - irix : russian//bouncer?
    ----------
    Outside contractors:
    11.tutoring - amix : jewish/teacher (outside contractor)

    With respect to the involvement of the Jewish blight upon humanity
    within the I.T. industry I find they are a curse more than anything.
    All they do is sabotage whichever system to justify yet another failed investment into thier diaspora. It is like that among them as their
    history of failure is not only evidenced in the Holy Bible as in the
    kingdom of Egypt but also in whichever other civilization to have graced
    this earth. That is why the Jews of the Yiddish, Zen, Vudu, Hindu,
    LGBTQ, NGR, Creole, Hapa, Hoon, and Roma ancestorys are known as the
    Negroid race, the niggers of the world.

    Anyway, join us in this endeavor to liberate humanity from the vice grip
    of the jew baiting culture of the idiot and wrong. I pray to Jesus
    Christ that you find them useful and worthy of praise as I have. This
    compubbs is a brief history of time and space of a world so good. In a
    way, the nature of the good is to overcome and defeat the bad. So, God
    bless and God speed for Jesus Christ is God. Always a pleasure. May
    you and your loved one's in the name of Jesus Christ be well, happy, prosperous, peacefull, healthy, and safe.

    P.S.
    Let it be said, "[financial] frustration creates a great imbalance
    in mind and body." We need to allay our antogonizing forces so that
    open source fiat like monies are provided for all concerned. The UNIX
    may help with learning how to communicate but the FIAT may help with
    learning how to deal with monies.

    The only issues I have are the evil empire of the JUBU and their
    branches of the Transcedentalism, Allopathy, Microsoft, Niggervision, Palmistry, and Insurance corporations of whichever bilk and swindel.
    There is that of a thing as evil and it is their incessant anti-Christ
    ways which ruin the whole thing. That is the issue. The dangers of the Jewish, Zen, Vudu, Hindu, LGBTQ, NGR, Creole, Hapa, Hoon, Roma masters
    of the nothing or meaningless things as in zazen(breathing excercises),
    mantra recitation, and koan visualization of the Satanic Dharma is more
    than anything. They are more of an evil and a bad influence than one can possibly dream. Quite a number bank on those people in order to
    eliminate innocent and good people to further their zero sum end game.
    Simply say the words Jesus Christ in your prayers to escape from such
    negative influences.

    The following republics are the bases of the evil empire of the JUBU:

    Taiwan - empire of Zen
    Israel - empire of Jews
    Sicily - empire of LGBTQ
    Haiti - empire of Vudu
    Hawaii - empire of Hindus
    Trinidad - empire of Creole?
    Indonesia - empire of Hapa?
    Phillipines - empire of Ngrs?
    Tibet - empire of Hoon?
    Brooklyn - empire of the Roma?

    Transcendentalist mafia are from such areas acenstorally and are
    harbingers of the worst known massacre known to man, called the
    religious war. This ComuBBS tool is to help people communicate for the
    sake of not only the ontology of Jesus Christ but also to better get
    clues on how to deal with those people of the Dying Arts. I really want
    to setup this system so that those stinken Jews are not a part of it.
    Their trespass into literally every industry to do stupid and useless
    things is a real danger for all concerned. Those people of the Dying
    Arts and the Jewish diaspora are like monkeys hell bent on suicide and sacrifice, to name a few. With their penchant toward brain degenerating
    ways, we are headed toward a nuclear war and economic collapse the world
    over unlike anything before. What is the use?

    Already the evil empire of the JUBU has perpetuated the destruction of
    the World Trade Center through thier Y2K bug fix pretention. Already
    the state of Louisiana has been horribly flooded because of yet another
    Jew baiting fetish gone wrong. Already the coronavirus has been
    unleashed to kill off more people.

    I see a trend and history by the Jewish diaspora to literally war with
    anyone for the sake of thier religious war. A religious war documented
    in religious books, life experiences, and television programming. It is
    like all over the place. Open and unmoderated communication for our
    people of Abraham hostaged by those of the evil empire of the JUBU is a
    good means toward liberating us from the ignorance which is not bliss.
    More will arrive to the body of Christ. Believe you me, those stinken
    Jews have to be defeated.

    Already, the Europeans, Russians, Chinese, and now the Arabians have politically made it known that Jews are unwanted in their realm. I as a
    Desi or native of the Indian subcontinent do the same. I tell ya,
    travelling to my homeland of the Indian subcontinent or Aryavarta was a
    real shocking reality to see so many of my people in abject life
    conditions due to the Hindu pride and prejudice maintained for over
    5,000 years and then some. Those gypsy niggers or even to say the
    negroid race are the very reason why Desi civilization could never come
    up and was the riddicule of the masses.

    Now with this wonderful capitalism, we can see a world where anyone and everyone is able to use such weapons to ward off the evil ones. Nothing
    worse than trying to find enlightenment in the wrong way through a one
    way ticket to the foothills of the Himalayas after following some
    Satanic master of the Zen empire of Taiwan. Ignorance is not bliss and ignorance of Jesus Christ is like the worst. God bless and God speed
    for Jesus Christ is God. Always a pleasure. Nothing worse than being
    on a park bench drinking liquor going through an existential doubt.
    Believe it.

    Sincerely,

    Satya Prasad Popuri (Satyababu)

    Signature: "The nature of the good is to overcome and defeat the bad." ----------------------------------------------------------------------------- compubbs.sh file below between horizontal rule ----------------------------------------------------------------------------- #!/bin/bash

    # Ensure we are running under bash
    if [ "$BASH_SOURCE" = "" ]; then /bin/bash "$0" exit 0 fi

    #
    # Load bash-menu script
    #
    # NOTE: Ensure this is done before using or overriding menu
    # functions/variables.
    #
    . "bash-menu.sh"


    ################################
    ## Example Menu Actions
    ##
    ## They should return 1 to indicate that the menu should continue, or
    ## return 0 to signify the menu should exit.
    ################################
    actionA() { alpine return 1
    }

    actionB() { tin -r -g freenews.netfront.net return 1
    }

    actionC() { irssi return 1
    }

    actionD() { lynx return 1
    }

    actionE() { gopher return 1
    }

    actionF() { nano return 1
    }

    actionG() { bash return 1
    }

    actionH() { tia return 1
    }

    actionI() { nslookup return 1
    }

    actionJ() { telnet return 1
    }

    actionK() { tailer return 1
    }

    actionL() { calc return 1
    }

    actionM() { ecn return 1
    }

    actionN() { bible return 1
    }

    actionO() { tutor return 1
    }

    actionP() { sendpage return 1
    }

    actionX() { return 0
    }


    ################################
    ## Setup Example Menu
    ################################

    ## Menu Item Text
    ##
    ## It makes sense to have "Exit" as the last item, as pressing Esc will
    ## jump to last item (and pressing Esc while on last item will perform
    ## the associated action).
    ##
    ## NOTE: If these are not all the same width the menu highlight will
    ## look wonky
    menuItems=( "0. Alpine ----------------------- email client" "1. Tin
    -------------------------- usenet news reader" "2. Irssi
    ------------------------ irc network" "3. Lynx
    ------------------------- web browser" "4. Gopher
    ----------------------- ftp protocol" "5. Nano
    ------------------------- text editor" "6. Bash
    ------------------------- command prompt" "7. T.I.A.
    ----------------------- programming IDE" "8. Nslookup
    --------------------- directory service" "9. Telnet
    ----------------------- remote login" "A. Tailer
    ----------------------- monitoring tool" "B. Calc
    ------------------------- calculator" "C. ECN
    -------------------------- daytrading game" "D. Tutor
    ------------------------ unix tutorial" "E. Bible
    ------------------------ way of enlightenment" "F. Sendpage
    --------------------- beeper server" "$. Exit
    ------------------------- God speed :-)"
    )

    ## Menu Item Actions
    menuActions=( actionA actionB actionC actionD actionE actionF actionG
    actionH actionI actionJ actionK actionL actionM actionN actionO
    actionP actionX
    )

    ## Override some menu defaults
    menuTitle=" CompuBBS - The nature of the good is to overcome and defeat
    the bad..." menuFooter=" Enter=Select, Navigate via Up/Down/First
    number/letter - [Prayer works!]" menuWidth=74 menuLeft=13 menuHighlight=$DRAW_COL_WHITE


    ################################
    ## Run Menu
    ################################
    menuInit menuLoop


    exit 0 ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- bash-menu.sh file below between horizontal rule ----------------------------------------------------------------------------- #!/bin/bash

    #
    # Public Functions
    #
    # menuInit() menuLoop()
    #
    #
    # Public Variables to Override
    #
    # Should these get passed into menuInit() rather than be set as global
    # script variables?
    #
    # menuTop # Top row of menu (defaults to row 2) menuLeft # Left offset
    # for menu item text (defaults to column 15) menuWidth # Width of menu
    # (defaults to 42 columns) menuMargin # Left offset for menu border
    # (defaults to column 4)
    #
    # menuColour # Colour of menu text (defaults to DRAW_COL_WHITE)
    # menuHighlight # Highlight colour for menu (defaults to
    # DRAW_COL_GREEN)
    #
    # menuTitle # Title of menu menuFooter # Footer text of menu
    #
    # menuItems # Array containing menu item text menuActions # Array
    # containing functions to call upon menu item selection
    #


    # Ensure we are running under bash (will not work under sh or dash etc)
    if [ "$BASH_SOURCE" = "" ]; then echo "ERROR: bash-menu requires to be
    running under bash" exit 1
    fi

    # Get script root (as we are sourced from another script, $0 will not be
    # us)
    declare -r menuScript=$(readlink -f ${BASH_SOURCE[0]})
    menuRoot=$(dirname "$menuScript")

    # Ensure we can access our dependencies
    if [ ! -s "$menuRoot/bash-draw.sh" ]; then echo "ERROR: Missing required
    draw.sh script" exit 1
    fi

    # Load terminal drawing functions
    . "$menuRoot/bash-draw.sh"


    ################################
    # Private Variables
    #
    # These should not be overridden
    ################################
    declare -a menuItems declare -a menuActions

    menuHeaderText="" menuFooterText="" menuBorderText=""


    ################################
    # Setup Menu
    #
    # These are defaults which should be overridden as required. ################################

    # Top of menu (row 2)
    menuTop=2

    # Left offset for menu items (not border)
    menuLeft=15

    # Width of menu
    menuWidth=42

    # Left offset for menu border (not menu items)
    menuMargin=4

    menuItems[0]="Exit" menuActions[0]="return 0"

    menuItemCount=1 menuLastItem=0

    menuColour=$DRAW_COL_WHITE menuHighlight=$DRAW_COL_GREEN

    menuTitle=" Super Bash Menu System" menuFooter=" Enter=Select, Up/Down=Prev/Next Option"


    ################################
    # Initialise Menu
    ################################
    menuInit() { menuItemCount=${#menuItems[@]}
    menuLastItem=$((menuItemCount-1))

    # Ensure header and footer are padded appropriately
    menuHeaderText=`printf "%-${menuWidth}s" "$menuTitle"`
    menuFooterText=`printf "%-${menuWidth}s" "$menuFooter"`

    # Menu (side) borders
    local marginSpaces=$((menuMargin-1)) local
    menuSpaces=$((menuWidth-2)) local leftGap=`printf
    "%${marginSpaces}s" ""` local midGap=`printf "%${menuSpaces}s" ""`
    menuBorderText="${leftGap}x${midGap}x"
    }


    ################################
    # Show Menu
    ################################
    menu_Display() { local menuSize=$((menuItemCount+2)) local
    menuEnd=$((menuSize+menuTop+1))

    drawClear drawColour $menuColour $menuHighlight

    # Menu header
    drawHighlightAt $menuTop $menuMargin "$menuHeaderText" 1

    # Menu (side) borders
    for row in $(seq 1 $menuSize); do drawSpecial "$menuBorderText" 1
    done

    # Menu footer
    drawHighlightAt $menuEnd $menuMargin "$menuFooterText" 1

    # Menu items
    for item in $(seq 0 $menuLastItem); do menu_ClearItem $item done
    }


    ################################
    # Mark Menu Items
    ################################

    # Ensure menu item is not highlighted
    menu_ClearItem() { local item=$1 local top=$((menuTop+item+2)) local
    menuText=${menuItems[$item]}

    drawPlainAt $top $menuLeft "$menuText"
    }

    # Highlight menu item
    menu_HighlightItem() { local item=$1 local top=$((menuTop+item+2)) local
    menuText=${menuItems[$item]}

    drawHighlightAt $top $menuLeft "$menuText"
    }


    ################################
    # Wait for and process user input
    ################################
    menu_HandleInput() { local choice=$1

    local after=$((choice+1)) [[ $after -gt $menuLastItem ]] && after=0

    local before=$((choice-1)) [[ $before -lt 0 ]] &&
    before=$menuLastItem

    # Clear highlight from prev/next menu items
    menu_ClearItem $before menu_ClearItem $after

    # Highlight current menu item
    menu_HighlightItem $choice

    # Get keyboard input
    local key="" local extra=""

    read -s -n1 key 2> /dev/null >&2 while read -s -n1 -t .05 extra 2>
    /dev/null >&2 ; do
    key="$key$extra" done

    # Handle known keys
    local escKey=`echo -en "\033"` local upKey=`echo -en "\033[A"` local
    downKey=`echo -en "\033[B"`

    if [[ $key = $upKey ]]; then return $before elif [[ $key = $downKey
    ]]; then
    return $after elif [[ $key = $escKey ]]; then if [[ $choice -eq
    $menuLastItem ]]; then
    # Pressing Esc while on last menu item will trigger action
    # This is a helper as we assume the last menu option is exit
    key="" else
    # Jumping possibly more than 1 (next/prev) item
    menu_ClearItem $choice return $menuLastItem fi elif [[
    ${#key} -eq 1 ]]; then
    # See if we wanrt to jump to a menu item by entering the first
    # character
    for index in $(seq 0 $menuLastItem) ; do local
    item=${menuItems[$index]} local startChar=${item:0:1} if [[
    "$key" = "$startChar" ]]; then
    # Jumping possibly more than 1 (next/prev) item
    menu_ClearItem $choice return $index fi done fi

    if [[ "$key" = "" ]]; then
    # Notify that Enter key was pressed
    return 255 fi

    return $choice
    }


    ################################
    # Main Menu Loop
    ################################
    menuLoop() { local choice=0 local running=1

    menu_Display

    while [[ $running -eq 1 ]]; do
    # Enable case insensitive matching
    local caseMatch=`shopt -p nocasematch` shopt -s nocasematch

    menu_HandleInput $choice local newChoice=$?

    # Revert to previous case matching
    $caseMatch

    if [[ $newChoice -eq 255 ]]; then
    # Enter pressed - run menu action
    drawClear action=${menuActions[$choice]} $action running=$?

    # Back from action If we are still running, redraw menu
    [[ $running -eq 1 ]] && menu_Display

    elif [[ $newChoice -lt $menuItemCount ]]; then
    # Update selected menu item
    choice=$newChoice fi done

    # Cleanup screen
    drawClear
    }
    ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- bash-draw.sh file below between horizontal rule ----------------------------------------------------------------------------- #!/bin/bash

    #
    # Public Functions:
    #
    # drawClear() drawColour(colour = DRAW_COL_DEF, bgColour =
    # DRAW_COL_DEF)
    #
    # drawPlain(text, newLine = 0) drawSpecial(text, newLine = 0)
    # drawHighlight(text, newLine = 0) drawPlainAt(left, top, text,
    # newLine = 0) drawHighlightAt(left, top, text, newLine = 0)
    #
    #
    # Colours
    #
    # DRAW_COL_DEF # Default colour DRAW_COL_BLACK DRAW_COL_WHITE
    # DRAW_COL_RED DRAW_COL_GREEN DRAW_COL_YELLOW DRAW_COL_BLUE
    # DRAW_COL_GRAY # Light gray (grey?)
    #


    # Ensure we are running under bash (will not work under sh or dash etc)
    if [ "$BASH_SOURCE" = "" ]; then echo "ERROR: bash-draw requires to be
    running under bash" exit 1
    fi


    DRAW_COL_DEF=39 DRAW_COL_BLACK=30 DRAW_COL_WHITE=97 DRAW_COL_RED=31 DRAW_COL_GREEN=32 DRAW_COL_YELLOW=33 DRAW_COL_BLUE=34 DRAW_COL_GRAY=37


    # drawClear()
    drawClear() { $ESC_WRITE "\033c"
    }

    # drawColour(colour = DRAW_COL_DEF, bgColour = DRAW_COL_DEF)
    drawColour() { local colour=$DRAW_COL_DEF local
    bgColour=$((DRAW_COL_DEF+10))

    if [[ ! -z "$1" && "$1" != "" ]]; then colour="$1" fi

    if [[ ! -z "$2" && "$2" != "" ]]; then bgColour="$2" fi

    $ESC_ECHO "\033c\033[H\033[J\033[${colour};${bgColour}m\033[J"
    }

    # drawPlain(text, newLine = 0)
    drawPlain() { if [[ -z "$2" || "$2" -eq 0 ]]; then $ESC_WRITE "$1" else
    $ESC_ECHO "$1"
    fi
    }

    # drawSpecial(text, newLine = 0)
    drawSpecial() { [[ -z "$2" ]] && newLine=0 || newLine="$2"

    draw_SetDrawMode drawPlain "$1" "$newLine" draw_SetWriteMode
    }

    # drawHighlight(text, newLine = 0)
    drawHighlight() { [[ -z "$2" ]] && newLine=0 || newLine="$2"

    draw_StartHighlight drawPlain "$1" "$newLine" draw_EndHighlight
    }

    # drawPlainAt(left, top, text, newLine = 0)
    drawPlainAt() { [[ -z "$4" ]] && newLine=0 || newLine="$4"

    draw_MoveTo $1 $2 drawPlain "$3" "$newLine"
    }

    # drawHighlightAt(left, top, text, newLine = 0)
    drawHighlightAt() { [[ -z "$4" ]] && newLine=0 || newLine="$4"

    draw_StartHighlight drawPlainAt "$1" "$2" "$3" "$newLine"
    draw_EndHighlight
    }


    # Write escape sequence with no newline
    ESC_WRITE='echo -en'

    # Write escape sequence adding newline
    ESC_ECHO='echo -e'


    # Move cursor to specified location
    draw_MoveTo() { $ESC_WRITE "\033[${1};${2}H"
    }

    draw_StartHighlight() { $ESC_WRITE "\033[7m"
    }

    draw_EndHighlight() { $ESC_WRITE "\033[27m"
    }

    draw_SetDrawMode() { $ESC_WRITE "\033%@\033(0"
    }

    draw_SetWriteMode() { $ESC_WRITE "\033(B"
    }
    ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- CompuBBS - ECN code ----------------------------------------------------------------------------- Please find below the CompuBBS ECN code originally developed by Josh
    Greene. It is something a former friend of mine once told me about as
    he worked at Daytek during the dawn of the internet. At the time I was
    to oblivous to the fact that money is the very means by which our lives
    revolve around. As they say, "when men and women get together [money]
    gets in the way". The Josh Greene's ECN day trading code is intended as
    a game for now until it becomes more viable for the purposes of the Cybermatrix.

    The below ECN day trading code is in Python. So check it out. Try to
    make it into a game at first so that you and your network can learn how
    to play it before proceeding. I heard when it comes to the stock market
    one can literally loose their shirt on this. So beware. Ignorance is
    not bliss.

    The intention for this code is toward the establishment of the
    cybermatrix or to say the opern source fiat like monies initiative for
    the sake of synergy or mutual success. The meaning of cybermartix is
    virtual as in cyber and a database of the nth dimension as in matrix.
    So the cybermatrix is a network of databases of a given
    dimension(matricees) with a larger databases of the nth
    dimension(matrix). So, let's do this.

    God bless and God speed for Jesus Christ is God. Always a pleasure.
    Good luck to you all. I want you to win. Allahu Akhbar! ----------------------------------------------------------------------------- Josh Greene's Island ECN day trading code in Python between horizontal
    rule ----------------------------------------------------------------------------- SET TALK OFF SET CURSOR OFF SET SAFETY OFF SET MEMOWIDTH TO 80 CLEAR ALL
    CLOSE ALL CLEAR CLEAR MACRO && Get rid of F keys typing commands SET
    HELP OFF && Needed to clear out F1 key too

    =rand(-1)

    #define COREDEST "FFFFFFFF0673"

    gstoredflag = .F. && Are there any messages buffered that could be
    flushed?

    #define VERSION "2.40"

    malertfile = "M:\logs\island2.err" mholdofffile =
    "M:\island2\holdoff.txt"

    blanknbuffer="R"+replicate( " " , 200 ) && get BRIGADEN message here

    #define CORELINELEN 124 define COREMESSAGELEN 122

    #define READPORT "067F"

    load int99

    define window title from 0,0 to 0,scols()-1 COLOR "W/B" NONE define
    window output from 1,0 to 10,scols()-1 NONE COLOR "W+/N" define window
    ticker from 12,0 to srows()-1,scols()-1 NONE define window status from
    11,0 to 11,scols()-1 COLOR "W+/R" NONE

    do title do initstatus

    activate window title activate window status

    activate window output activate window ticker


    s = fopen( "ISLAND2.TXT" )

    if s <= 0 wait window "COULD NOT FIND ISLAND2.TXT IN CURRENT DIR. RUN
    RESET." quit
    endif

    x = fgets( s )

    if "ISLAND2" # x wait window "ACCOUNT IN ISLAND2.TXT DOES NOT MATCH
    ACCOUNT ENV VAR. RUN RESET." =fclose( s ) quit
    endif

    tcount = 0 && For counting random stuff

    tseq = val( fgets( s ) ) && Next order number tmatch = val( fgets( s ) )
    && Next match number tnextdead = val( fgets( s ) ) && Next dead order (zero=none) =fclose( s )

    select select(1) use events set order to WHEN

    tnow = 0

    ttoolate = 0 && Count the too late to cancel events

    gaccept = .F. && Let any orders in? Set by SOD, cleared by EOD
    gactaccept = .F. && Let ACT orders in? Set by SOD, cleared by EOA

    geom = .F. && Have we gotten EOM yet?

    gprinting = .F. && Print incoming messages?

    go top

    if eof("EVENTS")

    tnext = 99999.999

    else

    tnext = WHEN && Time of next event

    endif

    select 0 use sources set order to SOURCE

    select select(1) use island

    gsx = alltrim( str( date() - {2/6/1996} ) )

    gsession = left( "0000000000" , 9-len( gsx ) ) + gsx + "F"

    s="N"+gsession+"5050" && Open the islandfile for writing Mold on port
    5050 call int99 with s

    if s # "n" && Valid open file?

    do alert with "InitMold filed with reason >"+s

    do case

    case s = "i"

    sm ="Error opening files in deney-write mode"

    case s = "j"

    sm = "a file had a partial line fragment"

    case s = "k"

    sm = "not all trailing files are empty"

    case s = "l"

    sm = "all files full"

    otherwise

    sm = "Unknown error"

    endcase

    do alert with sm

    wait window "Error on ISLAND.OUT or ISLAND2.OUT OPEN:"+s

    quit

    endif

    select island

    tecount = 0 && Assume worst case, just to make sure ecount is high
    enough txcount = 0 && Cancels

    x = "L"+READPORT+" " && Read Island2 requests call int99 with x if x #
    "l"
    do alert with "Could not open Command listen!" endif


    gstatdelay = 0.25 do showstatus gnextstats = seconds() + gstatdelay

    gmolddelay = 1 && Time between mold heartbeats gmoldheart = seconds() + gmolddelay && Time to send a MOLD heartbeat by doing a FLUSH

    gmessages = 0 && Number of messages written to the stream gpackets = 0
    && Number of packets writtento the stream

    mdone = .F.

    do while !mdone

    tnow = seconds()

    do while tnow >= tnext

    if !EVENTS.PROCESSED

    do swrite with "G" , EVENTS.CODE

    select EVENTS replace PROCESSED with .T. select
    ISLAND

    else

    ? time()+" Event bypassed:"+ EVENTS.CODE

    endif

    do seteventflags with EVENTS.CODE

    skip 1 in EVENTS

    if eof("EVENTS")

    tnext = 99999.999

    else

    tnext = EVENTS.WHEN

    endif

    enddo

    nbuffer = blanknbuffer

    call int99 with nbuffer

    if nbuffer = "r"

    tlenstr = substr( nbuffer , 2 , 5 )

    tlen = val( tlenstr )

    tmessage = substr( nbuffer , 43 , tlen )

    if gprinting ? time()+" >"+tmessage+"<" endif

    if tmessage = "P" && PING REQUEST

    tsource = substr( nbuffer ,11 , 8)

    do pingreply with tsource , tmessage

    else

    do processtcpip with tmessage

    endif

    else && No pending commands...

    if gstoredflag


    [continued in next message]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Aryavarta@21:1/5 to All on Thu Sep 24 02:23:05 2020
    The CompuBBS code; please use it to communicate :-) ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- readme.txt file below between horizontal rule ----------------------------------------------------------------------------- The CompuBBS code; please use it to communicate :-)
    Satya Prasad Popuri
    Bachelors in Computer Science

    Silence is death. The need for an open source bulletin board system is
    vital for communication to prosper across this earth planet. In my
    travels I have discovered certain tools that help many to research and
    develop with ease while maintaining a sound and cogent system toward
    such an end. This CompuBBS is an open source version of the NYUNET
    bulletin board system I discovered while mistakenly studying and working
    there in my quest for enligtenment. As fate would have it, I chanced
    upon certain tools that I now present with an assortment of other tools
    I have discovered in my triste with death while working in the I.T.
    industry.

    Indeed, such tools have helped me here and there to maintain a
    consistent understanding of not only Unix fundamentals but also a feel
    good experience that is second to none. These tools represent the love
    affair that never quit. Not only has it valorized and inundated across
    this earth planet but has been the aims and means of my reason for
    living.

    Man needs a proper meditation of the heart and this tool list is one of
    the things I have used to be able to better understand myself and
    others. It was during the college years that I was exposed to such
    tools in over 3 universities and 11 years of employment here and there.
    They just work. Given the level of complexity the graphical user
    interface engenders it is refreshing to fall back on a tool base that is
    time immemorial. So please feel free to use them and contribute toward
    the open source endeavor to foster freedom of speech.

    For me prayer works but without a means of communication that is
    uninhibited and unmoderated we are at a loss for words. That is the
    shear beauty of the traditional tools as tin of the USENET NEWS servers;
    as well as the irssi of the IRC servers. It goes on. The list of tools
    I mention are as follows based on over 20 years of experience with the
    UNIX pragma.

    0. Alpine - a nice email client
    1. Tin - a nice newsreader
    2. Irssi - a nice internet relay chat client
    3. Lynx - a nice web browser
    4. Gopher - a nice ftp client
    5. Nano - a nice text editor
    6. Bash - a nice command prompt
    7. T.I.A. - a nice programming editor [This is known as Tiny IDE
    Ada/Anything editor. I am trying to encourage the Ada programming
    language over C++ and Java.]
    8. Nslookup - a nice directory service
    9. Telnet - a nice remote login tool
    A. Tailer - a nice monitoring tool [This I discovered at a .com I worked
    for. It simply goes to an i.p. address and searches for a string. If
    the string is not there an alert is genertated. Maybe it is out there
    in the wild blue yonder of the internet.]
    B. Calc - a nice calculator tool
    C. ECN - a nice day trading game [This is Josh Green's day trading
    algorithym in Python when he worked at Daytek. I posted it somewhere on
    USENET but I am unable to find it.... If you are able to find it please
    let me know. I encourage learning how to deal with money because "when
    men and women get together [money] gets in the way".] That too, they
    say, education is about learning how to communicate and learn how to
    deal with money.
    D. Tutor - a nice Unix tutorial [This tutorial I discovered at New York University. I wonder if there is an open source version of it.] It is
    a great way to learn the Unix operating system.
    E. Bible - a nice text based bible program [Does anyone know of an old
    school Bible program that is text based and worthy of praise? Prayer to
    Jesus Christ works!]
    F. Sendpage - this is a nice beeper software that helps to keep in touch
    with loved ones and others through the beeper or pager tool.
    $. Exit - a simple exit to the whole compubbs tools for research and development.

    I have foregoed useing the queue tool as it may cause some problems as
    far as managing and maintaining. The queue tool is always an issue for
    any I.T. computer lab as it is often the target of attacks by
    miscreants. There are other tools, such as 'talk', that are also good
    if you know how to use them in the code I mentioned. I refrained from mentioning talk because it requires input about the user and terminal to literally talk to using a text based interface. Maybe someone can
    design a text based form to fill out that will allow for one to use talk
    and then go back to the main menu. The file list for this compubbs
    endeavor is as follows:

    compubbs.sh
    bash-menu.sh
    bash-draw.sh
    readme.txt

    Please find the code in the following USENET newsgroups:

    soc.culture.indian
    soc.culture.asian.american
    soc.culture.usa
    soc.cutlure.spain
    soc.culture.bangladesh
    soc.culture.puerto.rico
    alt.computer.consultants
    alt.sex.stories.hetero

    Let's setup servers of this type of an unmoderated bulletin board
    system. While the internet has encouraged reciprocity or mutual
    respect, the BBS has encouraged comaraderie or mutual trust. This
    cybermatrix endeavor which I am trying to contravecy is an attempt
    toward synergy or mutual success. As well, there is a need for unity or
    mutual purpose. The T.E.A.M. acronymn for "together everyone
    accomplishes more" is worth encouraging.

    The following are some nice networks I am encouraging toward some level
    of mutuality:

    # - network - tool - idnustry - smurf - mutuality - signal ----------------------------------------------------------
    1 - Simulcast - radio - spiritual - arabian - comaradery - analog
    2 - Internet - computer - technological - indian - reciprocity - digital
    3 - Cybermatrix - television - financial - hispanic - synergy - ?
    4 - Tektocracy - beeper - political - russian - unity - ?
    5 - Sneakerweb - tablet - educational - gypsy - infidelity - ?
    6 - Darkring - console - architectural - african - ? - ?
    7 - Datatron - tracker(i.e. fitbit) - medical - european - ? - ?
    8 - Heliopex - watch - recreational - artican - ? - ?
    9 - Transpace - PDA(a.k.a smartphone) - sexual - oriental - ? -
    ? 10 - Stargate - controller - audiovisual - australian - ? - ?

    As well I have noticed the following dutys that seem to withstand the
    test of time and surpass all understanding with my I.T. industry. They
    are as follows:

    CIS Sysadmins:
    (Computer Information Specialties)
    ----------------------------------
    1. networking - solaris : british/grocer
    2. databasing - linux : oriental/escort
    3. multimedia - macintosh osx(bsd) : european/physcian
    4. programming - minix/x11/react os : indian/consultant
    5. productivity - haiku? : (Terron,Tamil,Taino,Tiwi)lawyer?
    6. security – sgi? : australian/designer
    7. management - sap/vax? : african/landlord
    8. troubleshooting - cytrix? : hispanic/accountant
    9. testing - sco/sylk? : arabian/scholar
    10.gaming - irix : russian//bouncer?
    ----------
    Outside contractors:
    11.tutoring - amix : jewish/teacher (outside contractor)

    With respect to the involvement of the Jewish blight upon humanity
    within the I.T. industry I find they are a curse more than anything.
    All they do is sabotage whichever system to justify yet another failed investment into thier diaspora. It is like that among them as their
    history of failure is not only evidenced in the Holy Bible as in the
    kingdom of Egypt but also in whichever other civilization to have graced
    this earth. That is why the Jews of the Yiddish, Zen, Vudu, Hindu,
    LGBTQ, NGR, Creole, Hapa, Hoon, and Roma ancestorys are known as the
    Negroid race, the niggers of the world.

    Anyway, join us in this endeavor to liberate humanity from the vice grip
    of the jew baiting culture of the idiot and wrong. I pray to Jesus
    Christ that you find them useful and worthy of praise as I have. This
    compubbs is a brief history of time and space of a world so good. In a
    way, the nature of the good is to overcome and defeat the bad. So, God
    bless and God speed for Jesus Christ is God. Always a pleasure. May
    you and your loved one's in the name of Jesus Christ be well, happy, prosperous, peacefull, healthy, and safe.

    P.S.
    Let it be said, "[financial] frustration creates a great imbalance
    in mind and body." We need to allay our antogonizing forces so that
    open source fiat like monies are provided for all concerned. The UNIX
    may help with learning how to communicate but the FIAT may help with
    learning how to deal with monies.

    The only issues I have are the evil empire of the JUBU and their
    branches of the Transcedentalism, Allopathy, Microsoft, Niggervision, Palmistry, and Insurance corporations of whichever bilk and swindel.
    There is that of a thing as evil and it is their incessant anti-Christ
    ways which ruin the whole thing. That is the issue. The dangers of the Jewish, Zen, Vudu, Hindu, LGBTQ, NGR, Creole, Hapa, Hoon, Roma masters
    of the nothing or meaningless things as in zazen(breathing excercises),
    mantra recitation, and koan visualization of the Satanic Dharma is more
    than anything. They are more of an evil and a bad influence than one can possibly dream. Quite a number bank on those people in order to
    eliminate innocent and good people to further their zero sum end game.
    Simply say the words Jesus Christ in your prayers to escape from such
    negative influences.

    The following republics are the bases of the evil empire of the JUBU:

    Taiwan - empire of Zen
    Israel - empire of Jews
    Sicily - empire of LGBTQ
    Haiti - empire of Vudu
    Hawaii - empire of Hindus
    Trinidad - empire of Creole?
    Indonesia - empire of Hapa?
    Phillipines - empire of Ngrs?
    Tibet - empire of Hoon?
    Brooklyn - empire of the Roma?

    Transcendentalist mafia are from such areas acenstorally and are
    harbingers of the worst known massacre known to man, called the
    religious war. This ComuBBS tool is to help people communicate for the
    sake of not only the ontology of Jesus Christ but also to better get
    clues on how to deal with those people of the Dying Arts. I really want
    to setup this system so that those stinken Jews are not a part of it.
    Their trespass into literally every industry to do stupid and useless
    things is a real danger for all concerned. Those people of the Dying
    Arts and the Jewish diaspora are like monkeys hell bent on suicide and sacrifice, to name a few. With their penchant toward brain degenerating
    ways, we are headed toward a nuclear war and economic collapse the world
    over unlike anything before. What is the use?

    Already the evil empire of the JUBU has perpetuated the destruction of
    the World Trade Center through thier Y2K bug fix pretention. Already
    the state of Louisiana has been horribly flooded because of yet another
    Jew baiting fetish gone wrong. Already the coronavirus has been
    unleashed to kill off more people.

    I see a trend and history by the Jewish diaspora to literally war with
    anyone for the sake of thier religious war. A religious war documented
    in religious books, life experiences, and television programming. It is
    like all over the place. Open and unmoderated communication for our
    people of Abraham hostaged by those of the evil empire of the JUBU is a
    good means toward liberating us from the ignorance which is not bliss.
    More will arrive to the body of Christ. Believe you me, those stinken
    Jews have to be defeated.

    Already, the Europeans, Russians, Chinese, and now the Arabians have politically made it known that Jews are unwanted in their realm. I as a
    Desi or native of the Indian subcontinent do the same. I tell ya,
    travelling to my homeland of the Indian subcontinent or Aryavarta was a
    real shocking reality to see so many of my people in abject life
    conditions due to the Hindu pride and prejudice maintained for over
    5,000 years and then some. Those gypsy niggers or even to say the
    negroid race are the very reason why Desi civilization could never come
    up and was the riddicule of the masses.

    Now with this wonderful capitalism, we can see a world where anyone and everyone is able to use such weapons to ward off the evil ones. Nothing
    worse than trying to find enlightenment in the wrong way through a one
    way ticket to the foothills of the Himalayas after following some
    Satanic master of the Zen empire of Taiwan. Ignorance is not bliss and ignorance of Jesus Christ is like the worst. God bless and God speed
    for Jesus Christ is God. Always a pleasure. Nothing worse than being
    on a park bench drinking liquor going through an existential doubt.
    Believe it.

    Sincerely,

    Satya Prasad Popuri (Satyababu)

    Signature: "The nature of the good is to overcome and defeat the bad." ----------------------------------------------------------------------------- compubbs.sh file below between horizontal rule ----------------------------------------------------------------------------- #!/bin/bash

    # Ensure we are running under bash
    if [ "$BASH_SOURCE" = "" ]; then /bin/bash "$0" exit 0 fi

    #
    # Load bash-menu script
    #
    # NOTE: Ensure this is done before using or overriding menu
    # functions/variables.
    #
    . "bash-menu.sh"


    ################################
    ## Example Menu Actions
    ##
    ## They should return 1 to indicate that the menu should continue, or
    ## return 0 to signify the menu should exit.
    ################################
    actionA() { alpine return 1
    }

    actionB() { tin -r -g freenews.netfront.net return 1
    }

    actionC() { irssi return 1
    }

    actionD() { lynx return 1
    }

    actionE() { gopher return 1
    }

    actionF() { nano return 1
    }

    actionG() { bash return 1
    }

    actionH() { tia return 1
    }

    actionI() { nslookup return 1
    }

    actionJ() { telnet return 1
    }

    actionK() { tailer return 1
    }

    actionL() { calc return 1
    }

    actionM() { ecn return 1
    }

    actionN() { bible return 1
    }

    actionO() { tutor return 1
    }

    actionP() { sendpage return 1
    }

    actionX() { return 0
    }


    ################################
    ## Setup Example Menu
    ################################

    ## Menu Item Text
    ##
    ## It makes sense to have "Exit" as the last item, as pressing Esc will
    ## jump to last item (and pressing Esc while on last item will perform
    ## the associated action).
    ##
    ## NOTE: If these are not all the same width the menu highlight will
    ## look wonky
    menuItems=( "0. Alpine ----------------------- email client" "1. Tin
    -------------------------- usenet news reader" "2. Irssi
    ------------------------ irc network" "3. Lynx
    ------------------------- web browser" "4. Gopher
    ----------------------- ftp protocol" "5. Nano
    ------------------------- text editor" "6. Bash
    ------------------------- command prompt" "7. T.I.A.
    ----------------------- programming IDE" "8. Nslookup
    --------------------- directory service" "9. Telnet
    ----------------------- remote login" "A. Tailer
    ----------------------- monitoring tool" "B. Calc
    ------------------------- calculator" "C. ECN
    -------------------------- daytrading game" "D. Tutor
    ------------------------ unix tutorial" "E. Bible
    ------------------------ way of enlightenment" "F. Sendpage
    --------------------- beeper server" "$. Exit
    ------------------------- God speed :-)"
    )

    ## Menu Item Actions
    menuActions=( actionA actionB actionC actionD actionE actionF actionG
    actionH actionI actionJ actionK actionL actionM actionN actionO
    actionP actionX
    )

    ## Override some menu defaults
    menuTitle=" CompuBBS - The nature of the good is to overcome and defeat
    the bad..." menuFooter=" Enter=Select, Navigate via Up/Down/First
    number/letter - [Prayer works!]" menuWidth=74 menuLeft=13 menuHighlight=$DRAW_COL_WHITE


    ################################
    ## Run Menu
    ################################
    menuInit menuLoop


    exit 0 ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- bash-menu.sh file below between horizontal rule ----------------------------------------------------------------------------- #!/bin/bash

    #
    # Public Functions
    #
    # menuInit() menuLoop()
    #
    #
    # Public Variables to Override
    #
    # Should these get passed into menuInit() rather than be set as global
    # script variables?
    #
    # menuTop # Top row of menu (defaults to row 2) menuLeft # Left offset
    # for menu item text (defaults to column 15) menuWidth # Width of menu
    # (defaults to 42 columns) menuMargin # Left offset for menu border
    # (defaults to column 4)
    #
    # menuColour # Colour of menu text (defaults to DRAW_COL_WHITE)
    # menuHighlight # Highlight colour for menu (defaults to
    # DRAW_COL_GREEN)
    #
    # menuTitle # Title of menu menuFooter # Footer text of menu
    #
    # menuItems # Array containing menu item text menuActions # Array
    # containing functions to call upon menu item selection
    #


    # Ensure we are running under bash (will not work under sh or dash etc)
    if [ "$BASH_SOURCE" = "" ]; then echo "ERROR: bash-menu requires to be
    running under bash" exit 1
    fi

    # Get script root (as we are sourced from another script, $0 will not be
    # us)
    declare -r menuScript=$(readlink -f ${BASH_SOURCE[0]})
    menuRoot=$(dirname "$menuScript")

    # Ensure we can access our dependencies
    if [ ! -s "$menuRoot/bash-draw.sh" ]; then echo "ERROR: Missing required
    draw.sh script" exit 1
    fi

    # Load terminal drawing functions
    . "$menuRoot/bash-draw.sh"


    ################################
    # Private Variables
    #
    # These should not be overridden
    ################################
    declare -a menuItems declare -a menuActions

    menuHeaderText="" menuFooterText="" menuBorderText=""


    ################################
    # Setup Menu
    #
    # These are defaults which should be overridden as required. ################################

    # Top of menu (row 2)
    menuTop=2

    # Left offset for menu items (not border)
    menuLeft=15

    # Width of menu
    menuWidth=42

    # Left offset for menu border (not menu items)
    menuMargin=4

    menuItems[0]="Exit" menuActions[0]="return 0"

    menuItemCount=1 menuLastItem=0

    menuColour=$DRAW_COL_WHITE menuHighlight=$DRAW_COL_GREEN

    menuTitle=" Super Bash Menu System" menuFooter=" Enter=Select, Up/Down=Prev/Next Option"


    ################################
    # Initialise Menu
    ################################
    menuInit() { menuItemCount=${#menuItems[@]}
    menuLastItem=$((menuItemCount-1))

    # Ensure header and footer are padded appropriately
    menuHeaderText=`printf "%-${menuWidth}s" "$menuTitle"`
    menuFooterText=`printf "%-${menuWidth}s" "$menuFooter"`

    # Menu (side) borders
    local marginSpaces=$((menuMargin-1)) local
    menuSpaces=$((menuWidth-2)) local leftGap=`printf
    "%${marginSpaces}s" ""` local midGap=`printf "%${menuSpaces}s" ""`
    menuBorderText="${leftGap}x${midGap}x"
    }


    ################################
    # Show Menu
    ################################
    menu_Display() { local menuSize=$((menuItemCount+2)) local
    menuEnd=$((menuSize+menuTop+1))

    drawClear drawColour $menuColour $menuHighlight

    # Menu header
    drawHighlightAt $menuTop $menuMargin "$menuHeaderText" 1

    # Menu (side) borders
    for row in $(seq 1 $menuSize); do drawSpecial "$menuBorderText" 1
    done

    # Menu footer
    drawHighlightAt $menuEnd $menuMargin "$menuFooterText" 1

    # Menu items
    for item in $(seq 0 $menuLastItem); do menu_ClearItem $item done
    }


    ################################
    # Mark Menu Items
    ################################

    # Ensure menu item is not highlighted
    menu_ClearItem() { local item=$1 local top=$((menuTop+item+2)) local
    menuText=${menuItems[$item]}

    drawPlainAt $top $menuLeft "$menuText"
    }

    # Highlight menu item
    menu_HighlightItem() { local item=$1 local top=$((menuTop+item+2)) local
    menuText=${menuItems[$item]}

    drawHighlightAt $top $menuLeft "$menuText"
    }


    ################################
    # Wait for and process user input
    ################################
    menu_HandleInput() { local choice=$1

    local after=$((choice+1)) [[ $after -gt $menuLastItem ]] && after=0

    local before=$((choice-1)) [[ $before -lt 0 ]] &&
    before=$menuLastItem

    # Clear highlight from prev/next menu items
    menu_ClearItem $before menu_ClearItem $after

    # Highlight current menu item
    menu_HighlightItem $choice

    # Get keyboard input
    local key="" local extra=""

    read -s -n1 key 2> /dev/null >&2 while read -s -n1 -t .05 extra 2>
    /dev/null >&2 ; do
    key="$key$extra" done

    # Handle known keys
    local escKey=`echo -en "\033"` local upKey=`echo -en "\033[A"` local
    downKey=`echo -en "\033[B"`

    if [[ $key = $upKey ]]; then return $before elif [[ $key = $downKey
    ]]; then
    return $after elif [[ $key = $escKey ]]; then if [[ $choice -eq
    $menuLastItem ]]; then
    # Pressing Esc while on last menu item will trigger action
    # This is a helper as we assume the last menu option is exit
    key="" else
    # Jumping possibly more than 1 (next/prev) item
    menu_ClearItem $choice return $menuLastItem fi elif [[
    ${#key} -eq 1 ]]; then
    # See if we wanrt to jump to a menu item by entering the first
    # character
    for index in $(seq 0 $menuLastItem) ; do local
    item=${menuItems[$index]} local startChar=${item:0:1} if [[
    "$key" = "$startChar" ]]; then
    # Jumping possibly more than 1 (next/prev) item
    menu_ClearItem $choice return $index fi done fi

    if [[ "$key" = "" ]]; then
    # Notify that Enter key was pressed
    return 255 fi

    return $choice
    }


    ################################
    # Main Menu Loop
    ################################
    menuLoop() { local choice=0 local running=1

    menu_Display

    while [[ $running -eq 1 ]]; do
    # Enable case insensitive matching
    local caseMatch=`shopt -p nocasematch` shopt -s nocasematch

    menu_HandleInput $choice local newChoice=$?

    # Revert to previous case matching
    $caseMatch

    if [[ $newChoice -eq 255 ]]; then
    # Enter pressed - run menu action
    drawClear action=${menuActions[$choice]} $action running=$?

    # Back from action If we are still running, redraw menu
    [[ $running -eq 1 ]] && menu_Display

    elif [[ $newChoice -lt $menuItemCount ]]; then
    # Update selected menu item
    choice=$newChoice fi done

    # Cleanup screen
    drawClear
    }
    ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- bash-draw.sh file below between horizontal rule ----------------------------------------------------------------------------- #!/bin/bash

    #
    # Public Functions:
    #
    # drawClear() drawColour(colour = DRAW_COL_DEF, bgColour =
    # DRAW_COL_DEF)
    #
    # drawPlain(text, newLine = 0) drawSpecial(text, newLine = 0)
    # drawHighlight(text, newLine = 0) drawPlainAt(left, top, text,
    # newLine = 0) drawHighlightAt(left, top, text, newLine = 0)
    #
    #
    # Colours
    #
    # DRAW_COL_DEF # Default colour DRAW_COL_BLACK DRAW_COL_WHITE
    # DRAW_COL_RED DRAW_COL_GREEN DRAW_COL_YELLOW DRAW_COL_BLUE
    # DRAW_COL_GRAY # Light gray (grey?)
    #


    # Ensure we are running under bash (will not work under sh or dash etc)
    if [ "$BASH_SOURCE" = "" ]; then echo "ERROR: bash-draw requires to be
    running under bash" exit 1
    fi


    DRAW_COL_DEF=39 DRAW_COL_BLACK=30 DRAW_COL_WHITE=97 DRAW_COL_RED=31 DRAW_COL_GREEN=32 DRAW_COL_YELLOW=33 DRAW_COL_BLUE=34 DRAW_COL_GRAY=37


    # drawClear()
    drawClear() { $ESC_WRITE "\033c"
    }

    # drawColour(colour = DRAW_COL_DEF, bgColour = DRAW_COL_DEF)
    drawColour() { local colour=$DRAW_COL_DEF local
    bgColour=$((DRAW_COL_DEF+10))

    if [[ ! -z "$1" && "$1" != "" ]]; then colour="$1" fi

    if [[ ! -z "$2" && "$2" != "" ]]; then bgColour="$2" fi

    $ESC_ECHO "\033c\033[H\033[J\033[${colour};${bgColour}m\033[J"
    }

    # drawPlain(text, newLine = 0)
    drawPlain() { if [[ -z "$2" || "$2" -eq 0 ]]; then $ESC_WRITE "$1" else
    $ESC_ECHO "$1"
    fi
    }

    # drawSpecial(text, newLine = 0)
    drawSpecial() { [[ -z "$2" ]] && newLine=0 || newLine="$2"

    draw_SetDrawMode drawPlain "$1" "$newLine" draw_SetWriteMode
    }

    # drawHighlight(text, newLine = 0)
    drawHighlight() { [[ -z "$2" ]] && newLine=0 || newLine="$2"

    draw_StartHighlight drawPlain "$1" "$newLine" draw_EndHighlight
    }

    # drawPlainAt(left, top, text, newLine = 0)
    drawPlainAt() { [[ -z "$4" ]] && newLine=0 || newLine="$4"

    draw_MoveTo $1 $2 drawPlain "$3" "$newLine"
    }

    # drawHighlightAt(left, top, text, newLine = 0)
    drawHighlightAt() { [[ -z "$4" ]] && newLine=0 || newLine="$4"

    draw_StartHighlight drawPlainAt "$1" "$2" "$3" "$newLine"
    draw_EndHighlight
    }


    # Write escape sequence with no newline
    ESC_WRITE='echo -en'

    # Write escape sequence adding newline
    ESC_ECHO='echo -e'


    # Move cursor to specified location
    draw_MoveTo() { $ESC_WRITE "\033[${1};${2}H"
    }

    draw_StartHighlight() { $ESC_WRITE "\033[7m"
    }

    draw_EndHighlight() { $ESC_WRITE "\033[27m"
    }

    draw_SetDrawMode() { $ESC_WRITE "\033%@\033(0"
    }

    draw_SetWriteMode() { $ESC_WRITE "\033(B"
    }
    ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- CompuBBS - ECN code ----------------------------------------------------------------------------- Please find below the CompuBBS ECN code originally developed by Josh
    Greene. It is something a former friend of mine once told me about as
    he worked at Daytek during the dawn of the internet. At the time I was
    to oblivous to the fact that money is the very means by which our lives
    revolve around. As they say, "when men and women get together [money]
    gets in the way". The Josh Greene's ECN day trading code is intended as
    a game for now until it becomes more viable for the purposes of the Cybermatrix.

    The below ECN day trading code is in Python. So check it out. Try to
    make it into a game at first so that you and your network can learn how
    to play it before proceeding. I heard when it comes to the stock market
    one can literally loose their shirt on this. So beware. Ignorance is
    not bliss.

    The intention for this code is toward the establishment of the
    cybermatrix or to say the opern source fiat like monies initiative for
    the sake of synergy or mutual success. The meaning of cybermartix is
    virtual as in cyber and a database of the nth dimension as in matrix.
    So the cybermatrix is a network of databases of a given
    dimension(matricees) with a larger databases of the nth
    dimension(matrix). So, let's do this.

    God bless and God speed for Jesus Christ is God. Always a pleasure.
    Good luck to you all. I want you to win. Allahu Akhbar! ----------------------------------------------------------------------------- Josh Greene's Island ECN day trading code in Python between horizontal
    rule ----------------------------------------------------------------------------- SET TALK OFF SET CURSOR OFF SET SAFETY OFF SET MEMOWIDTH TO 80 CLEAR ALL
    CLOSE ALL CLEAR CLEAR MACRO && Get rid of F keys typing commands SET
    HELP OFF && Needed to clear out F1 key too

    =rand(-1)

    #define COREDEST "FFFFFFFF0673"

    gstoredflag = .F. && Are there any messages buffered that could be
    flushed?

    #define VERSION "2.40"

    malertfile = "M:\logs\island2.err" mholdofffile =
    "M:\island2\holdoff.txt"

    blanknbuffer="R"+replicate( " " , 200 ) && get BRIGADEN message here

    #define CORELINELEN 124 define COREMESSAGELEN 122

    #define READPORT "067F"

    load int99

    define window title from 0,0 to 0,scols()-1 COLOR "W/B" NONE define
    window output from 1,0 to 10,scols()-1 NONE COLOR "W+/N" define window
    ticker from 12,0 to srows()-1,scols()-1 NONE define window status from
    11,0 to 11,scols()-1 COLOR "W+/R" NONE

    do title do initstatus

    activate window title activate window status

    activate window output activate window ticker


    s = fopen( "ISLAND2.TXT" )

    if s <= 0 wait window "COULD NOT FIND ISLAND2.TXT IN CURRENT DIR. RUN
    RESET." quit
    endif

    x = fgets( s )

    if "ISLAND2" # x wait window "ACCOUNT IN ISLAND2.TXT DOES NOT MATCH
    ACCOUNT ENV VAR. RUN RESET." =fclose( s ) quit
    endif

    tcount = 0 && For counting random stuff

    tseq = val( fgets( s ) ) && Next order number tmatch = val( fgets( s ) )
    && Next match number tnextdead = val( fgets( s ) ) && Next dead order (zero=none) =fclose( s )

    select select(1) use events set order to WHEN

    tnow = 0

    ttoolate = 0 && Count the too late to cancel events

    gaccept = .F. && Let any orders in? Set by SOD, cleared by EOD
    gactaccept = .F. && Let ACT orders in? Set by SOD, cleared by EOA

    geom = .F. && Have we gotten EOM yet?

    gprinting = .F. && Print incoming messages?

    go top

    if eof("EVENTS")

    tnext = 99999.999

    else

    tnext = WHEN && Time of next event

    endif

    select 0 use sources set order to SOURCE

    select select(1) use island

    gsx = alltrim( str( date() - {2/6/1996} ) )

    gsession = left( "0000000000" , 9-len( gsx ) ) + gsx + "F"

    s="N"+gsession+"5050" && Open the islandfile for writing Mold on port
    5050 call int99 with s

    if s # "n" && Valid open file?

    do alert with "InitMold filed with reason >"+s

    do case

    case s = "i"

    sm ="Error opening files in deney-write mode"

    case s = "j"

    sm = "a file had a partial line fragment"

    case s = "k"

    sm = "not all trailing files are empty"

    case s = "l"

    sm = "all files full"

    otherwise

    sm = "Unknown error"

    endcase

    do alert with sm

    wait window "Error on ISLAND.OUT or ISLAND2.OUT OPEN:"+s

    quit

    endif

    select island

    tecount = 0 && Assume worst case, just to make sure ecount is high
    enough txcount = 0 && Cancels

    x = "L"+READPORT+" " && Read Island2 requests call int99 with x if x #
    "l"
    do alert with "Could not open Command listen!" endif


    gstatdelay = 0.25 do showstatus gnextstats = seconds() + gstatdelay

    gmolddelay = 1 && Time between mold heartbeats gmoldheart = seconds() + gmolddelay && Time to send a MOLD heartbeat by doing a FLUSH

    gmessages = 0 && Number of messages written to the stream gpackets = 0
    && Number of packets writtento the stream

    mdone = .F.

    do while !mdone

    tnow = seconds()

    do while tnow >= tnext

    if !EVENTS.PROCESSED

    do swrite with "G" , EVENTS.CODE

    select EVENTS replace PROCESSED with .T. select
    ISLAND

    else

    ? time()+" Event bypassed:"+ EVENTS.CODE

    endif

    do seteventflags with EVENTS.CODE

    skip 1 in EVENTS

    if eof("EVENTS")

    tnext = 99999.999

    else

    tnext = EVENTS.WHEN

    endif

    enddo

    nbuffer = blanknbuffer

    call int99 with nbuffer

    if nbuffer = "r"

    tlenstr = substr( nbuffer , 2 , 5 )

    tlen = val( tlenstr )

    tmessage = substr( nbuffer , 43 , tlen )

    if gprinting ? time()+" >"+tmessage+"<" endif

    if tmessage = "P" && PING REQUEST

    tsource = substr( nbuffer ,11 , 8)

    do pingreply with tsource , tmessage

    else

    do processtcpip with tmessage

    endif

    else && No pending commands...

    if gstoredflag


    [continued in next message]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Aryavarta@21:1/5 to All on Thu Sep 24 02:24:07 2020
    The CompuBBS code; please use it to communicate :-) ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- readme.txt file below between horizontal rule ----------------------------------------------------------------------------- The CompuBBS code; please use it to communicate :-)
    Satya Prasad Popuri
    Bachelors in Computer Science

    Silence is death. The need for an open source bulletin board system is
    vital for communication to prosper across this earth planet. In my
    travels I have discovered certain tools that help many to research and
    develop with ease while maintaining a sound and cogent system toward
    such an end. This CompuBBS is an open source version of the NYUNET
    bulletin board system I discovered while mistakenly studying and working
    there in my quest for enligtenment. As fate would have it, I chanced
    upon certain tools that I now present with an assortment of other tools
    I have discovered in my triste with death while working in the I.T.
    industry.

    Indeed, such tools have helped me here and there to maintain a
    consistent understanding of not only Unix fundamentals but also a feel
    good experience that is second to none. These tools represent the love
    affair that never quit. Not only has it valorized and inundated across
    this earth planet but has been the aims and means of my reason for
    living.

    Man needs a proper meditation of the heart and this tool list is one of
    the things I have used to be able to better understand myself and
    others. It was during the college years that I was exposed to such
    tools in over 3 universities and 11 years of employment here and there.
    They just work. Given the level of complexity the graphical user
    interface engenders it is refreshing to fall back on a tool base that is
    time immemorial. So please feel free to use them and contribute toward
    the open source endeavor to foster freedom of speech.

    For me prayer works but without a means of communication that is
    uninhibited and unmoderated we are at a loss for words. That is the
    shear beauty of the traditional tools as tin of the USENET NEWS servers;
    as well as the irssi of the IRC servers. It goes on. The list of tools
    I mention are as follows based on over 20 years of experience with the
    UNIX pragma.

    0. Alpine - a nice email client
    1. Tin - a nice newsreader
    2. Irssi - a nice internet relay chat client
    3. Lynx - a nice web browser
    4. Gopher - a nice ftp client
    5. Nano - a nice text editor
    6. Bash - a nice command prompt
    7. T.I.A. - a nice programming editor [This is known as Tiny IDE
    Ada/Anything editor. I am trying to encourage the Ada programming
    language over C++ and Java.]
    8. Nslookup - a nice directory service
    9. Telnet - a nice remote login tool
    A. Tailer - a nice monitoring tool [This I discovered at a .com I worked
    for. It simply goes to an i.p. address and searches for a string. If
    the string is not there an alert is genertated. Maybe it is out there
    in the wild blue yonder of the internet.]
    B. Calc - a nice calculator tool
    C. ECN - a nice day trading game [This is Josh Green's day trading
    algorithym in Python when he worked at Daytek. I posted it somewhere on
    USENET but I am unable to find it.... If you are able to find it please
    let me know. I encourage learning how to deal with money because "when
    men and women get together [money] gets in the way".] That too, they
    say, education is about learning how to communicate and learn how to
    deal with money.
    D. Tutor - a nice Unix tutorial [This tutorial I discovered at New York University. I wonder if there is an open source version of it.] It is
    a great way to learn the Unix operating system.
    E. Bible - a nice text based bible program [Does anyone know of an old
    school Bible program that is text based and worthy of praise? Prayer to
    Jesus Christ works!]
    F. Sendpage - this is a nice beeper software that helps to keep in touch
    with loved ones and others through the beeper or pager tool.
    $. Exit - a simple exit to the whole compubbs tools for research and development.

    I have foregoed useing the queue tool as it may cause some problems as
    far as managing and maintaining. The queue tool is always an issue for
    any I.T. computer lab as it is often the target of attacks by
    miscreants. There are other tools, such as 'talk', that are also good
    if you know how to use them in the code I mentioned. I refrained from mentioning talk because it requires input about the user and terminal to literally talk to using a text based interface. Maybe someone can
    design a text based form to fill out that will allow for one to use talk
    and then go back to the main menu. The file list for this compubbs
    endeavor is as follows:

    compubbs.sh
    bash-menu.sh
    bash-draw.sh
    readme.txt

    Please find the code in the following USENET newsgroups:

    soc.culture.indian
    soc.culture.asian.american
    soc.culture.usa
    soc.cutlure.spain
    soc.culture.bangladesh
    soc.culture.puerto.rico
    alt.computer.consultants
    alt.sex.stories.hetero

    Let's setup servers of this type of an unmoderated bulletin board
    system. While the internet has encouraged reciprocity or mutual
    respect, the BBS has encouraged comaraderie or mutual trust. This
    cybermatrix endeavor which I am trying to contravecy is an attempt
    toward synergy or mutual success. As well, there is a need for unity or
    mutual purpose. The T.E.A.M. acronymn for "together everyone
    accomplishes more" is worth encouraging.

    The following are some nice networks I am encouraging toward some level
    of mutuality:

    # - network - tool - idnustry - smurf - mutuality - signal ----------------------------------------------------------
    1 - Simulcast - radio - spiritual - arabian - comaradery - analog
    2 - Internet - computer - technological - indian - reciprocity - digital
    3 - Cybermatrix - television - financial - hispanic - synergy - ?
    4 - Tektocracy - beeper - political - russian - unity - ?
    5 - Sneakerweb - tablet - educational - gypsy - infidelity - ?
    6 - Darkring - console - architectural - african - ? - ?
    7 - Datatron - tracker(i.e. fitbit) - medical - european - ? - ?
    8 - Heliopex - watch - recreational - artican - ? - ?
    9 - Transpace - PDA(a.k.a smartphone) - sexual - oriental - ? -
    ? 10 - Stargate - controller - audiovisual - australian - ? - ?

    As well I have noticed the following dutys that seem to withstand the
    test of time and surpass all understanding with my I.T. industry. They
    are as follows:

    CIS Sysadmins:
    (Computer Information Specialties)
    ----------------------------------
    1. networking - solaris : british/grocer
    2. databasing - linux : oriental/escort
    3. multimedia - macintosh osx(bsd) : european/physcian
    4. programming - minix/x11/react os : indian/consultant
    5. productivity - haiku? : (Terron,Tamil,Taino,Tiwi)lawyer?
    6. security – sgi? : australian/designer
    7. management - sap/vax? : african/landlord
    8. troubleshooting - cytrix? : hispanic/accountant
    9. testing - sco/sylk? : arabian/scholar
    10.gaming - irix : russian//bouncer?
    ----------
    Outside contractors:
    11.tutoring - amix : jewish/teacher (outside contractor)

    With respect to the involvement of the Jewish blight upon humanity
    within the I.T. industry I find they are a curse more than anything.
    All they do is sabotage whichever system to justify yet another failed investment into thier diaspora. It is like that among them as their
    history of failure is not only evidenced in the Holy Bible as in the
    kingdom of Egypt but also in whichever other civilization to have graced
    this earth. That is why the Jews of the Yiddish, Zen, Vudu, Hindu,
    LGBTQ, NGR, Creole, Hapa, Hoon, and Roma ancestorys are known as the
    Negroid race, the niggers of the world.

    Anyway, join us in this endeavor to liberate humanity from the vice grip
    of the jew baiting culture of the idiot and wrong. I pray to Jesus
    Christ that you find them useful and worthy of praise as I have. This
    compubbs is a brief history of time and space of a world so good. In a
    way, the nature of the good is to overcome and defeat the bad. So, God
    bless and God speed for Jesus Christ is God. Always a pleasure. May
    you and your loved one's in the name of Jesus Christ be well, happy, prosperous, peacefull, healthy, and safe.

    P.S.
    Let it be said, "[financial] frustration creates a great imbalance
    in mind and body." We need to allay our antogonizing forces so that
    open source fiat like monies are provided for all concerned. The UNIX
    may help with learning how to communicate but the FIAT may help with
    learning how to deal with monies.

    The only issues I have are the evil empire of the JUBU and their
    branches of the Transcedentalism, Allopathy, Microsoft, Niggervision, Palmistry, and Insurance corporations of whichever bilk and swindel.
    There is that of a thing as evil and it is their incessant anti-Christ
    ways which ruin the whole thing. That is the issue. The dangers of the Jewish, Zen, Vudu, Hindu, LGBTQ, NGR, Creole, Hapa, Hoon, Roma masters
    of the nothing or meaningless things as in zazen(breathing excercises),
    mantra recitation, and koan visualization of the Satanic Dharma is more
    than anything. They are more of an evil and a bad influence than one can possibly dream. Quite a number bank on those people in order to
    eliminate innocent and good people to further their zero sum end game.
    Simply say the words Jesus Christ in your prayers to escape from such
    negative influences.

    The following republics are the bases of the evil empire of the JUBU:

    Taiwan - empire of Zen
    Israel - empire of Jews
    Sicily - empire of LGBTQ
    Haiti - empire of Vudu
    Hawaii - empire of Hindus
    Trinidad - empire of Creole?
    Indonesia - empire of Hapa?
    Phillipines - empire of Ngrs?
    Tibet - empire of Hoon?
    Brooklyn - empire of the Roma?

    Transcendentalist mafia are from such areas acenstorally and are
    harbingers of the worst known massacre known to man, called the
    religious war. This ComuBBS tool is to help people communicate for the
    sake of not only the ontology of Jesus Christ but also to better get
    clues on how to deal with those people of the Dying Arts. I really want
    to setup this system so that those stinken Jews are not a part of it.
    Their trespass into literally every industry to do stupid and useless
    things is a real danger for all concerned. Those people of the Dying
    Arts and the Jewish diaspora are like monkeys hell bent on suicide and sacrifice, to name a few. With their penchant toward brain degenerating
    ways, we are headed toward a nuclear war and economic collapse the world
    over unlike anything before. What is the use?

    Already the evil empire of the JUBU has perpetuated the destruction of
    the World Trade Center through thier Y2K bug fix pretention. Already
    the state of Louisiana has been horribly flooded because of yet another
    Jew baiting fetish gone wrong. Already the coronavirus has been
    unleashed to kill off more people.

    I see a trend and history by the Jewish diaspora to literally war with
    anyone for the sake of thier religious war. A religious war documented
    in religious books, life experiences, and television programming. It is
    like all over the place. Open and unmoderated communication for our
    people of Abraham hostaged by those of the evil empire of the JUBU is a
    good means toward liberating us from the ignorance which is not bliss.
    More will arrive to the body of Christ. Believe you me, those stinken
    Jews have to be defeated.

    Already, the Europeans, Russians, Chinese, and now the Arabians have politically made it known that Jews are unwanted in their realm. I as a
    Desi or native of the Indian subcontinent do the same. I tell ya,
    travelling to my homeland of the Indian subcontinent or Aryavarta was a
    real shocking reality to see so many of my people in abject life
    conditions due to the Hindu pride and prejudice maintained for over
    5,000 years and then some. Those gypsy niggers or even to say the
    negroid race are the very reason why Desi civilization could never come
    up and was the riddicule of the masses.

    Now with this wonderful capitalism, we can see a world where anyone and everyone is able to use such weapons to ward off the evil ones. Nothing
    worse than trying to find enlightenment in the wrong way through a one
    way ticket to the foothills of the Himalayas after following some
    Satanic master of the Zen empire of Taiwan. Ignorance is not bliss and ignorance of Jesus Christ is like the worst. God bless and God speed
    for Jesus Christ is God. Always a pleasure. Nothing worse than being
    on a park bench drinking liquor going through an existential doubt.
    Believe it.

    Sincerely,

    Satya Prasad Popuri (Satyababu)

    Signature: "The nature of the good is to overcome and defeat the bad." ----------------------------------------------------------------------------- compubbs.sh file below between horizontal rule ----------------------------------------------------------------------------- #!/bin/bash

    # Ensure we are running under bash
    if [ "$BASH_SOURCE" = "" ]; then /bin/bash "$0" exit 0 fi

    #
    # Load bash-menu script
    #
    # NOTE: Ensure this is done before using or overriding menu
    # functions/variables.
    #
    . "bash-menu.sh"


    ################################
    ## Example Menu Actions
    ##
    ## They should return 1 to indicate that the menu should continue, or
    ## return 0 to signify the menu should exit.
    ################################
    actionA() { alpine return 1
    }

    actionB() { tin -r -g freenews.netfront.net return 1
    }

    actionC() { irssi return 1
    }

    actionD() { lynx return 1
    }

    actionE() { gopher return 1
    }

    actionF() { nano return 1
    }

    actionG() { bash return 1
    }

    actionH() { tia return 1
    }

    actionI() { nslookup return 1
    }

    actionJ() { telnet return 1
    }

    actionK() { tailer return 1
    }

    actionL() { calc return 1
    }

    actionM() { ecn return 1
    }

    actionN() { bible return 1
    }

    actionO() { tutor return 1
    }

    actionP() { sendpage return 1
    }

    actionX() { return 0
    }


    ################################
    ## Setup Example Menu
    ################################

    ## Menu Item Text
    ##
    ## It makes sense to have "Exit" as the last item, as pressing Esc will
    ## jump to last item (and pressing Esc while on last item will perform
    ## the associated action).
    ##
    ## NOTE: If these are not all the same width the menu highlight will
    ## look wonky
    menuItems=( "0. Alpine ----------------------- email client" "1. Tin
    -------------------------- usenet news reader" "2. Irssi
    ------------------------ irc network" "3. Lynx
    ------------------------- web browser" "4. Gopher
    ----------------------- ftp protocol" "5. Nano
    ------------------------- text editor" "6. Bash
    ------------------------- command prompt" "7. T.I.A.
    ----------------------- programming IDE" "8. Nslookup
    --------------------- directory service" "9. Telnet
    ----------------------- remote login" "A. Tailer
    ----------------------- monitoring tool" "B. Calc
    ------------------------- calculator" "C. ECN
    -------------------------- daytrading game" "D. Tutor
    ------------------------ unix tutorial" "E. Bible
    ------------------------ way of enlightenment" "F. Sendpage
    --------------------- beeper server" "$. Exit
    ------------------------- God speed :-)"
    )

    ## Menu Item Actions
    menuActions=( actionA actionB actionC actionD actionE actionF actionG
    actionH actionI actionJ actionK actionL actionM actionN actionO
    actionP actionX
    )

    ## Override some menu defaults
    menuTitle=" CompuBBS - The nature of the good is to overcome and defeat
    the bad..." menuFooter=" Enter=Select, Navigate via Up/Down/First
    number/letter - [Prayer works!]" menuWidth=74 menuLeft=13 menuHighlight=$DRAW_COL_WHITE


    ################################
    ## Run Menu
    ################################
    menuInit menuLoop


    exit 0 ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- bash-menu.sh file below between horizontal rule ----------------------------------------------------------------------------- #!/bin/bash

    #
    # Public Functions
    #
    # menuInit() menuLoop()
    #
    #
    # Public Variables to Override
    #
    # Should these get passed into menuInit() rather than be set as global
    # script variables?
    #
    # menuTop # Top row of menu (defaults to row 2) menuLeft # Left offset
    # for menu item text (defaults to column 15) menuWidth # Width of menu
    # (defaults to 42 columns) menuMargin # Left offset for menu border
    # (defaults to column 4)
    #
    # menuColour # Colour of menu text (defaults to DRAW_COL_WHITE)
    # menuHighlight # Highlight colour for menu (defaults to
    # DRAW_COL_GREEN)
    #
    # menuTitle # Title of menu menuFooter # Footer text of menu
    #
    # menuItems # Array containing menu item text menuActions # Array
    # containing functions to call upon menu item selection
    #


    # Ensure we are running under bash (will not work under sh or dash etc)
    if [ "$BASH_SOURCE" = "" ]; then echo "ERROR: bash-menu requires to be
    running under bash" exit 1
    fi

    # Get script root (as we are sourced from another script, $0 will not be
    # us)
    declare -r menuScript=$(readlink -f ${BASH_SOURCE[0]})
    menuRoot=$(dirname "$menuScript")

    # Ensure we can access our dependencies
    if [ ! -s "$menuRoot/bash-draw.sh" ]; then echo "ERROR: Missing required
    draw.sh script" exit 1
    fi

    # Load terminal drawing functions
    . "$menuRoot/bash-draw.sh"


    ################################
    # Private Variables
    #
    # These should not be overridden
    ################################
    declare -a menuItems declare -a menuActions

    menuHeaderText="" menuFooterText="" menuBorderText=""


    ################################
    # Setup Menu
    #
    # These are defaults which should be overridden as required. ################################

    # Top of menu (row 2)
    menuTop=2

    # Left offset for menu items (not border)
    menuLeft=15

    # Width of menu
    menuWidth=42

    # Left offset for menu border (not menu items)
    menuMargin=4

    menuItems[0]="Exit" menuActions[0]="return 0"

    menuItemCount=1 menuLastItem=0

    menuColour=$DRAW_COL_WHITE menuHighlight=$DRAW_COL_GREEN

    menuTitle=" Super Bash Menu System" menuFooter=" Enter=Select, Up/Down=Prev/Next Option"


    ################################
    # Initialise Menu
    ################################
    menuInit() { menuItemCount=${#menuItems[@]}
    menuLastItem=$((menuItemCount-1))

    # Ensure header and footer are padded appropriately
    menuHeaderText=`printf "%-${menuWidth}s" "$menuTitle"`
    menuFooterText=`printf "%-${menuWidth}s" "$menuFooter"`

    # Menu (side) borders
    local marginSpaces=$((menuMargin-1)) local
    menuSpaces=$((menuWidth-2)) local leftGap=`printf
    "%${marginSpaces}s" ""` local midGap=`printf "%${menuSpaces}s" ""`
    menuBorderText="${leftGap}x${midGap}x"
    }


    ################################
    # Show Menu
    ################################
    menu_Display() { local menuSize=$((menuItemCount+2)) local
    menuEnd=$((menuSize+menuTop+1))

    drawClear drawColour $menuColour $menuHighlight

    # Menu header
    drawHighlightAt $menuTop $menuMargin "$menuHeaderText" 1

    # Menu (side) borders
    for row in $(seq 1 $menuSize); do drawSpecial "$menuBorderText" 1
    done

    # Menu footer
    drawHighlightAt $menuEnd $menuMargin "$menuFooterText" 1

    # Menu items
    for item in $(seq 0 $menuLastItem); do menu_ClearItem $item done
    }


    ################################
    # Mark Menu Items
    ################################

    # Ensure menu item is not highlighted
    menu_ClearItem() { local item=$1 local top=$((menuTop+item+2)) local
    menuText=${menuItems[$item]}

    drawPlainAt $top $menuLeft "$menuText"
    }

    # Highlight menu item
    menu_HighlightItem() { local item=$1 local top=$((menuTop+item+2)) local
    menuText=${menuItems[$item]}

    drawHighlightAt $top $menuLeft "$menuText"
    }


    ################################
    # Wait for and process user input
    ################################
    menu_HandleInput() { local choice=$1

    local after=$((choice+1)) [[ $after -gt $menuLastItem ]] && after=0

    local before=$((choice-1)) [[ $before -lt 0 ]] &&
    before=$menuLastItem

    # Clear highlight from prev/next menu items
    menu_ClearItem $before menu_ClearItem $after

    # Highlight current menu item
    menu_HighlightItem $choice

    # Get keyboard input
    local key="" local extra=""

    read -s -n1 key 2> /dev/null >&2 while read -s -n1 -t .05 extra 2>
    /dev/null >&2 ; do
    key="$key$extra" done

    # Handle known keys
    local escKey=`echo -en "\033"` local upKey=`echo -en "\033[A"` local
    downKey=`echo -en "\033[B"`

    if [[ $key = $upKey ]]; then return $before elif [[ $key = $downKey
    ]]; then
    return $after elif [[ $key = $escKey ]]; then if [[ $choice -eq
    $menuLastItem ]]; then
    # Pressing Esc while on last menu item will trigger action
    # This is a helper as we assume the last menu option is exit
    key="" else
    # Jumping possibly more than 1 (next/prev) item
    menu_ClearItem $choice return $menuLastItem fi elif [[
    ${#key} -eq 1 ]]; then
    # See if we wanrt to jump to a menu item by entering the first
    # character
    for index in $(seq 0 $menuLastItem) ; do local
    item=${menuItems[$index]} local startChar=${item:0:1} if [[
    "$key" = "$startChar" ]]; then
    # Jumping possibly more than 1 (next/prev) item
    menu_ClearItem $choice return $index fi done fi

    if [[ "$key" = "" ]]; then
    # Notify that Enter key was pressed
    return 255 fi

    return $choice
    }


    ################################
    # Main Menu Loop
    ################################
    menuLoop() { local choice=0 local running=1

    menu_Display

    while [[ $running -eq 1 ]]; do
    # Enable case insensitive matching
    local caseMatch=`shopt -p nocasematch` shopt -s nocasematch

    menu_HandleInput $choice local newChoice=$?

    # Revert to previous case matching
    $caseMatch

    if [[ $newChoice -eq 255 ]]; then
    # Enter pressed - run menu action
    drawClear action=${menuActions[$choice]} $action running=$?

    # Back from action If we are still running, redraw menu
    [[ $running -eq 1 ]] && menu_Display

    elif [[ $newChoice -lt $menuItemCount ]]; then
    # Update selected menu item
    choice=$newChoice fi done

    # Cleanup screen
    drawClear
    }
    ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- bash-draw.sh file below between horizontal rule ----------------------------------------------------------------------------- #!/bin/bash

    #
    # Public Functions:
    #
    # drawClear() drawColour(colour = DRAW_COL_DEF, bgColour =
    # DRAW_COL_DEF)
    #
    # drawPlain(text, newLine = 0) drawSpecial(text, newLine = 0)
    # drawHighlight(text, newLine = 0) drawPlainAt(left, top, text,
    # newLine = 0) drawHighlightAt(left, top, text, newLine = 0)
    #
    #
    # Colours
    #
    # DRAW_COL_DEF # Default colour DRAW_COL_BLACK DRAW_COL_WHITE
    # DRAW_COL_RED DRAW_COL_GREEN DRAW_COL_YELLOW DRAW_COL_BLUE
    # DRAW_COL_GRAY # Light gray (grey?)
    #


    # Ensure we are running under bash (will not work under sh or dash etc)
    if [ "$BASH_SOURCE" = "" ]; then echo "ERROR: bash-draw requires to be
    running under bash" exit 1
    fi


    DRAW_COL_DEF=39 DRAW_COL_BLACK=30 DRAW_COL_WHITE=97 DRAW_COL_RED=31 DRAW_COL_GREEN=32 DRAW_COL_YELLOW=33 DRAW_COL_BLUE=34 DRAW_COL_GRAY=37


    # drawClear()
    drawClear() { $ESC_WRITE "\033c"
    }

    # drawColour(colour = DRAW_COL_DEF, bgColour = DRAW_COL_DEF)
    drawColour() { local colour=$DRAW_COL_DEF local
    bgColour=$((DRAW_COL_DEF+10))

    if [[ ! -z "$1" && "$1" != "" ]]; then colour="$1" fi

    if [[ ! -z "$2" && "$2" != "" ]]; then bgColour="$2" fi

    $ESC_ECHO "\033c\033[H\033[J\033[${colour};${bgColour}m\033[J"
    }

    # drawPlain(text, newLine = 0)
    drawPlain() { if [[ -z "$2" || "$2" -eq 0 ]]; then $ESC_WRITE "$1" else
    $ESC_ECHO "$1"
    fi
    }

    # drawSpecial(text, newLine = 0)
    drawSpecial() { [[ -z "$2" ]] && newLine=0 || newLine="$2"

    draw_SetDrawMode drawPlain "$1" "$newLine" draw_SetWriteMode
    }

    # drawHighlight(text, newLine = 0)
    drawHighlight() { [[ -z "$2" ]] && newLine=0 || newLine="$2"

    draw_StartHighlight drawPlain "$1" "$newLine" draw_EndHighlight
    }

    # drawPlainAt(left, top, text, newLine = 0)
    drawPlainAt() { [[ -z "$4" ]] && newLine=0 || newLine="$4"

    draw_MoveTo $1 $2 drawPlain "$3" "$newLine"
    }

    # drawHighlightAt(left, top, text, newLine = 0)
    drawHighlightAt() { [[ -z "$4" ]] && newLine=0 || newLine="$4"

    draw_StartHighlight drawPlainAt "$1" "$2" "$3" "$newLine"
    draw_EndHighlight
    }


    # Write escape sequence with no newline
    ESC_WRITE='echo -en'

    # Write escape sequence adding newline
    ESC_ECHO='echo -e'


    # Move cursor to specified location
    draw_MoveTo() { $ESC_WRITE "\033[${1};${2}H"
    }

    draw_StartHighlight() { $ESC_WRITE "\033[7m"
    }

    draw_EndHighlight() { $ESC_WRITE "\033[27m"
    }

    draw_SetDrawMode() { $ESC_WRITE "\033%@\033(0"
    }

    draw_SetWriteMode() { $ESC_WRITE "\033(B"
    }
    ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- CompuBBS - ECN code ----------------------------------------------------------------------------- Please find below the CompuBBS ECN code originally developed by Josh
    Greene. It is something a former friend of mine once told me about as
    he worked at Daytek during the dawn of the internet. At the time I was
    to oblivous to the fact that money is the very means by which our lives
    revolve around. As they say, "when men and women get together [money]
    gets in the way". The Josh Greene's ECN day trading code is intended as
    a game for now until it becomes more viable for the purposes of the Cybermatrix.

    The below ECN day trading code is in Python. So check it out. Try to
    make it into a game at first so that you and your network can learn how
    to play it before proceeding. I heard when it comes to the stock market
    one can literally loose their shirt on this. So beware. Ignorance is
    not bliss.

    The intention for this code is toward the establishment of the
    cybermatrix or to say the opern source fiat like monies initiative for
    the sake of synergy or mutual success. The meaning of cybermartix is
    virtual as in cyber and a database of the nth dimension as in matrix.
    So the cybermatrix is a network of databases of a given
    dimension(matricees) with a larger databases of the nth
    dimension(matrix). So, let's do this.

    God bless and God speed for Jesus Christ is God. Always a pleasure.
    Good luck to you all. I want you to win. Allahu Akhbar! ----------------------------------------------------------------------------- Josh Greene's Island ECN day trading code in Python between horizontal
    rule ----------------------------------------------------------------------------- SET TALK OFF SET CURSOR OFF SET SAFETY OFF SET MEMOWIDTH TO 80 CLEAR ALL
    CLOSE ALL CLEAR CLEAR MACRO && Get rid of F keys typing commands SET
    HELP OFF && Needed to clear out F1 key too

    =rand(-1)

    #define COREDEST "FFFFFFFF0673"

    gstoredflag = .F. && Are there any messages buffered that could be
    flushed?

    #define VERSION "2.40"

    malertfile = "M:\logs\island2.err" mholdofffile =
    "M:\island2\holdoff.txt"

    blanknbuffer="R"+replicate( " " , 200 ) && get BRIGADEN message here

    #define CORELINELEN 124 define COREMESSAGELEN 122

    #define READPORT "067F"

    load int99

    define window title from 0,0 to 0,scols()-1 COLOR "W/B" NONE define
    window output from 1,0 to 10,scols()-1 NONE COLOR "W+/N" define window
    ticker from 12,0 to srows()-1,scols()-1 NONE define window status from
    11,0 to 11,scols()-1 COLOR "W+/R" NONE

    do title do initstatus

    activate window title activate window status

    activate window output activate window ticker


    s = fopen( "ISLAND2.TXT" )

    if s <= 0 wait window "COULD NOT FIND ISLAND2.TXT IN CURRENT DIR. RUN
    RESET." quit
    endif

    x = fgets( s )

    if "ISLAND2" # x wait window "ACCOUNT IN ISLAND2.TXT DOES NOT MATCH
    ACCOUNT ENV VAR. RUN RESET." =fclose( s ) quit
    endif

    tcount = 0 && For counting random stuff

    tseq = val( fgets( s ) ) && Next order number tmatch = val( fgets( s ) )
    && Next match number tnextdead = val( fgets( s ) ) && Next dead order (zero=none) =fclose( s )

    select select(1) use events set order to WHEN

    tnow = 0

    ttoolate = 0 && Count the too late to cancel events

    gaccept = .F. && Let any orders in? Set by SOD, cleared by EOD
    gactaccept = .F. && Let ACT orders in? Set by SOD, cleared by EOA

    geom = .F. && Have we gotten EOM yet?

    gprinting = .F. && Print incoming messages?

    go top

    if eof("EVENTS")

    tnext = 99999.999

    else

    tnext = WHEN && Time of next event

    endif

    select 0 use sources set order to SOURCE

    select select(1) use island

    gsx = alltrim( str( date() - {2/6/1996} ) )

    gsession = left( "0000000000" , 9-len( gsx ) ) + gsx + "F"

    s="N"+gsession+"5050" && Open the islandfile for writing Mold on port
    5050 call int99 with s

    if s # "n" && Valid open file?

    do alert with "InitMold filed with reason >"+s

    do case

    case s = "i"

    sm ="Error opening files in deney-write mode"

    case s = "j"

    sm = "a file had a partial line fragment"

    case s = "k"

    sm = "not all trailing files are empty"

    case s = "l"

    sm = "all files full"

    otherwise

    sm = "Unknown error"

    endcase

    do alert with sm

    wait window "Error on ISLAND.OUT or ISLAND2.OUT OPEN:"+s

    quit

    endif

    select island

    tecount = 0 && Assume worst case, just to make sure ecount is high
    enough txcount = 0 && Cancels

    x = "L"+READPORT+" " && Read Island2 requests call int99 with x if x #
    "l"
    do alert with "Could not open Command listen!" endif


    gstatdelay = 0.25 do showstatus gnextstats = seconds() + gstatdelay

    gmolddelay = 1 && Time between mold heartbeats gmoldheart = seconds() + gmolddelay && Time to send a MOLD heartbeat by doing a FLUSH

    gmessages = 0 && Number of messages written to the stream gpackets = 0
    && Number of packets writtento the stream

    mdone = .F.

    do while !mdone

    tnow = seconds()

    do while tnow >= tnext

    if !EVENTS.PROCESSED

    do swrite with "G" , EVENTS.CODE

    select EVENTS replace PROCESSED with .T. select
    ISLAND

    else

    ? time()+" Event bypassed:"+ EVENTS.CODE

    endif

    do seteventflags with EVENTS.CODE

    skip 1 in EVENTS

    if eof("EVENTS")

    tnext = 99999.999

    else

    tnext = EVENTS.WHEN

    endif

    enddo

    nbuffer = blanknbuffer

    call int99 with nbuffer

    if nbuffer = "r"

    tlenstr = substr( nbuffer , 2 , 5 )

    tlen = val( tlenstr )

    tmessage = substr( nbuffer , 43 , tlen )

    if gprinting ? time()+" >"+tmessage+"<" endif

    if tmessage = "P" && PING REQUEST

    tsource = substr( nbuffer ,11 , 8)

    do pingreply with tsource , tmessage

    else

    do processtcpip with tmessage

    endif

    else && No pending commands...

    if gstoredflag


    [continued in next message]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Aryavarta@21:1/5 to All on Thu Sep 24 20:25:53 2020
    The CompuBBS code; please use it to communicate :-) ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- readme.txt file below between horizontal rule ----------------------------------------------------------------------------- The CompuBBS code; please use it to communicate :-)
    Satya Prasad Popuri
    Bachelors in Computer Science

    Silence is death. The need for an open source bulletin board system is
    vital for communication to prosper across this earth planet. In my
    travels I have discovered certain tools that help many to research and
    develop with ease while maintaining a sound and cogent system toward
    such an end. This CompuBBS is an open source version of the NYUNET
    bulletin board system I discovered while mistakenly studying and working
    there in my quest for enligtenment. As fate would have it, I chanced
    upon certain tools that I now present with an assortment of other tools
    I have discovered in my triste with death while working in the I.T.
    industry.

    Indeed, such tools have helped me here and there to maintain a
    consistent understanding of not only Unix fundamentals but also a feel
    good experience that is second to none. These tools represent the love
    affair that never quit. Not only has it valorized and inundated across
    this earth planet but has been the aims and means of my reason for
    living.

    Man needs a proper meditation of the heart and this tool list is one of
    the things I have used to be able to better understand myself and
    others. It was during the college years that I was exposed to such
    tools in over 3 universities and 11 years of employment here and there.
    They just work. Given the level of complexity the graphical user
    interface engenders it is refreshing to fall back on a tool base that is
    time immemorial. So please feel free to use them and contribute toward
    the open source endeavor to foster freedom of speech.

    For me prayer works but without a means of communication that is
    uninhibited and unmoderated we are at a loss for words. That is the
    shear beauty of the traditional tools as tin of the USENET NEWS servers;
    as well as the irssi of the IRC servers. It goes on. The list of tools
    I mention are as follows based on over 20 years of experience with the
    UNIX pragma.

    0. Alpine - a nice email client
    1. Tin - a nice newsreader
    2. Irssi - a nice internet relay chat client
    3. Lynx - a nice web browser
    4. Gopher - a nice ftp client
    5. Nano - a nice text editor
    6. Bash - a nice command prompt
    7. T.I.A. - a nice programming editor [This is known as Tiny IDE
    Ada/Anything editor. I am trying to encourage the Ada programming
    language over C++ and Java.]
    8. Nslookup - a nice directory service
    9. Telnet - a nice remote login tool
    A. Tailer - a nice monitoring tool [This I discovered at a .com I worked
    for. It simply goes to an i.p. address and searches for a string. If
    the string is not there an alert is genertated. Maybe it is out there
    in the wild blue yonder of the internet.]
    B. Calc - a nice calculator tool
    C. ECN - a nice day trading game [This is Josh Green's day trading
    algorithym in Python when he worked at Daytek. I posted it somewhere on
    USENET but I am unable to find it.... If you are able to find it please
    let me know. I encourage learning how to deal with money because "when
    men and women get together [money] gets in the way".] That too, they
    say, education is about learning how to communicate and learn how to
    deal with money.
    D. Tutor - a nice Unix tutorial [This tutorial I discovered at New York University. I wonder if there is an open source version of it.] It is
    a great way to learn the Unix operating system.
    E. Bible - a nice text based bible program [Does anyone know of an old
    school Bible program that is text based and worthy of praise? Prayer to
    Jesus Christ works!]
    F. Sendpage - this is a nice beeper software that helps to keep in touch
    with loved ones and others through the beeper or pager tool.
    $. Exit - a simple exit to the whole compubbs tools for research and development.

    I have foregoed useing the queue tool as it may cause some problems as
    far as managing and maintaining. The queue tool is always an issue for
    any I.T. computer lab as it is often the target of attacks by
    miscreants. There are other tools, such as 'talk', that are also good
    if you know how to use them in the code I mentioned. I refrained from mentioning talk because it requires input about the user and terminal to literally talk to using a text based interface. Maybe someone can
    design a text based form to fill out that will allow for one to use talk
    and then go back to the main menu. The file list for this compubbs
    endeavor is as follows:

    compubbs.sh
    bash-menu.sh
    bash-draw.sh
    readme.txt

    Please find the code in the following USENET newsgroups:

    soc.culture.indian
    soc.culture.asian.american
    soc.culture.usa
    soc.cutlure.spain
    soc.culture.bangladesh
    soc.culture.puerto.rico
    alt.computer.consultants
    alt.sex.stories.hetero

    Let's setup servers of this type of an unmoderated bulletin board
    system. While the internet has encouraged reciprocity or mutual
    respect, the BBS has encouraged comaraderie or mutual trust. This
    cybermatrix endeavor which I am trying to contravecy is an attempt
    toward synergy or mutual success. As well, there is a need for unity or
    mutual purpose. The T.E.A.M. acronymn for "together everyone
    accomplishes more" is worth encouraging.

    The following are some nice networks I am encouraging toward some level
    of mutuality:

    # - network - tool - idnustry - smurf - mutuality - signal ----------------------------------------------------------
    1 - Simulcast - radio - spiritual - arabian - comaradery - analog
    2 - Internet - computer - technological - indian - reciprocity - digital
    3 - Cybermatrix - television - financial - hispanic - synergy - ?
    4 - Tektocracy - beeper - political - russian - unity - ?
    5 - Sneakerweb - tablet - educational - gypsy - infidelity - ?
    6 - Darkring - console - architectural - african - ? - ?
    7 - Datatron - tracker(i.e. fitbit) - medical - european - ? - ?
    8 - Heliopex - watch - recreational - artican - ? - ?
    9 - Transpace - PDA(a.k.a smartphone) - sexual - oriental - ? -
    ? 10 - Stargate - controller - audiovisual - australian - ? - ?

    As well I have noticed the following dutys that seem to withstand the
    test of time and surpass all understanding with my I.T. industry. They
    are as follows:

    CIS Sysadmins:
    (Computer Information Specialties)
    ----------------------------------
    1. networking - solaris : british/grocer
    2. databasing - linux : oriental/escort
    3. multimedia - macintosh osx(bsd) : european/physcian
    4. programming - minix/x11/react os : indian/consultant
    5. productivity - haiku? : (Terron,Tamil,Taino,Tiwi)lawyer?
    6. security – sgi? : australian/designer
    7. management - sap/vax? : african/landlord
    8. troubleshooting - cytrix? : hispanic/accountant
    9. testing - sco/sylk? : arabian/scholar
    10.gaming - irix : russian//bouncer?
    ----------
    Outside contractors:
    11.tutoring - amix : jewish/teacher (outside contractor)

    With respect to the involvement of the Jewish blight upon humanity
    within the I.T. industry I find they are a curse more than anything.
    All they do is sabotage whichever system to justify yet another failed investment into thier diaspora. It is like that among them as their
    history of failure is not only evidenced in the Holy Bible as in the
    kingdom of Egypt but also in whichever other civilization to have graced
    this earth. That is why the Jews of the Yiddish, Zen, Vudu, Hindu,
    LGBTQ, NGR, Creole, Hapa, Hoon, and Roma ancestorys are known as the
    Negroid race, the niggers of the world.

    Anyway, join us in this endeavor to liberate humanity from the vice grip
    of the jew baiting culture of the idiot and wrong. I pray to Jesus
    Christ that you find them useful and worthy of praise as I have. This
    compubbs is a brief history of time and space of a world so good. In a
    way, the nature of the good is to overcome and defeat the bad. So, God
    bless and God speed for Jesus Christ is God. Always a pleasure. May
    you and your loved one's in the name of Jesus Christ be well, happy, prosperous, peacefull, healthy, and safe.

    P.S.
    Let it be said, "[financial] frustration creates a great imbalance
    in mind and body." We need to allay our antogonizing forces so that
    open source fiat like monies are provided for all concerned. The UNIX
    may help with learning how to communicate but the FIAT may help with
    learning how to deal with monies.

    The only issues I have are the evil empire of the JUBU and their
    branches of the Transcedentalism, Allopathy, Microsoft, Niggervision, Palmistry, and Insurance corporations of whichever bilk and swindel.
    There is that of a thing as evil and it is their incessant anti-Christ
    ways which ruin the whole thing. That is the issue. The dangers of the Jewish, Zen, Vudu, Hindu, LGBTQ, NGR, Creole, Hapa, Hoon, Roma masters
    of the nothing or meaningless things as in zazen(breathing excercises),
    mantra recitation, and koan visualization of the Satanic Dharma is more
    than anything. They are more of an evil and a bad influence than one can possibly dream. Quite a number bank on those people in order to
    eliminate innocent and good people to further their zero sum end game.
    Simply say the words Jesus Christ in your prayers to escape from such
    negative influences.

    The following republics are the bases of the evil empire of the JUBU:

    Taiwan - empire of Zen
    Israel - empire of Jews
    Sicily - empire of LGBTQ
    Haiti - empire of Vudu
    Hawaii - empire of Hindus
    Trinidad - empire of Creole?
    Indonesia - empire of Hapa?
    Phillipines - empire of Ngrs?
    Tibet - empire of Hoon?
    Brooklyn - empire of the Roma?

    Transcendentalist mafia are from such areas acenstorally and are
    harbingers of the worst known massacre known to man, called the
    religious war. This ComuBBS tool is to help people communicate for the
    sake of not only the ontology of Jesus Christ but also to better get
    clues on how to deal with those people of the Dying Arts. I really want
    to setup this system so that those stinken Jews are not a part of it.
    Their trespass into literally every industry to do stupid and useless
    things is a real danger for all concerned. Those people of the Dying
    Arts and the Jewish diaspora are like monkeys hell bent on suicide and sacrifice, to name a few. With their penchant toward brain degenerating
    ways, we are headed toward a nuclear war and economic collapse the world
    over unlike anything before. What is the use?

    Already the evil empire of the JUBU has perpetuated the destruction of
    the World Trade Center through thier Y2K bug fix pretention. Already
    the state of Louisiana has been horribly flooded because of yet another
    Jew baiting fetish gone wrong. Already the coronavirus has been
    unleashed to kill off more people.

    I see a trend and history by the Jewish diaspora to literally war with
    anyone for the sake of thier religious war. A religious war documented
    in religious books, life experiences, and television programming. It is
    like all over the place. Open and unmoderated communication for our
    people of Abraham hostaged by those of the evil empire of the JUBU is a
    good means toward liberating us from the ignorance which is not bliss.
    More will arrive to the body of Christ. Believe you me, those stinken
    Jews have to be defeated.

    Already, the Europeans, Russians, Chinese, and now the Arabians have politically made it known that Jews are unwanted in their realm. I as a
    Desi or native of the Indian subcontinent do the same. I tell ya,
    travelling to my homeland of the Indian subcontinent or Aryavarta was a
    real shocking reality to see so many of my people in abject life
    conditions due to the Hindu pride and prejudice maintained for over
    5,000 years and then some. Those gypsy niggers or even to say the
    negroid race are the very reason why Desi civilization could never come
    up and was the riddicule of the masses.

    Now with this wonderful capitalism, we can see a world where anyone and everyone is able to use such weapons to ward off the evil ones. Nothing
    worse than trying to find enlightenment in the wrong way through a one
    way ticket to the foothills of the Himalayas after following some
    Satanic master of the Zen empire of Taiwan. Ignorance is not bliss and ignorance of Jesus Christ is like the worst. God bless and God speed
    for Jesus Christ is God. Always a pleasure. Nothing worse than being
    on a park bench drinking liquor going through an existential doubt.
    Believe it.

    Sincerely,

    Satya Prasad Popuri (Satyababu)

    Signature: "The nature of the good is to overcome and defeat the bad." ----------------------------------------------------------------------------- compubbs.sh file below between horizontal rule ----------------------------------------------------------------------------- #!/bin/bash

    # Ensure we are running under bash
    if [ "$BASH_SOURCE" = "" ]; then /bin/bash "$0" exit 0 fi

    #
    # Load bash-menu script
    #
    # NOTE: Ensure this is done before using or overriding menu
    # functions/variables.
    #
    . "bash-menu.sh"


    ################################
    ## Example Menu Actions
    ##
    ## They should return 1 to indicate that the menu should continue, or
    ## return 0 to signify the menu should exit.
    ################################
    actionA() { alpine return 1
    }

    actionB() { tin -r -g freenews.netfront.net return 1
    }

    actionC() { irssi return 1
    }

    actionD() { lynx return 1
    }

    actionE() { gopher return 1
    }

    actionF() { nano return 1
    }

    actionG() { bash return 1
    }

    actionH() { tia return 1
    }

    actionI() { nslookup return 1
    }

    actionJ() { telnet return 1
    }

    actionK() { tailer return 1
    }

    actionL() { calc return 1
    }

    actionM() { ecn return 1
    }

    actionN() { bible return 1
    }

    actionO() { tutor return 1
    }

    actionP() { sendpage return 1
    }

    actionX() { return 0
    }


    ################################
    ## Setup Example Menu
    ################################

    ## Menu Item Text
    ##
    ## It makes sense to have "Exit" as the last item, as pressing Esc will
    ## jump to last item (and pressing Esc while on last item will perform
    ## the associated action).
    ##
    ## NOTE: If these are not all the same width the menu highlight will
    ## look wonky
    menuItems=( "0. Alpine ----------------------- email client" "1. Tin
    -------------------------- usenet news reader" "2. Irssi
    ------------------------ irc network" "3. Lynx
    ------------------------- web browser" "4. Gopher
    ----------------------- ftp protocol" "5. Nano
    ------------------------- text editor" "6. Bash
    ------------------------- command prompt" "7. T.I.A.
    ----------------------- programming IDE" "8. Nslookup
    --------------------- directory service" "9. Telnet
    ----------------------- remote login" "A. Tailer
    ----------------------- monitoring tool" "B. Calc
    ------------------------- calculator" "C. ECN
    -------------------------- daytrading game" "D. Tutor
    ------------------------ unix tutorial" "E. Bible
    ------------------------ way of enlightenment" "F. Sendpage
    --------------------- beeper server" "$. Exit
    ------------------------- God speed :-)"
    )

    ## Menu Item Actions
    menuActions=( actionA actionB actionC actionD actionE actionF actionG
    actionH actionI actionJ actionK actionL actionM actionN actionO
    actionP actionX
    )

    ## Override some menu defaults
    menuTitle=" CompuBBS - The nature of the good is to overcome and defeat
    the bad..." menuFooter=" Enter=Select, Navigate via Up/Down/First
    number/letter - [Prayer works!]" menuWidth=74 menuLeft=13 menuHighlight=$DRAW_COL_WHITE


    ################################
    ## Run Menu
    ################################
    menuInit menuLoop


    exit 0 ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- bash-menu.sh file below between horizontal rule ----------------------------------------------------------------------------- #!/bin/bash

    #
    # Public Functions
    #
    # menuInit() menuLoop()
    #
    #
    # Public Variables to Override
    #
    # Should these get passed into menuInit() rather than be set as global
    # script variables?
    #
    # menuTop # Top row of menu (defaults to row 2) menuLeft # Left offset
    # for menu item text (defaults to column 15) menuWidth # Width of menu
    # (defaults to 42 columns) menuMargin # Left offset for menu border
    # (defaults to column 4)
    #
    # menuColour # Colour of menu text (defaults to DRAW_COL_WHITE)
    # menuHighlight # Highlight colour for menu (defaults to
    # DRAW_COL_GREEN)
    #
    # menuTitle # Title of menu menuFooter # Footer text of menu
    #
    # menuItems # Array containing menu item text menuActions # Array
    # containing functions to call upon menu item selection
    #


    # Ensure we are running under bash (will not work under sh or dash etc)
    if [ "$BASH_SOURCE" = "" ]; then echo "ERROR: bash-menu requires to be
    running under bash" exit 1
    fi

    # Get script root (as we are sourced from another script, $0 will not be
    # us)
    declare -r menuScript=$(readlink -f ${BASH_SOURCE[0]})
    menuRoot=$(dirname "$menuScript")

    # Ensure we can access our dependencies
    if [ ! -s "$menuRoot/bash-draw.sh" ]; then echo "ERROR: Missing required
    draw.sh script" exit 1
    fi

    # Load terminal drawing functions
    . "$menuRoot/bash-draw.sh"


    ################################
    # Private Variables
    #
    # These should not be overridden
    ################################
    declare -a menuItems declare -a menuActions

    menuHeaderText="" menuFooterText="" menuBorderText=""


    ################################
    # Setup Menu
    #
    # These are defaults which should be overridden as required. ################################

    # Top of menu (row 2)
    menuTop=2

    # Left offset for menu items (not border)
    menuLeft=15

    # Width of menu
    menuWidth=42

    # Left offset for menu border (not menu items)
    menuMargin=4

    menuItems[0]="Exit" menuActions[0]="return 0"

    menuItemCount=1 menuLastItem=0

    menuColour=$DRAW_COL_WHITE menuHighlight=$DRAW_COL_GREEN

    menuTitle=" Super Bash Menu System" menuFooter=" Enter=Select, Up/Down=Prev/Next Option"


    ################################
    # Initialise Menu
    ################################
    menuInit() { menuItemCount=${#menuItems[@]}
    menuLastItem=$((menuItemCount-1))

    # Ensure header and footer are padded appropriately
    menuHeaderText=`printf "%-${menuWidth}s" "$menuTitle"`
    menuFooterText=`printf "%-${menuWidth}s" "$menuFooter"`

    # Menu (side) borders
    local marginSpaces=$((menuMargin-1)) local
    menuSpaces=$((menuWidth-2)) local leftGap=`printf
    "%${marginSpaces}s" ""` local midGap=`printf "%${menuSpaces}s" ""`
    menuBorderText="${leftGap}x${midGap}x"
    }


    ################################
    # Show Menu
    ################################
    menu_Display() { local menuSize=$((menuItemCount+2)) local
    menuEnd=$((menuSize+menuTop+1))

    drawClear drawColour $menuColour $menuHighlight

    # Menu header
    drawHighlightAt $menuTop $menuMargin "$menuHeaderText" 1

    # Menu (side) borders
    for row in $(seq 1 $menuSize); do drawSpecial "$menuBorderText" 1
    done

    # Menu footer
    drawHighlightAt $menuEnd $menuMargin "$menuFooterText" 1

    # Menu items
    for item in $(seq 0 $menuLastItem); do menu_ClearItem $item done
    }


    ################################
    # Mark Menu Items
    ################################

    # Ensure menu item is not highlighted
    menu_ClearItem() { local item=$1 local top=$((menuTop+item+2)) local
    menuText=${menuItems[$item]}

    drawPlainAt $top $menuLeft "$menuText"
    }

    # Highlight menu item
    menu_HighlightItem() { local item=$1 local top=$((menuTop+item+2)) local
    menuText=${menuItems[$item]}

    drawHighlightAt $top $menuLeft "$menuText"
    }


    ################################
    # Wait for and process user input
    ################################
    menu_HandleInput() { local choice=$1

    local after=$((choice+1)) [[ $after -gt $menuLastItem ]] && after=0

    local before=$((choice-1)) [[ $before -lt 0 ]] &&
    before=$menuLastItem

    # Clear highlight from prev/next menu items
    menu_ClearItem $before menu_ClearItem $after

    # Highlight current menu item
    menu_HighlightItem $choice

    # Get keyboard input
    local key="" local extra=""

    read -s -n1 key 2> /dev/null >&2 while read -s -n1 -t .05 extra 2>
    /dev/null >&2 ; do
    key="$key$extra" done

    # Handle known keys
    local escKey=`echo -en "\033"` local upKey=`echo -en "\033[A"` local
    downKey=`echo -en "\033[B"`

    if [[ $key = $upKey ]]; then return $before elif [[ $key = $downKey
    ]]; then
    return $after elif [[ $key = $escKey ]]; then if [[ $choice -eq
    $menuLastItem ]]; then
    # Pressing Esc while on last menu item will trigger action
    # This is a helper as we assume the last menu option is exit
    key="" else
    # Jumping possibly more than 1 (next/prev) item
    menu_ClearItem $choice return $menuLastItem fi elif [[
    ${#key} -eq 1 ]]; then
    # See if we wanrt to jump to a menu item by entering the first
    # character
    for index in $(seq 0 $menuLastItem) ; do local
    item=${menuItems[$index]} local startChar=${item:0:1} if [[
    "$key" = "$startChar" ]]; then
    # Jumping possibly more than 1 (next/prev) item
    menu_ClearItem $choice return $index fi done fi

    if [[ "$key" = "" ]]; then
    # Notify that Enter key was pressed
    return 255 fi

    return $choice
    }


    ################################
    # Main Menu Loop
    ################################
    menuLoop() { local choice=0 local running=1

    menu_Display

    while [[ $running -eq 1 ]]; do
    # Enable case insensitive matching
    local caseMatch=`shopt -p nocasematch` shopt -s nocasematch

    menu_HandleInput $choice local newChoice=$?

    # Revert to previous case matching
    $caseMatch

    if [[ $newChoice -eq 255 ]]; then
    # Enter pressed - run menu action
    drawClear action=${menuActions[$choice]} $action running=$?

    # Back from action If we are still running, redraw menu
    [[ $running -eq 1 ]] && menu_Display

    elif [[ $newChoice -lt $menuItemCount ]]; then
    # Update selected menu item
    choice=$newChoice fi done

    # Cleanup screen
    drawClear
    }
    ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- bash-draw.sh file below between horizontal rule ----------------------------------------------------------------------------- #!/bin/bash

    #
    # Public Functions:
    #
    # drawClear() drawColour(colour = DRAW_COL_DEF, bgColour =
    # DRAW_COL_DEF)
    #
    # drawPlain(text, newLine = 0) drawSpecial(text, newLine = 0)
    # drawHighlight(text, newLine = 0) drawPlainAt(left, top, text,
    # newLine = 0) drawHighlightAt(left, top, text, newLine = 0)
    #
    #
    # Colours
    #
    # DRAW_COL_DEF # Default colour DRAW_COL_BLACK DRAW_COL_WHITE
    # DRAW_COL_RED DRAW_COL_GREEN DRAW_COL_YELLOW DRAW_COL_BLUE
    # DRAW_COL_GRAY # Light gray (grey?)
    #


    # Ensure we are running under bash (will not work under sh or dash etc)
    if [ "$BASH_SOURCE" = "" ]; then echo "ERROR: bash-draw requires to be
    running under bash" exit 1
    fi


    DRAW_COL_DEF=39 DRAW_COL_BLACK=30 DRAW_COL_WHITE=97 DRAW_COL_RED=31 DRAW_COL_GREEN=32 DRAW_COL_YELLOW=33 DRAW_COL_BLUE=34 DRAW_COL_GRAY=37


    # drawClear()
    drawClear() { $ESC_WRITE "\033c"
    }

    # drawColour(colour = DRAW_COL_DEF, bgColour = DRAW_COL_DEF)
    drawColour() { local colour=$DRAW_COL_DEF local
    bgColour=$((DRAW_COL_DEF+10))

    if [[ ! -z "$1" && "$1" != "" ]]; then colour="$1" fi

    if [[ ! -z "$2" && "$2" != "" ]]; then bgColour="$2" fi

    $ESC_ECHO "\033c\033[H\033[J\033[${colour};${bgColour}m\033[J"
    }

    # drawPlain(text, newLine = 0)
    drawPlain() { if [[ -z "$2" || "$2" -eq 0 ]]; then $ESC_WRITE "$1" else
    $ESC_ECHO "$1"
    fi
    }

    # drawSpecial(text, newLine = 0)
    drawSpecial() { [[ -z "$2" ]] && newLine=0 || newLine="$2"

    draw_SetDrawMode drawPlain "$1" "$newLine" draw_SetWriteMode
    }

    # drawHighlight(text, newLine = 0)
    drawHighlight() { [[ -z "$2" ]] && newLine=0 || newLine="$2"

    draw_StartHighlight drawPlain "$1" "$newLine" draw_EndHighlight
    }

    # drawPlainAt(left, top, text, newLine = 0)
    drawPlainAt() { [[ -z "$4" ]] && newLine=0 || newLine="$4"

    draw_MoveTo $1 $2 drawPlain "$3" "$newLine"
    }

    # drawHighlightAt(left, top, text, newLine = 0)
    drawHighlightAt() { [[ -z "$4" ]] && newLine=0 || newLine="$4"

    draw_StartHighlight drawPlainAt "$1" "$2" "$3" "$newLine"
    draw_EndHighlight
    }


    # Write escape sequence with no newline
    ESC_WRITE='echo -en'

    # Write escape sequence adding newline
    ESC_ECHO='echo -e'


    # Move cursor to specified location
    draw_MoveTo() { $ESC_WRITE "\033[${1};${2}H"
    }

    draw_StartHighlight() { $ESC_WRITE "\033[7m"
    }

    draw_EndHighlight() { $ESC_WRITE "\033[27m"
    }

    draw_SetDrawMode() { $ESC_WRITE "\033%@\033(0"
    }

    draw_SetWriteMode() { $ESC_WRITE "\033(B"
    }
    ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- CompuBBS - ECN code ----------------------------------------------------------------------------- Please find below the CompuBBS ECN code originally developed by Josh
    Greene. It is something a former friend of mine once told me about as
    he worked at Daytek during the dawn of the internet. At the time I was
    to oblivous to the fact that money is the very means by which our lives
    revolve around. As they say, "when men and women get together [money]
    gets in the way". The Josh Greene's ECN day trading code is intended as
    a game for now until it becomes more viable for the purposes of the Cybermatrix.

    The below ECN day trading code is in Python. So check it out. Try to
    make it into a game at first so that you and your network can learn how
    to play it before proceeding. I heard when it comes to the stock market
    one can literally loose their shirt on this. So beware. Ignorance is
    not bliss.

    The intention for this code is toward the establishment of the
    cybermatrix or to say the opern source fiat like monies initiative for
    the sake of synergy or mutual success. The meaning of cybermartix is
    virtual as in cyber and a database of the nth dimension as in matrix.
    So the cybermatrix is a network of databases of a given
    dimension(matricees) with a larger databases of the nth
    dimension(matrix). So, let's do this.

    God bless and God speed for Jesus Christ is God. Always a pleasure.
    Good luck to you all. I want you to win. Allahu Akhbar! ----------------------------------------------------------------------------- Josh Greene's Island ECN day trading code in Python between horizontal
    rule ----------------------------------------------------------------------------- SET TALK OFF SET CURSOR OFF SET SAFETY OFF SET MEMOWIDTH TO 80 CLEAR ALL
    CLOSE ALL CLEAR CLEAR MACRO && Get rid of F keys typing commands SET
    HELP OFF && Needed to clear out F1 key too

    =rand(-1)

    #define COREDEST "FFFFFFFF0673"

    gstoredflag = .F. && Are there any messages buffered that could be
    flushed?

    #define VERSION "2.40"

    malertfile = "M:\logs\island2.err" mholdofffile =
    "M:\island2\holdoff.txt"

    blanknbuffer="R"+replicate( " " , 200 ) && get BRIGADEN message here

    #define CORELINELEN 124 define COREMESSAGELEN 122

    #define READPORT "067F"

    load int99

    define window title from 0,0 to 0,scols()-1 COLOR "W/B" NONE define
    window output from 1,0 to 10,scols()-1 NONE COLOR "W+/N" define window
    ticker from 12,0 to srows()-1,scols()-1 NONE define window status from
    11,0 to 11,scols()-1 COLOR "W+/R" NONE

    do title do initstatus

    activate window title activate window status

    activate window output activate window ticker


    s = fopen( "ISLAND2.TXT" )

    if s <= 0 wait window "COULD NOT FIND ISLAND2.TXT IN CURRENT DIR. RUN
    RESET." quit
    endif

    x = fgets( s )

    if "ISLAND2" # x wait window "ACCOUNT IN ISLAND2.TXT DOES NOT MATCH
    ACCOUNT ENV VAR. RUN RESET." =fclose( s ) quit
    endif

    tcount = 0 && For counting random stuff

    tseq = val( fgets( s ) ) && Next order number tmatch = val( fgets( s ) )
    && Next match number tnextdead = val( fgets( s ) ) && Next dead order (zero=none) =fclose( s )

    select select(1) use events set order to WHEN

    tnow = 0

    ttoolate = 0 && Count the too late to cancel events

    gaccept = .F. && Let any orders in? Set by SOD, cleared by EOD
    gactaccept = .F. && Let ACT orders in? Set by SOD, cleared by EOA

    geom = .F. && Have we gotten EOM yet?

    gprinting = .F. && Print incoming messages?

    go top

    if eof("EVENTS")

    tnext = 99999.999

    else

    tnext = WHEN && Time of next event

    endif

    select 0 use sources set order to SOURCE

    select select(1) use island

    gsx = alltrim( str( date() - {2/6/1996} ) )

    gsession = left( "0000000000" , 9-len( gsx ) ) + gsx + "F"

    s="N"+gsession+"5050" && Open the islandfile for writing Mold on port
    5050 call int99 with s

    if s # "n" && Valid open file?

    do alert with "InitMold filed with reason >"+s

    do case

    case s = "i"

    sm ="Error opening files in deney-write mode"

    case s = "j"

    sm = "a file had a partial line fragment"

    case s = "k"

    sm = "not all trailing files are empty"

    case s = "l"

    sm = "all files full"

    otherwise

    sm = "Unknown error"

    endcase

    do alert with sm

    wait window "Error on ISLAND.OUT or ISLAND2.OUT OPEN:"+s

    quit

    endif

    select island

    tecount = 0 && Assume worst case, just to make sure ecount is high
    enough txcount = 0 && Cancels

    x = "L"+READPORT+" " && Read Island2 requests call int99 with x if x #
    "l"
    do alert with "Could not open Command listen!" endif


    gstatdelay = 0.25 do showstatus gnextstats = seconds() + gstatdelay

    gmolddelay = 1 && Time between mold heartbeats gmoldheart = seconds() + gmolddelay && Time to send a MOLD heartbeat by doing a FLUSH

    gmessages = 0 && Number of messages written to the stream gpackets = 0
    && Number of packets writtento the stream

    mdone = .F.

    do while !mdone

    tnow = seconds()

    do while tnow >= tnext

    if !EVENTS.PROCESSED

    do swrite with "G" , EVENTS.CODE

    select EVENTS replace PROCESSED with .T. select
    ISLAND

    else

    ? time()+" Event bypassed:"+ EVENTS.CODE

    endif

    do seteventflags with EVENTS.CODE

    skip 1 in EVENTS

    if eof("EVENTS")

    tnext = 99999.999

    else

    tnext = EVENTS.WHEN

    endif

    enddo

    nbuffer = blanknbuffer

    call int99 with nbuffer

    if nbuffer = "r"

    tlenstr = substr( nbuffer , 2 , 5 )

    tlen = val( tlenstr )

    tmessage = substr( nbuffer , 43 , tlen )

    if gprinting ? time()+" >"+tmessage+"<" endif

    if tmessage = "P" && PING REQUEST

    tsource = substr( nbuffer ,11 , 8)

    do pingreply with tsource , tmessage

    else

    do processtcpip with tmessage

    endif

    else && No pending commands...

    if gstoredflag


    [continued in next message]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Aryavarta@21:1/5 to All on Thu Sep 24 20:26:24 2020
    The CompuBBS code; please use it to communicate :-) ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- readme.txt file below between horizontal rule ----------------------------------------------------------------------------- The CompuBBS code; please use it to communicate :-)
    Satya Prasad Popuri
    Bachelors in Computer Science

    Silence is death. The need for an open source bulletin board system is
    vital for communication to prosper across this earth planet. In my
    travels I have discovered certain tools that help many to research and
    develop with ease while maintaining a sound and cogent system toward
    such an end. This CompuBBS is an open source version of the NYUNET
    bulletin board system I discovered while mistakenly studying and working
    there in my quest for enligtenment. As fate would have it, I chanced
    upon certain tools that I now present with an assortment of other tools
    I have discovered in my triste with death while working in the I.T.
    industry.

    Indeed, such tools have helped me here and there to maintain a
    consistent understanding of not only Unix fundamentals but also a feel
    good experience that is second to none. These tools represent the love
    affair that never quit. Not only has it valorized and inundated across
    this earth planet but has been the aims and means of my reason for
    living.

    Man needs a proper meditation of the heart and this tool list is one of
    the things I have used to be able to better understand myself and
    others. It was during the college years that I was exposed to such
    tools in over 3 universities and 11 years of employment here and there.
    They just work. Given the level of complexity the graphical user
    interface engenders it is refreshing to fall back on a tool base that is
    time immemorial. So please feel free to use them and contribute toward
    the open source endeavor to foster freedom of speech.

    For me prayer works but without a means of communication that is
    uninhibited and unmoderated we are at a loss for words. That is the
    shear beauty of the traditional tools as tin of the USENET NEWS servers;
    as well as the irssi of the IRC servers. It goes on. The list of tools
    I mention are as follows based on over 20 years of experience with the
    UNIX pragma.

    0. Alpine - a nice email client
    1. Tin - a nice newsreader
    2. Irssi - a nice internet relay chat client
    3. Lynx - a nice web browser
    4. Gopher - a nice ftp client
    5. Nano - a nice text editor
    6. Bash - a nice command prompt
    7. T.I.A. - a nice programming editor [This is known as Tiny IDE
    Ada/Anything editor. I am trying to encourage the Ada programming
    language over C++ and Java.]
    8. Nslookup - a nice directory service
    9. Telnet - a nice remote login tool
    A. Tailer - a nice monitoring tool [This I discovered at a .com I worked
    for. It simply goes to an i.p. address and searches for a string. If
    the string is not there an alert is genertated. Maybe it is out there
    in the wild blue yonder of the internet.]
    B. Calc - a nice calculator tool
    C. ECN - a nice day trading game [This is Josh Green's day trading
    algorithym in Python when he worked at Daytek. I posted it somewhere on
    USENET but I am unable to find it.... If you are able to find it please
    let me know. I encourage learning how to deal with money because "when
    men and women get together [money] gets in the way".] That too, they
    say, education is about learning how to communicate and learn how to
    deal with money.
    D. Tutor - a nice Unix tutorial [This tutorial I discovered at New York University. I wonder if there is an open source version of it.] It is
    a great way to learn the Unix operating system.
    E. Bible - a nice text based bible program [Does anyone know of an old
    school Bible program that is text based and worthy of praise? Prayer to
    Jesus Christ works!]
    F. Sendpage - this is a nice beeper software that helps to keep in touch
    with loved ones and others through the beeper or pager tool.
    $. Exit - a simple exit to the whole compubbs tools for research and development.

    I have foregoed useing the queue tool as it may cause some problems as
    far as managing and maintaining. The queue tool is always an issue for
    any I.T. computer lab as it is often the target of attacks by
    miscreants. There are other tools, such as 'talk', that are also good
    if you know how to use them in the code I mentioned. I refrained from mentioning talk because it requires input about the user and terminal to literally talk to using a text based interface. Maybe someone can
    design a text based form to fill out that will allow for one to use talk
    and then go back to the main menu. The file list for this compubbs
    endeavor is as follows:

    compubbs.sh
    bash-menu.sh
    bash-draw.sh
    readme.txt

    Please find the code in the following USENET newsgroups:

    soc.culture.indian
    soc.culture.asian.american
    soc.culture.usa
    soc.cutlure.spain
    soc.culture.bangladesh
    soc.culture.puerto.rico
    alt.computer.consultants
    alt.sex.stories.hetero

    Let's setup servers of this type of an unmoderated bulletin board
    system. While the internet has encouraged reciprocity or mutual
    respect, the BBS has encouraged comaraderie or mutual trust. This
    cybermatrix endeavor which I am trying to contravecy is an attempt
    toward synergy or mutual success. As well, there is a need for unity or
    mutual purpose. The T.E.A.M. acronymn for "together everyone
    accomplishes more" is worth encouraging.

    The following are some nice networks I am encouraging toward some level
    of mutuality:

    # - network - tool - idnustry - smurf - mutuality - signal ----------------------------------------------------------
    1 - Simulcast - radio - spiritual - arabian - comaradery - analog
    2 - Internet - computer - technological - indian - reciprocity - digital
    3 - Cybermatrix - television - financial - hispanic - synergy - ?
    4 - Tektocracy - beeper - political - russian - unity - ?
    5 - Sneakerweb - tablet - educational - gypsy - infidelity - ?
    6 - Darkring - console - architectural - african - ? - ?
    7 - Datatron - tracker(i.e. fitbit) - medical - european - ? - ?
    8 - Heliopex - watch - recreational - artican - ? - ?
    9 - Transpace - PDA(a.k.a smartphone) - sexual - oriental - ? -
    ? 10 - Stargate - controller - audiovisual - australian - ? - ?

    As well I have noticed the following dutys that seem to withstand the
    test of time and surpass all understanding with my I.T. industry. They
    are as follows:

    CIS Sysadmins:
    (Computer Information Specialties)
    ----------------------------------
    1. networking - solaris : british/grocer
    2. databasing - linux : oriental/escort
    3. multimedia - macintosh osx(bsd) : european/physcian
    4. programming - minix/x11/react os : indian/consultant
    5. productivity - haiku? : (Terron,Tamil,Taino,Tiwi)lawyer?
    6. security – sgi? : australian/designer
    7. management - sap/vax? : african/landlord
    8. troubleshooting - cytrix? : hispanic/accountant
    9. testing - sco/sylk? : arabian/scholar
    10.gaming - irix : russian//bouncer?
    ----------
    Outside contractors:
    11.tutoring - amix : jewish/teacher (outside contractor)

    With respect to the involvement of the Jewish blight upon humanity
    within the I.T. industry I find they are a curse more than anything.
    All they do is sabotage whichever system to justify yet another failed investment into thier diaspora. It is like that among them as their
    history of failure is not only evidenced in the Holy Bible as in the
    kingdom of Egypt but also in whichever other civilization to have graced
    this earth. That is why the Jews of the Yiddish, Zen, Vudu, Hindu,
    LGBTQ, NGR, Creole, Hapa, Hoon, and Roma ancestorys are known as the
    Negroid race, the niggers of the world.

    Anyway, join us in this endeavor to liberate humanity from the vice grip
    of the jew baiting culture of the idiot and wrong. I pray to Jesus
    Christ that you find them useful and worthy of praise as I have. This
    compubbs is a brief history of time and space of a world so good. In a
    way, the nature of the good is to overcome and defeat the bad. So, God
    bless and God speed for Jesus Christ is God. Always a pleasure. May
    you and your loved one's in the name of Jesus Christ be well, happy, prosperous, peacefull, healthy, and safe.

    P.S.
    Let it be said, "[financial] frustration creates a great imbalance
    in mind and body." We need to allay our antogonizing forces so that
    open source fiat like monies are provided for all concerned. The UNIX
    may help with learning how to communicate but the FIAT may help with
    learning how to deal with monies.

    The only issues I have are the evil empire of the JUBU and their
    branches of the Transcedentalism, Allopathy, Microsoft, Niggervision, Palmistry, and Insurance corporations of whichever bilk and swindel.
    There is that of a thing as evil and it is their incessant anti-Christ
    ways which ruin the whole thing. That is the issue. The dangers of the Jewish, Zen, Vudu, Hindu, LGBTQ, NGR, Creole, Hapa, Hoon, Roma masters
    of the nothing or meaningless things as in zazen(breathing excercises),
    mantra recitation, and koan visualization of the Satanic Dharma is more
    than anything. They are more of an evil and a bad influence than one can possibly dream. Quite a number bank on those people in order to
    eliminate innocent and good people to further their zero sum end game.
    Simply say the words Jesus Christ in your prayers to escape from such
    negative influences.

    The following republics are the bases of the evil empire of the JUBU:

    Taiwan - empire of Zen
    Israel - empire of Jews
    Sicily - empire of LGBTQ
    Haiti - empire of Vudu
    Hawaii - empire of Hindus
    Trinidad - empire of Creole?
    Indonesia - empire of Hapa?
    Phillipines - empire of Ngrs?
    Tibet - empire of Hoon?
    Brooklyn - empire of the Roma?

    Transcendentalist mafia are from such areas acenstorally and are
    harbingers of the worst known massacre known to man, called the
    religious war. This ComuBBS tool is to help people communicate for the
    sake of not only the ontology of Jesus Christ but also to better get
    clues on how to deal with those people of the Dying Arts. I really want
    to setup this system so that those stinken Jews are not a part of it.
    Their trespass into literally every industry to do stupid and useless
    things is a real danger for all concerned. Those people of the Dying
    Arts and the Jewish diaspora are like monkeys hell bent on suicide and sacrifice, to name a few. With their penchant toward brain degenerating
    ways, we are headed toward a nuclear war and economic collapse the world
    over unlike anything before. What is the use?

    Already the evil empire of the JUBU has perpetuated the destruction of
    the World Trade Center through thier Y2K bug fix pretention. Already
    the state of Louisiana has been horribly flooded because of yet another
    Jew baiting fetish gone wrong. Already the coronavirus has been
    unleashed to kill off more people.

    I see a trend and history by the Jewish diaspora to literally war with
    anyone for the sake of thier religious war. A religious war documented
    in religious books, life experiences, and television programming. It is
    like all over the place. Open and unmoderated communication for our
    people of Abraham hostaged by those of the evil empire of the JUBU is a
    good means toward liberating us from the ignorance which is not bliss.
    More will arrive to the body of Christ. Believe you me, those stinken
    Jews have to be defeated.

    Already, the Europeans, Russians, Chinese, and now the Arabians have politically made it known that Jews are unwanted in their realm. I as a
    Desi or native of the Indian subcontinent do the same. I tell ya,
    travelling to my homeland of the Indian subcontinent or Aryavarta was a
    real shocking reality to see so many of my people in abject life
    conditions due to the Hindu pride and prejudice maintained for over
    5,000 years and then some. Those gypsy niggers or even to say the
    negroid race are the very reason why Desi civilization could never come
    up and was the riddicule of the masses.

    Now with this wonderful capitalism, we can see a world where anyone and everyone is able to use such weapons to ward off the evil ones. Nothing
    worse than trying to find enlightenment in the wrong way through a one
    way ticket to the foothills of the Himalayas after following some
    Satanic master of the Zen empire of Taiwan. Ignorance is not bliss and ignorance of Jesus Christ is like the worst. God bless and God speed
    for Jesus Christ is God. Always a pleasure. Nothing worse than being
    on a park bench drinking liquor going through an existential doubt.
    Believe it.

    Sincerely,

    Satya Prasad Popuri (Satyababu)

    Signature: "The nature of the good is to overcome and defeat the bad." ----------------------------------------------------------------------------- compubbs.sh file below between horizontal rule ----------------------------------------------------------------------------- #!/bin/bash

    # Ensure we are running under bash
    if [ "$BASH_SOURCE" = "" ]; then /bin/bash "$0" exit 0 fi

    #
    # Load bash-menu script
    #
    # NOTE: Ensure this is done before using or overriding menu
    # functions/variables.
    #
    . "bash-menu.sh"


    ################################
    ## Example Menu Actions
    ##
    ## They should return 1 to indicate that the menu should continue, or
    ## return 0 to signify the menu should exit.
    ################################
    actionA() { alpine return 1
    }

    actionB() { tin -r -g freenews.netfront.net return 1
    }

    actionC() { irssi return 1
    }

    actionD() { lynx return 1
    }

    actionE() { gopher return 1
    }

    actionF() { nano return 1
    }

    actionG() { bash return 1
    }

    actionH() { tia return 1
    }

    actionI() { nslookup return 1
    }

    actionJ() { telnet return 1
    }

    actionK() { tailer return 1
    }

    actionL() { calc return 1
    }

    actionM() { ecn return 1
    }

    actionN() { bible return 1
    }

    actionO() { tutor return 1
    }

    actionP() { sendpage return 1
    }

    actionX() { return 0
    }


    ################################
    ## Setup Example Menu
    ################################

    ## Menu Item Text
    ##
    ## It makes sense to have "Exit" as the last item, as pressing Esc will
    ## jump to last item (and pressing Esc while on last item will perform
    ## the associated action).
    ##
    ## NOTE: If these are not all the same width the menu highlight will
    ## look wonky
    menuItems=( "0. Alpine ----------------------- email client" "1. Tin
    -------------------------- usenet news reader" "2. Irssi
    ------------------------ irc network" "3. Lynx
    ------------------------- web browser" "4. Gopher
    ----------------------- ftp protocol" "5. Nano
    ------------------------- text editor" "6. Bash
    ------------------------- command prompt" "7. T.I.A.
    ----------------------- programming IDE" "8. Nslookup
    --------------------- directory service" "9. Telnet
    ----------------------- remote login" "A. Tailer
    ----------------------- monitoring tool" "B. Calc
    ------------------------- calculator" "C. ECN
    -------------------------- daytrading game" "D. Tutor
    ------------------------ unix tutorial" "E. Bible
    ------------------------ way of enlightenment" "F. Sendpage
    --------------------- beeper server" "$. Exit
    ------------------------- God speed :-)"
    )

    ## Menu Item Actions
    menuActions=( actionA actionB actionC actionD actionE actionF actionG
    actionH actionI actionJ actionK actionL actionM actionN actionO
    actionP actionX
    )

    ## Override some menu defaults
    menuTitle=" CompuBBS - The nature of the good is to overcome and defeat
    the bad..." menuFooter=" Enter=Select, Navigate via Up/Down/First
    number/letter - [Prayer works!]" menuWidth=74 menuLeft=13 menuHighlight=$DRAW_COL_WHITE


    ################################
    ## Run Menu
    ################################
    menuInit menuLoop


    exit 0 ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- bash-menu.sh file below between horizontal rule ----------------------------------------------------------------------------- #!/bin/bash

    #
    # Public Functions
    #
    # menuInit() menuLoop()
    #
    #
    # Public Variables to Override
    #
    # Should these get passed into menuInit() rather than be set as global
    # script variables?
    #
    # menuTop # Top row of menu (defaults to row 2) menuLeft # Left offset
    # for menu item text (defaults to column 15) menuWidth # Width of menu
    # (defaults to 42 columns) menuMargin # Left offset for menu border
    # (defaults to column 4)
    #
    # menuColour # Colour of menu text (defaults to DRAW_COL_WHITE)
    # menuHighlight # Highlight colour for menu (defaults to
    # DRAW_COL_GREEN)
    #
    # menuTitle # Title of menu menuFooter # Footer text of menu
    #
    # menuItems # Array containing menu item text menuActions # Array
    # containing functions to call upon menu item selection
    #


    # Ensure we are running under bash (will not work under sh or dash etc)
    if [ "$BASH_SOURCE" = "" ]; then echo "ERROR: bash-menu requires to be
    running under bash" exit 1
    fi

    # Get script root (as we are sourced from another script, $0 will not be
    # us)
    declare -r menuScript=$(readlink -f ${BASH_SOURCE[0]})
    menuRoot=$(dirname "$menuScript")

    # Ensure we can access our dependencies
    if [ ! -s "$menuRoot/bash-draw.sh" ]; then echo "ERROR: Missing required
    draw.sh script" exit 1
    fi

    # Load terminal drawing functions
    . "$menuRoot/bash-draw.sh"


    ################################
    # Private Variables
    #
    # These should not be overridden
    ################################
    declare -a menuItems declare -a menuActions

    menuHeaderText="" menuFooterText="" menuBorderText=""


    ################################
    # Setup Menu
    #
    # These are defaults which should be overridden as required. ################################

    # Top of menu (row 2)
    menuTop=2

    # Left offset for menu items (not border)
    menuLeft=15

    # Width of menu
    menuWidth=42

    # Left offset for menu border (not menu items)
    menuMargin=4

    menuItems[0]="Exit" menuActions[0]="return 0"

    menuItemCount=1 menuLastItem=0

    menuColour=$DRAW_COL_WHITE menuHighlight=$DRAW_COL_GREEN

    menuTitle=" Super Bash Menu System" menuFooter=" Enter=Select, Up/Down=Prev/Next Option"


    ################################
    # Initialise Menu
    ################################
    menuInit() { menuItemCount=${#menuItems[@]}
    menuLastItem=$((menuItemCount-1))

    # Ensure header and footer are padded appropriately
    menuHeaderText=`printf "%-${menuWidth}s" "$menuTitle"`
    menuFooterText=`printf "%-${menuWidth}s" "$menuFooter"`

    # Menu (side) borders
    local marginSpaces=$((menuMargin-1)) local
    menuSpaces=$((menuWidth-2)) local leftGap=`printf
    "%${marginSpaces}s" ""` local midGap=`printf "%${menuSpaces}s" ""`
    menuBorderText="${leftGap}x${midGap}x"
    }


    ################################
    # Show Menu
    ################################
    menu_Display() { local menuSize=$((menuItemCount+2)) local
    menuEnd=$((menuSize+menuTop+1))

    drawClear drawColour $menuColour $menuHighlight

    # Menu header
    drawHighlightAt $menuTop $menuMargin "$menuHeaderText" 1

    # Menu (side) borders
    for row in $(seq 1 $menuSize); do drawSpecial "$menuBorderText" 1
    done

    # Menu footer
    drawHighlightAt $menuEnd $menuMargin "$menuFooterText" 1

    # Menu items
    for item in $(seq 0 $menuLastItem); do menu_ClearItem $item done
    }


    ################################
    # Mark Menu Items
    ################################

    # Ensure menu item is not highlighted
    menu_ClearItem() { local item=$1 local top=$((menuTop+item+2)) local
    menuText=${menuItems[$item]}

    drawPlainAt $top $menuLeft "$menuText"
    }

    # Highlight menu item
    menu_HighlightItem() { local item=$1 local top=$((menuTop+item+2)) local
    menuText=${menuItems[$item]}

    drawHighlightAt $top $menuLeft "$menuText"
    }


    ################################
    # Wait for and process user input
    ################################
    menu_HandleInput() { local choice=$1

    local after=$((choice+1)) [[ $after -gt $menuLastItem ]] && after=0

    local before=$((choice-1)) [[ $before -lt 0 ]] &&
    before=$menuLastItem

    # Clear highlight from prev/next menu items
    menu_ClearItem $before menu_ClearItem $after

    # Highlight current menu item
    menu_HighlightItem $choice

    # Get keyboard input
    local key="" local extra=""

    read -s -n1 key 2> /dev/null >&2 while read -s -n1 -t .05 extra 2>
    /dev/null >&2 ; do
    key="$key$extra" done

    # Handle known keys
    local escKey=`echo -en "\033"` local upKey=`echo -en "\033[A"` local
    downKey=`echo -en "\033[B"`

    if [[ $key = $upKey ]]; then return $before elif [[ $key = $downKey
    ]]; then
    return $after elif [[ $key = $escKey ]]; then if [[ $choice -eq
    $menuLastItem ]]; then
    # Pressing Esc while on last menu item will trigger action
    # This is a helper as we assume the last menu option is exit
    key="" else
    # Jumping possibly more than 1 (next/prev) item
    menu_ClearItem $choice return $menuLastItem fi elif [[
    ${#key} -eq 1 ]]; then
    # See if we wanrt to jump to a menu item by entering the first
    # character
    for index in $(seq 0 $menuLastItem) ; do local
    item=${menuItems[$index]} local startChar=${item:0:1} if [[
    "$key" = "$startChar" ]]; then
    # Jumping possibly more than 1 (next/prev) item
    menu_ClearItem $choice return $index fi done fi

    if [[ "$key" = "" ]]; then
    # Notify that Enter key was pressed
    return 255 fi

    return $choice
    }


    ################################
    # Main Menu Loop
    ################################
    menuLoop() { local choice=0 local running=1

    menu_Display

    while [[ $running -eq 1 ]]; do
    # Enable case insensitive matching
    local caseMatch=`shopt -p nocasematch` shopt -s nocasematch

    menu_HandleInput $choice local newChoice=$?

    # Revert to previous case matching
    $caseMatch

    if [[ $newChoice -eq 255 ]]; then
    # Enter pressed - run menu action
    drawClear action=${menuActions[$choice]} $action running=$?

    # Back from action If we are still running, redraw menu
    [[ $running -eq 1 ]] && menu_Display

    elif [[ $newChoice -lt $menuItemCount ]]; then
    # Update selected menu item
    choice=$newChoice fi done

    # Cleanup screen
    drawClear
    }
    ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- bash-draw.sh file below between horizontal rule ----------------------------------------------------------------------------- #!/bin/bash

    #
    # Public Functions:
    #
    # drawClear() drawColour(colour = DRAW_COL_DEF, bgColour =
    # DRAW_COL_DEF)
    #
    # drawPlain(text, newLine = 0) drawSpecial(text, newLine = 0)
    # drawHighlight(text, newLine = 0) drawPlainAt(left, top, text,
    # newLine = 0) drawHighlightAt(left, top, text, newLine = 0)
    #
    #
    # Colours
    #
    # DRAW_COL_DEF # Default colour DRAW_COL_BLACK DRAW_COL_WHITE
    # DRAW_COL_RED DRAW_COL_GREEN DRAW_COL_YELLOW DRAW_COL_BLUE
    # DRAW_COL_GRAY # Light gray (grey?)
    #


    # Ensure we are running under bash (will not work under sh or dash etc)
    if [ "$BASH_SOURCE" = "" ]; then echo "ERROR: bash-draw requires to be
    running under bash" exit 1
    fi


    DRAW_COL_DEF=39 DRAW_COL_BLACK=30 DRAW_COL_WHITE=97 DRAW_COL_RED=31 DRAW_COL_GREEN=32 DRAW_COL_YELLOW=33 DRAW_COL_BLUE=34 DRAW_COL_GRAY=37


    # drawClear()
    drawClear() { $ESC_WRITE "\033c"
    }

    # drawColour(colour = DRAW_COL_DEF, bgColour = DRAW_COL_DEF)
    drawColour() { local colour=$DRAW_COL_DEF local
    bgColour=$((DRAW_COL_DEF+10))

    if [[ ! -z "$1" && "$1" != "" ]]; then colour="$1" fi

    if [[ ! -z "$2" && "$2" != "" ]]; then bgColour="$2" fi

    $ESC_ECHO "\033c\033[H\033[J\033[${colour};${bgColour}m\033[J"
    }

    # drawPlain(text, newLine = 0)
    drawPlain() { if [[ -z "$2" || "$2" -eq 0 ]]; then $ESC_WRITE "$1" else
    $ESC_ECHO "$1"
    fi
    }

    # drawSpecial(text, newLine = 0)
    drawSpecial() { [[ -z "$2" ]] && newLine=0 || newLine="$2"

    draw_SetDrawMode drawPlain "$1" "$newLine" draw_SetWriteMode
    }

    # drawHighlight(text, newLine = 0)
    drawHighlight() { [[ -z "$2" ]] && newLine=0 || newLine="$2"

    draw_StartHighlight drawPlain "$1" "$newLine" draw_EndHighlight
    }

    # drawPlainAt(left, top, text, newLine = 0)
    drawPlainAt() { [[ -z "$4" ]] && newLine=0 || newLine="$4"

    draw_MoveTo $1 $2 drawPlain "$3" "$newLine"
    }

    # drawHighlightAt(left, top, text, newLine = 0)
    drawHighlightAt() { [[ -z "$4" ]] && newLine=0 || newLine="$4"

    draw_StartHighlight drawPlainAt "$1" "$2" "$3" "$newLine"
    draw_EndHighlight
    }


    # Write escape sequence with no newline
    ESC_WRITE='echo -en'

    # Write escape sequence adding newline
    ESC_ECHO='echo -e'


    # Move cursor to specified location
    draw_MoveTo() { $ESC_WRITE "\033[${1};${2}H"
    }

    draw_StartHighlight() { $ESC_WRITE "\033[7m"
    }

    draw_EndHighlight() { $ESC_WRITE "\033[27m"
    }

    draw_SetDrawMode() { $ESC_WRITE "\033%@\033(0"
    }

    draw_SetWriteMode() { $ESC_WRITE "\033(B"
    }
    ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- CompuBBS - ECN code ----------------------------------------------------------------------------- Please find below the CompuBBS ECN code originally developed by Josh
    Greene. It is something a former friend of mine once told me about as
    he worked at Daytek during the dawn of the internet. At the time I was
    to oblivous to the fact that money is the very means by which our lives
    revolve around. As they say, "when men and women get together [money]
    gets in the way". The Josh Greene's ECN day trading code is intended as
    a game for now until it becomes more viable for the purposes of the Cybermatrix.

    The below ECN day trading code is in Python. So check it out. Try to
    make it into a game at first so that you and your network can learn how
    to play it before proceeding. I heard when it comes to the stock market
    one can literally loose their shirt on this. So beware. Ignorance is
    not bliss.

    The intention for this code is toward the establishment of the
    cybermatrix or to say the opern source fiat like monies initiative for
    the sake of synergy or mutual success. The meaning of cybermartix is
    virtual as in cyber and a database of the nth dimension as in matrix.
    So the cybermatrix is a network of databases of a given
    dimension(matricees) with a larger databases of the nth
    dimension(matrix). So, let's do this.

    God bless and God speed for Jesus Christ is God. Always a pleasure.
    Good luck to you all. I want you to win. Allahu Akhbar! ----------------------------------------------------------------------------- Josh Greene's Island ECN day trading code in Python between horizontal
    rule ----------------------------------------------------------------------------- SET TALK OFF SET CURSOR OFF SET SAFETY OFF SET MEMOWIDTH TO 80 CLEAR ALL
    CLOSE ALL CLEAR CLEAR MACRO && Get rid of F keys typing commands SET
    HELP OFF && Needed to clear out F1 key too

    =rand(-1)

    #define COREDEST "FFFFFFFF0673"

    gstoredflag = .F. && Are there any messages buffered that could be
    flushed?

    #define VERSION "2.40"

    malertfile = "M:\logs\island2.err" mholdofffile =
    "M:\island2\holdoff.txt"

    blanknbuffer="R"+replicate( " " , 200 ) && get BRIGADEN message here

    #define CORELINELEN 124 define COREMESSAGELEN 122

    #define READPORT "067F"

    load int99

    define window title from 0,0 to 0,scols()-1 COLOR "W/B" NONE define
    window output from 1,0 to 10,scols()-1 NONE COLOR "W+/N" define window
    ticker from 12,0 to srows()-1,scols()-1 NONE define window status from
    11,0 to 11,scols()-1 COLOR "W+/R" NONE

    do title do initstatus

    activate window title activate window status

    activate window output activate window ticker


    s = fopen( "ISLAND2.TXT" )

    if s <= 0 wait window "COULD NOT FIND ISLAND2.TXT IN CURRENT DIR. RUN
    RESET." quit
    endif

    x = fgets( s )

    if "ISLAND2" # x wait window "ACCOUNT IN ISLAND2.TXT DOES NOT MATCH
    ACCOUNT ENV VAR. RUN RESET." =fclose( s ) quit
    endif

    tcount = 0 && For counting random stuff

    tseq = val( fgets( s ) ) && Next order number tmatch = val( fgets( s ) )
    && Next match number tnextdead = val( fgets( s ) ) && Next dead order (zero=none) =fclose( s )

    select select(1) use events set order to WHEN

    tnow = 0

    ttoolate = 0 && Count the too late to cancel events

    gaccept = .F. && Let any orders in? Set by SOD, cleared by EOD
    gactaccept = .F. && Let ACT orders in? Set by SOD, cleared by EOA

    geom = .F. && Have we gotten EOM yet?

    gprinting = .F. && Print incoming messages?

    go top

    if eof("EVENTS")

    tnext = 99999.999

    else

    tnext = WHEN && Time of next event

    endif

    select 0 use sources set order to SOURCE

    select select(1) use island

    gsx = alltrim( str( date() - {2/6/1996} ) )

    gsession = left( "0000000000" , 9-len( gsx ) ) + gsx + "F"

    s="N"+gsession+"5050" && Open the islandfile for writing Mold on port
    5050 call int99 with s

    if s # "n" && Valid open file?

    do alert with "InitMold filed with reason >"+s

    do case

    case s = "i"

    sm ="Error opening files in deney-write mode"

    case s = "j"

    sm = "a file had a partial line fragment"

    case s = "k"

    sm = "not all trailing files are empty"

    case s = "l"

    sm = "all files full"

    otherwise

    sm = "Unknown error"

    endcase

    do alert with sm

    wait window "Error on ISLAND.OUT or ISLAND2.OUT OPEN:"+s

    quit

    endif

    select island

    tecount = 0 && Assume worst case, just to make sure ecount is high
    enough txcount = 0 && Cancels

    x = "L"+READPORT+" " && Read Island2 requests call int99 with x if x #
    "l"
    do alert with "Could not open Command listen!" endif


    gstatdelay = 0.25 do showstatus gnextstats = seconds() + gstatdelay

    gmolddelay = 1 && Time between mold heartbeats gmoldheart = seconds() + gmolddelay && Time to send a MOLD heartbeat by doing a FLUSH

    gmessages = 0 && Number of messages written to the stream gpackets = 0
    && Number of packets writtento the stream

    mdone = .F.

    do while !mdone

    tnow = seconds()

    do while tnow >= tnext

    if !EVENTS.PROCESSED

    do swrite with "G" , EVENTS.CODE

    select EVENTS replace PROCESSED with .T. select
    ISLAND

    else

    ? time()+" Event bypassed:"+ EVENTS.CODE

    endif

    do seteventflags with EVENTS.CODE

    skip 1 in EVENTS

    if eof("EVENTS")

    tnext = 99999.999

    else

    tnext = EVENTS.WHEN

    endif

    enddo

    nbuffer = blanknbuffer

    call int99 with nbuffer

    if nbuffer = "r"

    tlenstr = substr( nbuffer , 2 , 5 )

    tlen = val( tlenstr )

    tmessage = substr( nbuffer , 43 , tlen )

    if gprinting ? time()+" >"+tmessage+"<" endif

    if tmessage = "P" && PING REQUEST

    tsource = substr( nbuffer ,11 , 8)

    do pingreply with tsource , tmessage

    else

    do processtcpip with tmessage

    endif

    else && No pending commands...

    if gstoredflag


    [continued in next message]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Aryavarta@21:1/5 to All on Thu Sep 24 20:27:25 2020
    The CompuBBS code; please use it to communicate :-) ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- readme.txt file below between horizontal rule ----------------------------------------------------------------------------- The CompuBBS code; please use it to communicate :-)
    Satya Prasad Popuri
    Bachelors in Computer Science

    Silence is death. The need for an open source bulletin board system is
    vital for communication to prosper across this earth planet. In my
    travels I have discovered certain tools that help many to research and
    develop with ease while maintaining a sound and cogent system toward
    such an end. This CompuBBS is an open source version of the NYUNET
    bulletin board system I discovered while mistakenly studying and working
    there in my quest for enligtenment. As fate would have it, I chanced
    upon certain tools that I now present with an assortment of other tools
    I have discovered in my triste with death while working in the I.T.
    industry.

    Indeed, such tools have helped me here and there to maintain a
    consistent understanding of not only Unix fundamentals but also a feel
    good experience that is second to none. These tools represent the love
    affair that never quit. Not only has it valorized and inundated across
    this earth planet but has been the aims and means of my reason for
    living.

    Man needs a proper meditation of the heart and this tool list is one of
    the things I have used to be able to better understand myself and
    others. It was during the college years that I was exposed to such
    tools in over 3 universities and 11 years of employment here and there.
    They just work. Given the level of complexity the graphical user
    interface engenders it is refreshing to fall back on a tool base that is
    time immemorial. So please feel free to use them and contribute toward
    the open source endeavor to foster freedom of speech.

    For me prayer works but without a means of communication that is
    uninhibited and unmoderated we are at a loss for words. That is the
    shear beauty of the traditional tools as tin of the USENET NEWS servers;
    as well as the irssi of the IRC servers. It goes on. The list of tools
    I mention are as follows based on over 20 years of experience with the
    UNIX pragma.

    0. Alpine - a nice email client
    1. Tin - a nice newsreader
    2. Irssi - a nice internet relay chat client
    3. Lynx - a nice web browser
    4. Gopher - a nice ftp client
    5. Nano - a nice text editor
    6. Bash - a nice command prompt
    7. T.I.A. - a nice programming editor [This is known as Tiny IDE
    Ada/Anything editor. I am trying to encourage the Ada programming
    language over C++ and Java.]
    8. Nslookup - a nice directory service
    9. Telnet - a nice remote login tool
    A. Tailer - a nice monitoring tool [This I discovered at a .com I worked
    for. It simply goes to an i.p. address and searches for a string. If
    the string is not there an alert is genertated. Maybe it is out there
    in the wild blue yonder of the internet.]
    B. Calc - a nice calculator tool
    C. ECN - a nice day trading game [This is Josh Green's day trading
    algorithym in Python when he worked at Daytek. I posted it somewhere on
    USENET but I am unable to find it.... If you are able to find it please
    let me know. I encourage learning how to deal with money because "when
    men and women get together [money] gets in the way".] That too, they
    say, education is about learning how to communicate and learn how to
    deal with money.
    D. Tutor - a nice Unix tutorial [This tutorial I discovered at New York University. I wonder if there is an open source version of it.] It is
    a great way to learn the Unix operating system.
    E. Bible - a nice text based bible program [Does anyone know of an old
    school Bible program that is text based and worthy of praise? Prayer to
    Jesus Christ works!]
    F. Sendpage - this is a nice beeper software that helps to keep in touch
    with loved ones and others through the beeper or pager tool.
    $. Exit - a simple exit to the whole compubbs tools for research and development.

    I have foregoed useing the queue tool as it may cause some problems as
    far as managing and maintaining. The queue tool is always an issue for
    any I.T. computer lab as it is often the target of attacks by
    miscreants. There are other tools, such as 'talk', that are also good
    if you know how to use them in the code I mentioned. I refrained from mentioning talk because it requires input about the user and terminal to literally talk to using a text based interface. Maybe someone can
    design a text based form to fill out that will allow for one to use talk
    and then go back to the main menu. The file list for this compubbs
    endeavor is as follows:

    compubbs.sh
    bash-menu.sh
    bash-draw.sh
    readme.txt

    Please find the code in the following USENET newsgroups:

    soc.culture.indian
    soc.culture.asian.american
    soc.culture.usa
    soc.cutlure.spain
    soc.culture.bangladesh
    soc.culture.puerto.rico
    alt.computer.consultants
    alt.sex.stories.hetero

    Let's setup servers of this type of an unmoderated bulletin board
    system. While the internet has encouraged reciprocity or mutual
    respect, the BBS has encouraged comaraderie or mutual trust. This
    cybermatrix endeavor which I am trying to contravecy is an attempt
    toward synergy or mutual success. As well, there is a need for unity or
    mutual purpose. The T.E.A.M. acronymn for "together everyone
    accomplishes more" is worth encouraging.

    The following are some nice networks I am encouraging toward some level
    of mutuality:

    # - network - tool - idnustry - smurf - mutuality - signal ----------------------------------------------------------
    1 - Simulcast - radio - spiritual - arabian - comaradery - analog
    2 - Internet - computer - technological - indian - reciprocity - digital
    3 - Cybermatrix - television - financial - hispanic - synergy - ?
    4 - Tektocracy - beeper - political - russian - unity - ?
    5 - Sneakerweb - tablet - educational - gypsy - infidelity - ?
    6 - Darkring - console - architectural - african - ? - ?
    7 - Datatron - tracker(i.e. fitbit) - medical - european - ? - ?
    8 - Heliopex - watch - recreational - artican - ? - ?
    9 - Transpace - PDA(a.k.a smartphone) - sexual - oriental - ? -
    ? 10 - Stargate - controller - audiovisual - australian - ? - ?

    As well I have noticed the following dutys that seem to withstand the
    test of time and surpass all understanding with my I.T. industry. They
    are as follows:

    CIS Sysadmins:
    (Computer Information Specialties)
    ----------------------------------
    1. networking - solaris : british/grocer
    2. databasing - linux : oriental/escort
    3. multimedia - macintosh osx(bsd) : european/physcian
    4. programming - minix/x11/react os : indian/consultant
    5. productivity - haiku? : (Terron,Tamil,Taino,Tiwi)lawyer?
    6. security – sgi? : australian/designer
    7. management - sap/vax? : african/landlord
    8. troubleshooting - cytrix? : hispanic/accountant
    9. testing - sco/sylk? : arabian/scholar
    10.gaming - irix : russian//bouncer?
    ----------
    Outside contractors:
    11.tutoring - amix : jewish/teacher (outside contractor)

    With respect to the involvement of the Jewish blight upon humanity
    within the I.T. industry I find they are a curse more than anything.
    All they do is sabotage whichever system to justify yet another failed investment into thier diaspora. It is like that among them as their
    history of failure is not only evidenced in the Holy Bible as in the
    kingdom of Egypt but also in whichever other civilization to have graced
    this earth. That is why the Jews of the Yiddish, Zen, Vudu, Hindu,
    LGBTQ, NGR, Creole, Hapa, Hoon, and Roma ancestorys are known as the
    Negroid race, the niggers of the world.

    Anyway, join us in this endeavor to liberate humanity from the vice grip
    of the jew baiting culture of the idiot and wrong. I pray to Jesus
    Christ that you find them useful and worthy of praise as I have. This
    compubbs is a brief history of time and space of a world so good. In a
    way, the nature of the good is to overcome and defeat the bad. So, God
    bless and God speed for Jesus Christ is God. Always a pleasure. May
    you and your loved one's in the name of Jesus Christ be well, happy, prosperous, peacefull, healthy, and safe.

    P.S.
    Let it be said, "[financial] frustration creates a great imbalance
    in mind and body." We need to allay our antogonizing forces so that
    open source fiat like monies are provided for all concerned. The UNIX
    may help with learning how to communicate but the FIAT may help with
    learning how to deal with monies.

    The only issues I have are the evil empire of the JUBU and their
    branches of the Transcedentalism, Allopathy, Microsoft, Niggervision, Palmistry, and Insurance corporations of whichever bilk and swindel.
    There is that of a thing as evil and it is their incessant anti-Christ
    ways which ruin the whole thing. That is the issue. The dangers of the Jewish, Zen, Vudu, Hindu, LGBTQ, NGR, Creole, Hapa, Hoon, Roma masters
    of the nothing or meaningless things as in zazen(breathing excercises),
    mantra recitation, and koan visualization of the Satanic Dharma is more
    than anything. They are more of an evil and a bad influence than one can possibly dream. Quite a number bank on those people in order to
    eliminate innocent and good people to further their zero sum end game.
    Simply say the words Jesus Christ in your prayers to escape from such
    negative influences.

    The following republics are the bases of the evil empire of the JUBU:

    Taiwan - empire of Zen
    Israel - empire of Jews
    Sicily - empire of LGBTQ
    Haiti - empire of Vudu
    Hawaii - empire of Hindus
    Trinidad - empire of Creole?
    Indonesia - empire of Hapa?
    Phillipines - empire of Ngrs?
    Tibet - empire of Hoon?
    Brooklyn - empire of the Roma?

    Transcendentalist mafia are from such areas acenstorally and are
    harbingers of the worst known massacre known to man, called the
    religious war. This ComuBBS tool is to help people communicate for the
    sake of not only the ontology of Jesus Christ but also to better get
    clues on how to deal with those people of the Dying Arts. I really want
    to setup this system so that those stinken Jews are not a part of it.
    Their trespass into literally every industry to do stupid and useless
    things is a real danger for all concerned. Those people of the Dying
    Arts and the Jewish diaspora are like monkeys hell bent on suicide and sacrifice, to name a few. With their penchant toward brain degenerating
    ways, we are headed toward a nuclear war and economic collapse the world
    over unlike anything before. What is the use?

    Already the evil empire of the JUBU has perpetuated the destruction of
    the World Trade Center through thier Y2K bug fix pretention. Already
    the state of Louisiana has been horribly flooded because of yet another
    Jew baiting fetish gone wrong. Already the coronavirus has been
    unleashed to kill off more people.

    I see a trend and history by the Jewish diaspora to literally war with
    anyone for the sake of thier religious war. A religious war documented
    in religious books, life experiences, and television programming. It is
    like all over the place. Open and unmoderated communication for our
    people of Abraham hostaged by those of the evil empire of the JUBU is a
    good means toward liberating us from the ignorance which is not bliss.
    More will arrive to the body of Christ. Believe you me, those stinken
    Jews have to be defeated.

    Already, the Europeans, Russians, Chinese, and now the Arabians have politically made it known that Jews are unwanted in their realm. I as a
    Desi or native of the Indian subcontinent do the same. I tell ya,
    travelling to my homeland of the Indian subcontinent or Aryavarta was a
    real shocking reality to see so many of my people in abject life
    conditions due to the Hindu pride and prejudice maintained for over
    5,000 years and then some. Those gypsy niggers or even to say the
    negroid race are the very reason why Desi civilization could never come
    up and was the riddicule of the masses.

    Now with this wonderful capitalism, we can see a world where anyone and everyone is able to use such weapons to ward off the evil ones. Nothing
    worse than trying to find enlightenment in the wrong way through a one
    way ticket to the foothills of the Himalayas after following some
    Satanic master of the Zen empire of Taiwan. Ignorance is not bliss and ignorance of Jesus Christ is like the worst. God bless and God speed
    for Jesus Christ is God. Always a pleasure. Nothing worse than being
    on a park bench drinking liquor going through an existential doubt.
    Believe it.

    Sincerely,

    Satya Prasad Popuri (Satyababu)

    Signature: "The nature of the good is to overcome and defeat the bad." ----------------------------------------------------------------------------- compubbs.sh file below between horizontal rule ----------------------------------------------------------------------------- #!/bin/bash

    # Ensure we are running under bash
    if [ "$BASH_SOURCE" = "" ]; then /bin/bash "$0" exit 0 fi

    #
    # Load bash-menu script
    #
    # NOTE: Ensure this is done before using or overriding menu
    # functions/variables.
    #
    . "bash-menu.sh"


    ################################
    ## Example Menu Actions
    ##
    ## They should return 1 to indicate that the menu should continue, or
    ## return 0 to signify the menu should exit.
    ################################
    actionA() { alpine return 1
    }

    actionB() { tin -r -g freenews.netfront.net return 1
    }

    actionC() { irssi return 1
    }

    actionD() { lynx return 1
    }

    actionE() { gopher return 1
    }

    actionF() { nano return 1
    }

    actionG() { bash return 1
    }

    actionH() { tia return 1
    }

    actionI() { nslookup return 1
    }

    actionJ() { telnet return 1
    }

    actionK() { tailer return 1
    }

    actionL() { calc return 1
    }

    actionM() { ecn return 1
    }

    actionN() { bible return 1
    }

    actionO() { tutor return 1
    }

    actionP() { sendpage return 1
    }

    actionX() { return 0
    }


    ################################
    ## Setup Example Menu
    ################################

    ## Menu Item Text
    ##
    ## It makes sense to have "Exit" as the last item, as pressing Esc will
    ## jump to last item (and pressing Esc while on last item will perform
    ## the associated action).
    ##
    ## NOTE: If these are not all the same width the menu highlight will
    ## look wonky
    menuItems=( "0. Alpine ----------------------- email client" "1. Tin
    -------------------------- usenet news reader" "2. Irssi
    ------------------------ irc network" "3. Lynx
    ------------------------- web browser" "4. Gopher
    ----------------------- ftp protocol" "5. Nano
    ------------------------- text editor" "6. Bash
    ------------------------- command prompt" "7. T.I.A.
    ----------------------- programming IDE" "8. Nslookup
    --------------------- directory service" "9. Telnet
    ----------------------- remote login" "A. Tailer
    ----------------------- monitoring tool" "B. Calc
    ------------------------- calculator" "C. ECN
    -------------------------- daytrading game" "D. Tutor
    ------------------------ unix tutorial" "E. Bible
    ------------------------ way of enlightenment" "F. Sendpage
    --------------------- beeper server" "$. Exit
    ------------------------- God speed :-)"
    )

    ## Menu Item Actions
    menuActions=( actionA actionB actionC actionD actionE actionF actionG
    actionH actionI actionJ actionK actionL actionM actionN actionO
    actionP actionX
    )

    ## Override some menu defaults
    menuTitle=" CompuBBS - The nature of the good is to overcome and defeat
    the bad..." menuFooter=" Enter=Select, Navigate via Up/Down/First
    number/letter - [Prayer works!]" menuWidth=74 menuLeft=13 menuHighlight=$DRAW_COL_WHITE


    ################################
    ## Run Menu
    ################################
    menuInit menuLoop


    exit 0 ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- bash-menu.sh file below between horizontal rule ----------------------------------------------------------------------------- #!/bin/bash

    #
    # Public Functions
    #
    # menuInit() menuLoop()
    #
    #
    # Public Variables to Override
    #
    # Should these get passed into menuInit() rather than be set as global
    # script variables?
    #
    # menuTop # Top row of menu (defaults to row 2) menuLeft # Left offset
    # for menu item text (defaults to column 15) menuWidth # Width of menu
    # (defaults to 42 columns) menuMargin # Left offset for menu border
    # (defaults to column 4)
    #
    # menuColour # Colour of menu text (defaults to DRAW_COL_WHITE)
    # menuHighlight # Highlight colour for menu (defaults to
    # DRAW_COL_GREEN)
    #
    # menuTitle # Title of menu menuFooter # Footer text of menu
    #
    # menuItems # Array containing menu item text menuActions # Array
    # containing functions to call upon menu item selection
    #


    # Ensure we are running under bash (will not work under sh or dash etc)
    if [ "$BASH_SOURCE" = "" ]; then echo "ERROR: bash-menu requires to be
    running under bash" exit 1
    fi

    # Get script root (as we are sourced from another script, $0 will not be
    # us)
    declare -r menuScript=$(readlink -f ${BASH_SOURCE[0]})
    menuRoot=$(dirname "$menuScript")

    # Ensure we can access our dependencies
    if [ ! -s "$menuRoot/bash-draw.sh" ]; then echo "ERROR: Missing required
    draw.sh script" exit 1
    fi

    # Load terminal drawing functions
    . "$menuRoot/bash-draw.sh"


    ################################
    # Private Variables
    #
    # These should not be overridden
    ################################
    declare -a menuItems declare -a menuActions

    menuHeaderText="" menuFooterText="" menuBorderText=""


    ################################
    # Setup Menu
    #
    # These are defaults which should be overridden as required. ################################

    # Top of menu (row 2)
    menuTop=2

    # Left offset for menu items (not border)
    menuLeft=15

    # Width of menu
    menuWidth=42

    # Left offset for menu border (not menu items)
    menuMargin=4

    menuItems[0]="Exit" menuActions[0]="return 0"

    menuItemCount=1 menuLastItem=0

    menuColour=$DRAW_COL_WHITE menuHighlight=$DRAW_COL_GREEN

    menuTitle=" Super Bash Menu System" menuFooter=" Enter=Select, Up/Down=Prev/Next Option"


    ################################
    # Initialise Menu
    ################################
    menuInit() { menuItemCount=${#menuItems[@]}
    menuLastItem=$((menuItemCount-1))

    # Ensure header and footer are padded appropriately
    menuHeaderText=`printf "%-${menuWidth}s" "$menuTitle"`
    menuFooterText=`printf "%-${menuWidth}s" "$menuFooter"`

    # Menu (side) borders
    local marginSpaces=$((menuMargin-1)) local
    menuSpaces=$((menuWidth-2)) local leftGap=`printf
    "%${marginSpaces}s" ""` local midGap=`printf "%${menuSpaces}s" ""`
    menuBorderText="${leftGap}x${midGap}x"
    }


    ################################
    # Show Menu
    ################################
    menu_Display() { local menuSize=$((menuItemCount+2)) local
    menuEnd=$((menuSize+menuTop+1))

    drawClear drawColour $menuColour $menuHighlight

    # Menu header
    drawHighlightAt $menuTop $menuMargin "$menuHeaderText" 1

    # Menu (side) borders
    for row in $(seq 1 $menuSize); do drawSpecial "$menuBorderText" 1
    done

    # Menu footer
    drawHighlightAt $menuEnd $menuMargin "$menuFooterText" 1

    # Menu items
    for item in $(seq 0 $menuLastItem); do menu_ClearItem $item done
    }


    ################################
    # Mark Menu Items
    ################################

    # Ensure menu item is not highlighted
    menu_ClearItem() { local item=$1 local top=$((menuTop+item+2)) local
    menuText=${menuItems[$item]}

    drawPlainAt $top $menuLeft "$menuText"
    }

    # Highlight menu item
    menu_HighlightItem() { local item=$1 local top=$((menuTop+item+2)) local
    menuText=${menuItems[$item]}

    drawHighlightAt $top $menuLeft "$menuText"
    }


    ################################
    # Wait for and process user input
    ################################
    menu_HandleInput() { local choice=$1

    local after=$((choice+1)) [[ $after -gt $menuLastItem ]] && after=0

    local before=$((choice-1)) [[ $before -lt 0 ]] &&
    before=$menuLastItem

    # Clear highlight from prev/next menu items
    menu_ClearItem $before menu_ClearItem $after

    # Highlight current menu item
    menu_HighlightItem $choice

    # Get keyboard input
    local key="" local extra=""

    read -s -n1 key 2> /dev/null >&2 while read -s -n1 -t .05 extra 2>
    /dev/null >&2 ; do
    key="$key$extra" done

    # Handle known keys
    local escKey=`echo -en "\033"` local upKey=`echo -en "\033[A"` local
    downKey=`echo -en "\033[B"`

    if [[ $key = $upKey ]]; then return $before elif [[ $key = $downKey
    ]]; then
    return $after elif [[ $key = $escKey ]]; then if [[ $choice -eq
    $menuLastItem ]]; then
    # Pressing Esc while on last menu item will trigger action
    # This is a helper as we assume the last menu option is exit
    key="" else
    # Jumping possibly more than 1 (next/prev) item
    menu_ClearItem $choice return $menuLastItem fi elif [[
    ${#key} -eq 1 ]]; then
    # See if we wanrt to jump to a menu item by entering the first
    # character
    for index in $(seq 0 $menuLastItem) ; do local
    item=${menuItems[$index]} local startChar=${item:0:1} if [[
    "$key" = "$startChar" ]]; then
    # Jumping possibly more than 1 (next/prev) item
    menu_ClearItem $choice return $index fi done fi

    if [[ "$key" = "" ]]; then
    # Notify that Enter key was pressed
    return 255 fi

    return $choice
    }


    ################################
    # Main Menu Loop
    ################################
    menuLoop() { local choice=0 local running=1

    menu_Display

    while [[ $running -eq 1 ]]; do
    # Enable case insensitive matching
    local caseMatch=`shopt -p nocasematch` shopt -s nocasematch

    menu_HandleInput $choice local newChoice=$?

    # Revert to previous case matching
    $caseMatch

    if [[ $newChoice -eq 255 ]]; then
    # Enter pressed - run menu action
    drawClear action=${menuActions[$choice]} $action running=$?

    # Back from action If we are still running, redraw menu
    [[ $running -eq 1 ]] && menu_Display

    elif [[ $newChoice -lt $menuItemCount ]]; then
    # Update selected menu item
    choice=$newChoice fi done

    # Cleanup screen
    drawClear
    }
    ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- bash-draw.sh file below between horizontal rule ----------------------------------------------------------------------------- #!/bin/bash

    #
    # Public Functions:
    #
    # drawClear() drawColour(colour = DRAW_COL_DEF, bgColour =
    # DRAW_COL_DEF)
    #
    # drawPlain(text, newLine = 0) drawSpecial(text, newLine = 0)
    # drawHighlight(text, newLine = 0) drawPlainAt(left, top, text,
    # newLine = 0) drawHighlightAt(left, top, text, newLine = 0)
    #
    #
    # Colours
    #
    # DRAW_COL_DEF # Default colour DRAW_COL_BLACK DRAW_COL_WHITE
    # DRAW_COL_RED DRAW_COL_GREEN DRAW_COL_YELLOW DRAW_COL_BLUE
    # DRAW_COL_GRAY # Light gray (grey?)
    #


    # Ensure we are running under bash (will not work under sh or dash etc)
    if [ "$BASH_SOURCE" = "" ]; then echo "ERROR: bash-draw requires to be
    running under bash" exit 1
    fi


    DRAW_COL_DEF=39 DRAW_COL_BLACK=30 DRAW_COL_WHITE=97 DRAW_COL_RED=31 DRAW_COL_GREEN=32 DRAW_COL_YELLOW=33 DRAW_COL_BLUE=34 DRAW_COL_GRAY=37


    # drawClear()
    drawClear() { $ESC_WRITE "\033c"
    }

    # drawColour(colour = DRAW_COL_DEF, bgColour = DRAW_COL_DEF)
    drawColour() { local colour=$DRAW_COL_DEF local
    bgColour=$((DRAW_COL_DEF+10))

    if [[ ! -z "$1" && "$1" != "" ]]; then colour="$1" fi

    if [[ ! -z "$2" && "$2" != "" ]]; then bgColour="$2" fi

    $ESC_ECHO "\033c\033[H\033[J\033[${colour};${bgColour}m\033[J"
    }

    # drawPlain(text, newLine = 0)
    drawPlain() { if [[ -z "$2" || "$2" -eq 0 ]]; then $ESC_WRITE "$1" else
    $ESC_ECHO "$1"
    fi
    }

    # drawSpecial(text, newLine = 0)
    drawSpecial() { [[ -z "$2" ]] && newLine=0 || newLine="$2"

    draw_SetDrawMode drawPlain "$1" "$newLine" draw_SetWriteMode
    }

    # drawHighlight(text, newLine = 0)
    drawHighlight() { [[ -z "$2" ]] && newLine=0 || newLine="$2"

    draw_StartHighlight drawPlain "$1" "$newLine" draw_EndHighlight
    }

    # drawPlainAt(left, top, text, newLine = 0)
    drawPlainAt() { [[ -z "$4" ]] && newLine=0 || newLine="$4"

    draw_MoveTo $1 $2 drawPlain "$3" "$newLine"
    }

    # drawHighlightAt(left, top, text, newLine = 0)
    drawHighlightAt() { [[ -z "$4" ]] && newLine=0 || newLine="$4"

    draw_StartHighlight drawPlainAt "$1" "$2" "$3" "$newLine"
    draw_EndHighlight
    }


    # Write escape sequence with no newline
    ESC_WRITE='echo -en'

    # Write escape sequence adding newline
    ESC_ECHO='echo -e'


    # Move cursor to specified location
    draw_MoveTo() { $ESC_WRITE "\033[${1};${2}H"
    }

    draw_StartHighlight() { $ESC_WRITE "\033[7m"
    }

    draw_EndHighlight() { $ESC_WRITE "\033[27m"
    }

    draw_SetDrawMode() { $ESC_WRITE "\033%@\033(0"
    }

    draw_SetWriteMode() { $ESC_WRITE "\033(B"
    }
    ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- CompuBBS - ECN code ----------------------------------------------------------------------------- Please find below the CompuBBS ECN code originally developed by Josh
    Greene. It is something a former friend of mine once told me about as
    he worked at Daytek during the dawn of the internet. At the time I was
    to oblivous to the fact that money is the very means by which our lives
    revolve around. As they say, "when men and women get together [money]
    gets in the way". The Josh Greene's ECN day trading code is intended as
    a game for now until it becomes more viable for the purposes of the Cybermatrix.

    The below ECN day trading code is in Python. So check it out. Try to
    make it into a game at first so that you and your network can learn how
    to play it before proceeding. I heard when it comes to the stock market
    one can literally loose their shirt on this. So beware. Ignorance is
    not bliss.

    The intention for this code is toward the establishment of the
    cybermatrix or to say the opern source fiat like monies initiative for
    the sake of synergy or mutual success. The meaning of cybermartix is
    virtual as in cyber and a database of the nth dimension as in matrix.
    So the cybermatrix is a network of databases of a given
    dimension(matricees) with a larger databases of the nth
    dimension(matrix). So, let's do this.

    God bless and God speed for Jesus Christ is God. Always a pleasure.
    Good luck to you all. I want you to win. Allahu Akhbar! ----------------------------------------------------------------------------- Josh Greene's Island ECN day trading code in Python between horizontal
    rule ----------------------------------------------------------------------------- SET TALK OFF SET CURSOR OFF SET SAFETY OFF SET MEMOWIDTH TO 80 CLEAR ALL
    CLOSE ALL CLEAR CLEAR MACRO && Get rid of F keys typing commands SET
    HELP OFF && Needed to clear out F1 key too

    =rand(-1)

    #define COREDEST "FFFFFFFF0673"

    gstoredflag = .F. && Are there any messages buffered that could be
    flushed?

    #define VERSION "2.40"

    malertfile = "M:\logs\island2.err" mholdofffile =
    "M:\island2\holdoff.txt"

    blanknbuffer="R"+replicate( " " , 200 ) && get BRIGADEN message here

    #define CORELINELEN 124 define COREMESSAGELEN 122

    #define READPORT "067F"

    load int99

    define window title from 0,0 to 0,scols()-1 COLOR "W/B" NONE define
    window output from 1,0 to 10,scols()-1 NONE COLOR "W+/N" define window
    ticker from 12,0 to srows()-1,scols()-1 NONE define window status from
    11,0 to 11,scols()-1 COLOR "W+/R" NONE

    do title do initstatus

    activate window title activate window status

    activate window output activate window ticker


    s = fopen( "ISLAND2.TXT" )

    if s <= 0 wait window "COULD NOT FIND ISLAND2.TXT IN CURRENT DIR. RUN
    RESET." quit
    endif

    x = fgets( s )

    if "ISLAND2" # x wait window "ACCOUNT IN ISLAND2.TXT DOES NOT MATCH
    ACCOUNT ENV VAR. RUN RESET." =fclose( s ) quit
    endif

    tcount = 0 && For counting random stuff

    tseq = val( fgets( s ) ) && Next order number tmatch = val( fgets( s ) )
    && Next match number tnextdead = val( fgets( s ) ) && Next dead order (zero=none) =fclose( s )

    select select(1) use events set order to WHEN

    tnow = 0

    ttoolate = 0 && Count the too late to cancel events

    gaccept = .F. && Let any orders in? Set by SOD, cleared by EOD
    gactaccept = .F. && Let ACT orders in? Set by SOD, cleared by EOA

    geom = .F. && Have we gotten EOM yet?

    gprinting = .F. && Print incoming messages?

    go top

    if eof("EVENTS")

    tnext = 99999.999

    else

    tnext = WHEN && Time of next event

    endif

    select 0 use sources set order to SOURCE

    select select(1) use island

    gsx = alltrim( str( date() - {2/6/1996} ) )

    gsession = left( "0000000000" , 9-len( gsx ) ) + gsx + "F"

    s="N"+gsession+"5050" && Open the islandfile for writing Mold on port
    5050 call int99 with s

    if s # "n" && Valid open file?

    do alert with "InitMold filed with reason >"+s

    do case

    case s = "i"

    sm ="Error opening files in deney-write mode"

    case s = "j"

    sm = "a file had a partial line fragment"

    case s = "k"

    sm = "not all trailing files are empty"

    case s = "l"

    sm = "all files full"

    otherwise

    sm = "Unknown error"

    endcase

    do alert with sm

    wait window "Error on ISLAND.OUT or ISLAND2.OUT OPEN:"+s

    quit

    endif

    select island

    tecount = 0 && Assume worst case, just to make sure ecount is high
    enough txcount = 0 && Cancels

    x = "L"+READPORT+" " && Read Island2 requests call int99 with x if x #
    "l"
    do alert with "Could not open Command listen!" endif


    gstatdelay = 0.25 do showstatus gnextstats = seconds() + gstatdelay

    gmolddelay = 1 && Time between mold heartbeats gmoldheart = seconds() + gmolddelay && Time to send a MOLD heartbeat by doing a FLUSH

    gmessages = 0 && Number of messages written to the stream gpackets = 0
    && Number of packets writtento the stream

    mdone = .F.

    do while !mdone

    tnow = seconds()

    do while tnow >= tnext

    if !EVENTS.PROCESSED

    do swrite with "G" , EVENTS.CODE

    select EVENTS replace PROCESSED with .T. select
    ISLAND

    else

    ? time()+" Event bypassed:"+ EVENTS.CODE

    endif

    do seteventflags with EVENTS.CODE

    skip 1 in EVENTS

    if eof("EVENTS")

    tnext = 99999.999

    else

    tnext = EVENTS.WHEN

    endif

    enddo

    nbuffer = blanknbuffer

    call int99 with nbuffer

    if nbuffer = "r"

    tlenstr = substr( nbuffer , 2 , 5 )

    tlen = val( tlenstr )

    tmessage = substr( nbuffer , 43 , tlen )

    if gprinting ? time()+" >"+tmessage+"<" endif

    if tmessage = "P" && PING REQUEST

    tsource = substr( nbuffer ,11 , 8)

    do pingreply with tsource , tmessage

    else

    do processtcpip with tmessage

    endif

    else && No pending commands...

    if gstoredflag


    [continued in next message]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Aryavarta@21:1/5 to All on Thu Sep 24 20:28:27 2020
    The CompuBBS code; please use it to communicate :-) ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- readme.txt file below between horizontal rule ----------------------------------------------------------------------------- The CompuBBS code; please use it to communicate :-)
    Satya Prasad Popuri
    Bachelors in Computer Science

    Silence is death. The need for an open source bulletin board system is
    vital for communication to prosper across this earth planet. In my
    travels I have discovered certain tools that help many to research and
    develop with ease while maintaining a sound and cogent system toward
    such an end. This CompuBBS is an open source version of the NYUNET
    bulletin board system I discovered while mistakenly studying and working
    there in my quest for enligtenment. As fate would have it, I chanced
    upon certain tools that I now present with an assortment of other tools
    I have discovered in my triste with death while working in the I.T.
    industry.

    Indeed, such tools have helped me here and there to maintain a
    consistent understanding of not only Unix fundamentals but also a feel
    good experience that is second to none. These tools represent the love
    affair that never quit. Not only has it valorized and inundated across
    this earth planet but has been the aims and means of my reason for
    living.

    Man needs a proper meditation of the heart and this tool list is one of
    the things I have used to be able to better understand myself and
    others. It was during the college years that I was exposed to such
    tools in over 3 universities and 11 years of employment here and there.
    They just work. Given the level of complexity the graphical user
    interface engenders it is refreshing to fall back on a tool base that is
    time immemorial. So please feel free to use them and contribute toward
    the open source endeavor to foster freedom of speech.

    For me prayer works but without a means of communication that is
    uninhibited and unmoderated we are at a loss for words. That is the
    shear beauty of the traditional tools as tin of the USENET NEWS servers;
    as well as the irssi of the IRC servers. It goes on. The list of tools
    I mention are as follows based on over 20 years of experience with the
    UNIX pragma.

    0. Alpine - a nice email client
    1. Tin - a nice newsreader
    2. Irssi - a nice internet relay chat client
    3. Lynx - a nice web browser
    4. Gopher - a nice ftp client
    5. Nano - a nice text editor
    6. Bash - a nice command prompt
    7. T.I.A. - a nice programming editor [This is known as Tiny IDE
    Ada/Anything editor. I am trying to encourage the Ada programming
    language over C++ and Java.]
    8. Nslookup - a nice directory service
    9. Telnet - a nice remote login tool
    A. Tailer - a nice monitoring tool [This I discovered at a .com I worked
    for. It simply goes to an i.p. address and searches for a string. If
    the string is not there an alert is genertated. Maybe it is out there
    in the wild blue yonder of the internet.]
    B. Calc - a nice calculator tool
    C. ECN - a nice day trading game [This is Josh Green's day trading
    algorithym in Python when he worked at Daytek. I posted it somewhere on
    USENET but I am unable to find it.... If you are able to find it please
    let me know. I encourage learning how to deal with money because "when
    men and women get together [money] gets in the way".] That too, they
    say, education is about learning how to communicate and learn how to
    deal with money.
    D. Tutor - a nice Unix tutorial [This tutorial I discovered at New York University. I wonder if there is an open source version of it.] It is
    a great way to learn the Unix operating system.
    E. Bible - a nice text based bible program [Does anyone know of an old
    school Bible program that is text based and worthy of praise? Prayer to
    Jesus Christ works!]
    F. Sendpage - this is a nice beeper software that helps to keep in touch
    with loved ones and others through the beeper or pager tool.
    $. Exit - a simple exit to the whole compubbs tools for research and development.

    I have foregoed useing the queue tool as it may cause some problems as
    far as managing and maintaining. The queue tool is always an issue for
    any I.T. computer lab as it is often the target of attacks by
    miscreants. There are other tools, such as 'talk', that are also good
    if you know how to use them in the code I mentioned. I refrained from mentioning talk because it requires input about the user and terminal to literally talk to using a text based interface. Maybe someone can
    design a text based form to fill out that will allow for one to use talk
    and then go back to the main menu. The file list for this compubbs
    endeavor is as follows:

    compubbs.sh
    bash-menu.sh
    bash-draw.sh
    readme.txt

    Please find the code in the following USENET newsgroups:

    soc.culture.indian
    soc.culture.asian.american
    soc.culture.usa
    soc.cutlure.spain
    soc.culture.bangladesh
    soc.culture.puerto.rico
    alt.computer.consultants
    alt.sex.stories.hetero

    Let's setup servers of this type of an unmoderated bulletin board
    system. While the internet has encouraged reciprocity or mutual
    respect, the BBS has encouraged comaraderie or mutual trust. This
    cybermatrix endeavor which I am trying to contravecy is an attempt
    toward synergy or mutual success. As well, there is a need for unity or
    mutual purpose. The T.E.A.M. acronymn for "together everyone
    accomplishes more" is worth encouraging.

    The following are some nice networks I am encouraging toward some level
    of mutuality:

    # - network - tool - idnustry - smurf - mutuality - signal ----------------------------------------------------------
    1 - Simulcast - radio - spiritual - arabian - comaradery - analog
    2 - Internet - computer - technological - indian - reciprocity - digital
    3 - Cybermatrix - television - financial - hispanic - synergy - ?
    4 - Tektocracy - beeper - political - russian - unity - ?
    5 - Sneakerweb - tablet - educational - gypsy - infidelity - ?
    6 - Darkring - console - architectural - african - ? - ?
    7 - Datatron - tracker(i.e. fitbit) - medical - european - ? - ?
    8 - Heliopex - watch - recreational - artican - ? - ?
    9 - Transpace - PDA(a.k.a smartphone) - sexual - oriental - ? -
    ? 10 - Stargate - controller - audiovisual - australian - ? - ?

    As well I have noticed the following dutys that seem to withstand the
    test of time and surpass all understanding with my I.T. industry. They
    are as follows:

    CIS Sysadmins:
    (Computer Information Specialties)
    ----------------------------------
    1. networking - solaris : british/grocer
    2. databasing - linux : oriental/escort
    3. multimedia - macintosh osx(bsd) : european/physcian
    4. programming - minix/x11/react os : indian/consultant
    5. productivity - haiku? : (Terron,Tamil,Taino,Tiwi)lawyer?
    6. security – sgi? : australian/designer
    7. management - sap/vax? : african/landlord
    8. troubleshooting - cytrix? : hispanic/accountant
    9. testing - sco/sylk? : arabian/scholar
    10.gaming - irix : russian//bouncer?
    ----------
    Outside contractors:
    11.tutoring - amix : jewish/teacher (outside contractor)

    With respect to the involvement of the Jewish blight upon humanity
    within the I.T. industry I find they are a curse more than anything.
    All they do is sabotage whichever system to justify yet another failed investment into thier diaspora. It is like that among them as their
    history of failure is not only evidenced in the Holy Bible as in the
    kingdom of Egypt but also in whichever other civilization to have graced
    this earth. That is why the Jews of the Yiddish, Zen, Vudu, Hindu,
    LGBTQ, NGR, Creole, Hapa, Hoon, and Roma ancestorys are known as the
    Negroid race, the niggers of the world.

    Anyway, join us in this endeavor to liberate humanity from the vice grip
    of the jew baiting culture of the idiot and wrong. I pray to Jesus
    Christ that you find them useful and worthy of praise as I have. This
    compubbs is a brief history of time and space of a world so good. In a
    way, the nature of the good is to overcome and defeat the bad. So, God
    bless and God speed for Jesus Christ is God. Always a pleasure. May
    you and your loved one's in the name of Jesus Christ be well, happy, prosperous, peacefull, healthy, and safe.

    P.S.
    Let it be said, "[financial] frustration creates a great imbalance
    in mind and body." We need to allay our antogonizing forces so that
    open source fiat like monies are provided for all concerned. The UNIX
    may help with learning how to communicate but the FIAT may help with
    learning how to deal with monies.

    The only issues I have are the evil empire of the JUBU and their
    branches of the Transcedentalism, Allopathy, Microsoft, Niggervision, Palmistry, and Insurance corporations of whichever bilk and swindel.
    There is that of a thing as evil and it is their incessant anti-Christ
    ways which ruin the whole thing. That is the issue. The dangers of the Jewish, Zen, Vudu, Hindu, LGBTQ, NGR, Creole, Hapa, Hoon, Roma masters
    of the nothing or meaningless things as in zazen(breathing excercises),
    mantra recitation, and koan visualization of the Satanic Dharma is more
    than anything. They are more of an evil and a bad influence than one can possibly dream. Quite a number bank on those people in order to
    eliminate innocent and good people to further their zero sum end game.
    Simply say the words Jesus Christ in your prayers to escape from such
    negative influences.

    The following republics are the bases of the evil empire of the JUBU:

    Taiwan - empire of Zen
    Israel - empire of Jews
    Sicily - empire of LGBTQ
    Haiti - empire of Vudu
    Hawaii - empire of Hindus
    Trinidad - empire of Creole?
    Indonesia - empire of Hapa?
    Phillipines - empire of Ngrs?
    Tibet - empire of Hoon?
    Brooklyn - empire of the Roma?

    Transcendentalist mafia are from such areas acenstorally and are
    harbingers of the worst known massacre known to man, called the
    religious war. This ComuBBS tool is to help people communicate for the
    sake of not only the ontology of Jesus Christ but also to better get
    clues on how to deal with those people of the Dying Arts. I really want
    to setup this system so that those stinken Jews are not a part of it.
    Their trespass into literally every industry to do stupid and useless
    things is a real danger for all concerned. Those people of the Dying
    Arts and the Jewish diaspora are like monkeys hell bent on suicide and sacrifice, to name a few. With their penchant toward brain degenerating
    ways, we are headed toward a nuclear war and economic collapse the world
    over unlike anything before. What is the use?

    Already the evil empire of the JUBU has perpetuated the destruction of
    the World Trade Center through thier Y2K bug fix pretention. Already
    the state of Louisiana has been horribly flooded because of yet another
    Jew baiting fetish gone wrong. Already the coronavirus has been
    unleashed to kill off more people.

    I see a trend and history by the Jewish diaspora to literally war with
    anyone for the sake of thier religious war. A religious war documented
    in religious books, life experiences, and television programming. It is
    like all over the place. Open and unmoderated communication for our
    people of Abraham hostaged by those of the evil empire of the JUBU is a
    good means toward liberating us from the ignorance which is not bliss.
    More will arrive to the body of Christ. Believe you me, those stinken
    Jews have to be defeated.

    Already, the Europeans, Russians, Chinese, and now the Arabians have politically made it known that Jews are unwanted in their realm. I as a
    Desi or native of the Indian subcontinent do the same. I tell ya,
    travelling to my homeland of the Indian subcontinent or Aryavarta was a
    real shocking reality to see so many of my people in abject life
    conditions due to the Hindu pride and prejudice maintained for over
    5,000 years and then some. Those gypsy niggers or even to say the
    negroid race are the very reason why Desi civilization could never come
    up and was the riddicule of the masses.

    Now with this wonderful capitalism, we can see a world where anyone and everyone is able to use such weapons to ward off the evil ones. Nothing
    worse than trying to find enlightenment in the wrong way through a one
    way ticket to the foothills of the Himalayas after following some
    Satanic master of the Zen empire of Taiwan. Ignorance is not bliss and ignorance of Jesus Christ is like the worst. God bless and God speed
    for Jesus Christ is God. Always a pleasure. Nothing worse than being
    on a park bench drinking liquor going through an existential doubt.
    Believe it.

    Sincerely,

    Satya Prasad Popuri (Satyababu)

    Signature: "The nature of the good is to overcome and defeat the bad." ----------------------------------------------------------------------------- compubbs.sh file below between horizontal rule ----------------------------------------------------------------------------- #!/bin/bash

    # Ensure we are running under bash
    if [ "$BASH_SOURCE" = "" ]; then /bin/bash "$0" exit 0 fi

    #
    # Load bash-menu script
    #
    # NOTE: Ensure this is done before using or overriding menu
    # functions/variables.
    #
    . "bash-menu.sh"


    ################################
    ## Example Menu Actions
    ##
    ## They should return 1 to indicate that the menu should continue, or
    ## return 0 to signify the menu should exit.
    ################################
    actionA() { alpine return 1
    }

    actionB() { tin -r -g freenews.netfront.net return 1
    }

    actionC() { irssi return 1
    }

    actionD() { lynx return 1
    }

    actionE() { gopher return 1
    }

    actionF() { nano return 1
    }

    actionG() { bash return 1
    }

    actionH() { tia return 1
    }

    actionI() { nslookup return 1
    }

    actionJ() { telnet return 1
    }

    actionK() { tailer return 1
    }

    actionL() { calc return 1
    }

    actionM() { ecn return 1
    }

    actionN() { bible return 1
    }

    actionO() { tutor return 1
    }

    actionP() { sendpage return 1
    }

    actionX() { return 0
    }


    ################################
    ## Setup Example Menu
    ################################

    ## Menu Item Text
    ##
    ## It makes sense to have "Exit" as the last item, as pressing Esc will
    ## jump to last item (and pressing Esc while on last item will perform
    ## the associated action).
    ##
    ## NOTE: If these are not all the same width the menu highlight will
    ## look wonky
    menuItems=( "0. Alpine ----------------------- email client" "1. Tin
    -------------------------- usenet news reader" "2. Irssi
    ------------------------ irc network" "3. Lynx
    ------------------------- web browser" "4. Gopher
    ----------------------- ftp protocol" "5. Nano
    ------------------------- text editor" "6. Bash
    ------------------------- command prompt" "7. T.I.A.
    ----------------------- programming IDE" "8. Nslookup
    --------------------- directory service" "9. Telnet
    ----------------------- remote login" "A. Tailer
    ----------------------- monitoring tool" "B. Calc
    ------------------------- calculator" "C. ECN
    -------------------------- daytrading game" "D. Tutor
    ------------------------ unix tutorial" "E. Bible
    ------------------------ way of enlightenment" "F. Sendpage
    --------------------- beeper server" "$. Exit
    ------------------------- God speed :-)"
    )

    ## Menu Item Actions
    menuActions=( actionA actionB actionC actionD actionE actionF actionG
    actionH actionI actionJ actionK actionL actionM actionN actionO
    actionP actionX
    )

    ## Override some menu defaults
    menuTitle=" CompuBBS - The nature of the good is to overcome and defeat
    the bad..." menuFooter=" Enter=Select, Navigate via Up/Down/First
    number/letter - [Prayer works!]" menuWidth=74 menuLeft=13 menuHighlight=$DRAW_COL_WHITE


    ################################
    ## Run Menu
    ################################
    menuInit menuLoop


    exit 0 ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- bash-menu.sh file below between horizontal rule ----------------------------------------------------------------------------- #!/bin/bash

    #
    # Public Functions
    #
    # menuInit() menuLoop()
    #
    #
    # Public Variables to Override
    #
    # Should these get passed into menuInit() rather than be set as global
    # script variables?
    #
    # menuTop # Top row of menu (defaults to row 2) menuLeft # Left offset
    # for menu item text (defaults to column 15) menuWidth # Width of menu
    # (defaults to 42 columns) menuMargin # Left offset for menu border
    # (defaults to column 4)
    #
    # menuColour # Colour of menu text (defaults to DRAW_COL_WHITE)
    # menuHighlight # Highlight colour for menu (defaults to
    # DRAW_COL_GREEN)
    #
    # menuTitle # Title of menu menuFooter # Footer text of menu
    #
    # menuItems # Array containing menu item text menuActions # Array
    # containing functions to call upon menu item selection
    #


    # Ensure we are running under bash (will not work under sh or dash etc)
    if [ "$BASH_SOURCE" = "" ]; then echo "ERROR: bash-menu requires to be
    running under bash" exit 1
    fi

    # Get script root (as we are sourced from another script, $0 will not be
    # us)
    declare -r menuScript=$(readlink -f ${BASH_SOURCE[0]})
    menuRoot=$(dirname "$menuScript")

    # Ensure we can access our dependencies
    if [ ! -s "$menuRoot/bash-draw.sh" ]; then echo "ERROR: Missing required
    draw.sh script" exit 1
    fi

    # Load terminal drawing functions
    . "$menuRoot/bash-draw.sh"


    ################################
    # Private Variables
    #
    # These should not be overridden
    ################################
    declare -a menuItems declare -a menuActions

    menuHeaderText="" menuFooterText="" menuBorderText=""


    ################################
    # Setup Menu
    #
    # These are defaults which should be overridden as required. ################################

    # Top of menu (row 2)
    menuTop=2

    # Left offset for menu items (not border)
    menuLeft=15

    # Width of menu
    menuWidth=42

    # Left offset for menu border (not menu items)
    menuMargin=4

    menuItems[0]="Exit" menuActions[0]="return 0"

    menuItemCount=1 menuLastItem=0

    menuColour=$DRAW_COL_WHITE menuHighlight=$DRAW_COL_GREEN

    menuTitle=" Super Bash Menu System" menuFooter=" Enter=Select, Up/Down=Prev/Next Option"


    ################################
    # Initialise Menu
    ################################
    menuInit() { menuItemCount=${#menuItems[@]}
    menuLastItem=$((menuItemCount-1))

    # Ensure header and footer are padded appropriately
    menuHeaderText=`printf "%-${menuWidth}s" "$menuTitle"`
    menuFooterText=`printf "%-${menuWidth}s" "$menuFooter"`

    # Menu (side) borders
    local marginSpaces=$((menuMargin-1)) local
    menuSpaces=$((menuWidth-2)) local leftGap=`printf
    "%${marginSpaces}s" ""` local midGap=`printf "%${menuSpaces}s" ""`
    menuBorderText="${leftGap}x${midGap}x"
    }


    ################################
    # Show Menu
    ################################
    menu_Display() { local menuSize=$((menuItemCount+2)) local
    menuEnd=$((menuSize+menuTop+1))

    drawClear drawColour $menuColour $menuHighlight

    # Menu header
    drawHighlightAt $menuTop $menuMargin "$menuHeaderText" 1

    # Menu (side) borders
    for row in $(seq 1 $menuSize); do drawSpecial "$menuBorderText" 1
    done

    # Menu footer
    drawHighlightAt $menuEnd $menuMargin "$menuFooterText" 1

    # Menu items
    for item in $(seq 0 $menuLastItem); do menu_ClearItem $item done
    }


    ################################
    # Mark Menu Items
    ################################

    # Ensure menu item is not highlighted
    menu_ClearItem() { local item=$1 local top=$((menuTop+item+2)) local
    menuText=${menuItems[$item]}

    drawPlainAt $top $menuLeft "$menuText"
    }

    # Highlight menu item
    menu_HighlightItem() { local item=$1 local top=$((menuTop+item+2)) local
    menuText=${menuItems[$item]}

    drawHighlightAt $top $menuLeft "$menuText"
    }


    ################################
    # Wait for and process user input
    ################################
    menu_HandleInput() { local choice=$1

    local after=$((choice+1)) [[ $after -gt $menuLastItem ]] && after=0

    local before=$((choice-1)) [[ $before -lt 0 ]] &&
    before=$menuLastItem

    # Clear highlight from prev/next menu items
    menu_ClearItem $before menu_ClearItem $after

    # Highlight current menu item
    menu_HighlightItem $choice

    # Get keyboard input
    local key="" local extra=""

    read -s -n1 key 2> /dev/null >&2 while read -s -n1 -t .05 extra 2>
    /dev/null >&2 ; do
    key="$key$extra" done

    # Handle known keys
    local escKey=`echo -en "\033"` local upKey=`echo -en "\033[A"` local
    downKey=`echo -en "\033[B"`

    if [[ $key = $upKey ]]; then return $before elif [[ $key = $downKey
    ]]; then
    return $after elif [[ $key = $escKey ]]; then if [[ $choice -eq
    $menuLastItem ]]; then
    # Pressing Esc while on last menu item will trigger action
    # This is a helper as we assume the last menu option is exit
    key="" else
    # Jumping possibly more than 1 (next/prev) item
    menu_ClearItem $choice return $menuLastItem fi elif [[
    ${#key} -eq 1 ]]; then
    # See if we wanrt to jump to a menu item by entering the first
    # character
    for index in $(seq 0 $menuLastItem) ; do local
    item=${menuItems[$index]} local startChar=${item:0:1} if [[
    "$key" = "$startChar" ]]; then
    # Jumping possibly more than 1 (next/prev) item
    menu_ClearItem $choice return $index fi done fi

    if [[ "$key" = "" ]]; then
    # Notify that Enter key was pressed
    return 255 fi

    return $choice
    }


    ################################
    # Main Menu Loop
    ################################
    menuLoop() { local choice=0 local running=1

    menu_Display

    while [[ $running -eq 1 ]]; do
    # Enable case insensitive matching
    local caseMatch=`shopt -p nocasematch` shopt -s nocasematch

    menu_HandleInput $choice local newChoice=$?

    # Revert to previous case matching
    $caseMatch

    if [[ $newChoice -eq 255 ]]; then
    # Enter pressed - run menu action
    drawClear action=${menuActions[$choice]} $action running=$?

    # Back from action If we are still running, redraw menu
    [[ $running -eq 1 ]] && menu_Display

    elif [[ $newChoice -lt $menuItemCount ]]; then
    # Update selected menu item
    choice=$newChoice fi done

    # Cleanup screen
    drawClear
    }
    ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- bash-draw.sh file below between horizontal rule ----------------------------------------------------------------------------- #!/bin/bash

    #
    # Public Functions:
    #
    # drawClear() drawColour(colour = DRAW_COL_DEF, bgColour =
    # DRAW_COL_DEF)
    #
    # drawPlain(text, newLine = 0) drawSpecial(text, newLine = 0)
    # drawHighlight(text, newLine = 0) drawPlainAt(left, top, text,
    # newLine = 0) drawHighlightAt(left, top, text, newLine = 0)
    #
    #
    # Colours
    #
    # DRAW_COL_DEF # Default colour DRAW_COL_BLACK DRAW_COL_WHITE
    # DRAW_COL_RED DRAW_COL_GREEN DRAW_COL_YELLOW DRAW_COL_BLUE
    # DRAW_COL_GRAY # Light gray (grey?)
    #


    # Ensure we are running under bash (will not work under sh or dash etc)
    if [ "$BASH_SOURCE" = "" ]; then echo "ERROR: bash-draw requires to be
    running under bash" exit 1
    fi


    DRAW_COL_DEF=39 DRAW_COL_BLACK=30 DRAW_COL_WHITE=97 DRAW_COL_RED=31 DRAW_COL_GREEN=32 DRAW_COL_YELLOW=33 DRAW_COL_BLUE=34 DRAW_COL_GRAY=37


    # drawClear()
    drawClear() { $ESC_WRITE "\033c"
    }

    # drawColour(colour = DRAW_COL_DEF, bgColour = DRAW_COL_DEF)
    drawColour() { local colour=$DRAW_COL_DEF local
    bgColour=$((DRAW_COL_DEF+10))

    if [[ ! -z "$1" && "$1" != "" ]]; then colour="$1" fi

    if [[ ! -z "$2" && "$2" != "" ]]; then bgColour="$2" fi

    $ESC_ECHO "\033c\033[H\033[J\033[${colour};${bgColour}m\033[J"
    }

    # drawPlain(text, newLine = 0)
    drawPlain() { if [[ -z "$2" || "$2" -eq 0 ]]; then $ESC_WRITE "$1" else
    $ESC_ECHO "$1"
    fi
    }

    # drawSpecial(text, newLine = 0)
    drawSpecial() { [[ -z "$2" ]] && newLine=0 || newLine="$2"

    draw_SetDrawMode drawPlain "$1" "$newLine" draw_SetWriteMode
    }

    # drawHighlight(text, newLine = 0)
    drawHighlight() { [[ -z "$2" ]] && newLine=0 || newLine="$2"

    draw_StartHighlight drawPlain "$1" "$newLine" draw_EndHighlight
    }

    # drawPlainAt(left, top, text, newLine = 0)
    drawPlainAt() { [[ -z "$4" ]] && newLine=0 || newLine="$4"

    draw_MoveTo $1 $2 drawPlain "$3" "$newLine"
    }

    # drawHighlightAt(left, top, text, newLine = 0)
    drawHighlightAt() { [[ -z "$4" ]] && newLine=0 || newLine="$4"

    draw_StartHighlight drawPlainAt "$1" "$2" "$3" "$newLine"
    draw_EndHighlight
    }


    # Write escape sequence with no newline
    ESC_WRITE='echo -en'

    # Write escape sequence adding newline
    ESC_ECHO='echo -e'


    # Move cursor to specified location
    draw_MoveTo() { $ESC_WRITE "\033[${1};${2}H"
    }

    draw_StartHighlight() { $ESC_WRITE "\033[7m"
    }

    draw_EndHighlight() { $ESC_WRITE "\033[27m"
    }

    draw_SetDrawMode() { $ESC_WRITE "\033%@\033(0"
    }

    draw_SetWriteMode() { $ESC_WRITE "\033(B"
    }
    ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- CompuBBS - ECN code ----------------------------------------------------------------------------- Please find below the CompuBBS ECN code originally developed by Josh
    Greene. It is something a former friend of mine once told me about as
    he worked at Daytek during the dawn of the internet. At the time I was
    to oblivous to the fact that money is the very means by which our lives
    revolve around. As they say, "when men and women get together [money]
    gets in the way". The Josh Greene's ECN day trading code is intended as
    a game for now until it becomes more viable for the purposes of the Cybermatrix.

    The below ECN day trading code is in Python. So check it out. Try to
    make it into a game at first so that you and your network can learn how
    to play it before proceeding. I heard when it comes to the stock market
    one can literally loose their shirt on this. So beware. Ignorance is
    not bliss.

    The intention for this code is toward the establishment of the
    cybermatrix or to say the opern source fiat like monies initiative for
    the sake of synergy or mutual success. The meaning of cybermartix is
    virtual as in cyber and a database of the nth dimension as in matrix.
    So the cybermatrix is a network of databases of a given
    dimension(matricees) with a larger databases of the nth
    dimension(matrix). So, let's do this.

    God bless and God speed for Jesus Christ is God. Always a pleasure.
    Good luck to you all. I want you to win. Allahu Akhbar! ----------------------------------------------------------------------------- Josh Greene's Island ECN day trading code in Python between horizontal
    rule ----------------------------------------------------------------------------- SET TALK OFF SET CURSOR OFF SET SAFETY OFF SET MEMOWIDTH TO 80 CLEAR ALL
    CLOSE ALL CLEAR CLEAR MACRO && Get rid of F keys typing commands SET
    HELP OFF && Needed to clear out F1 key too

    =rand(-1)

    #define COREDEST "FFFFFFFF0673"

    gstoredflag = .F. && Are there any messages buffered that could be
    flushed?

    #define VERSION "2.40"

    malertfile = "M:\logs\island2.err" mholdofffile =
    "M:\island2\holdoff.txt"

    blanknbuffer="R"+replicate( " " , 200 ) && get BRIGADEN message here

    #define CORELINELEN 124 define COREMESSAGELEN 122

    #define READPORT "067F"

    load int99

    define window title from 0,0 to 0,scols()-1 COLOR "W/B" NONE define
    window output from 1,0 to 10,scols()-1 NONE COLOR "W+/N" define window
    ticker from 12,0 to srows()-1,scols()-1 NONE define window status from
    11,0 to 11,scols()-1 COLOR "W+/R" NONE

    do title do initstatus

    activate window title activate window status

    activate window output activate window ticker


    s = fopen( "ISLAND2.TXT" )

    if s <= 0 wait window "COULD NOT FIND ISLAND2.TXT IN CURRENT DIR. RUN
    RESET." quit
    endif

    x = fgets( s )

    if "ISLAND2" # x wait window "ACCOUNT IN ISLAND2.TXT DOES NOT MATCH
    ACCOUNT ENV VAR. RUN RESET." =fclose( s ) quit
    endif

    tcount = 0 && For counting random stuff

    tseq = val( fgets( s ) ) && Next order number tmatch = val( fgets( s ) )
    && Next match number tnextdead = val( fgets( s ) ) && Next dead order (zero=none) =fclose( s )

    select select(1) use events set order to WHEN

    tnow = 0

    ttoolate = 0 && Count the too late to cancel events

    gaccept = .F. && Let any orders in? Set by SOD, cleared by EOD
    gactaccept = .F. && Let ACT orders in? Set by SOD, cleared by EOA

    geom = .F. && Have we gotten EOM yet?

    gprinting = .F. && Print incoming messages?

    go top

    if eof("EVENTS")

    tnext = 99999.999

    else

    tnext = WHEN && Time of next event

    endif

    select 0 use sources set order to SOURCE

    select select(1) use island

    gsx = alltrim( str( date() - {2/6/1996} ) )

    gsession = left( "0000000000" , 9-len( gsx ) ) + gsx + "F"

    s="N"+gsession+"5050" && Open the islandfile for writing Mold on port
    5050 call int99 with s

    if s # "n" && Valid open file?

    do alert with "InitMold filed with reason >"+s

    do case

    case s = "i"

    sm ="Error opening files in deney-write mode"

    case s = "j"

    sm = "a file had a partial line fragment"

    case s = "k"

    sm = "not all trailing files are empty"

    case s = "l"

    sm = "all files full"

    otherwise

    sm = "Unknown error"

    endcase

    do alert with sm

    wait window "Error on ISLAND.OUT or ISLAND2.OUT OPEN:"+s

    quit

    endif

    select island

    tecount = 0 && Assume worst case, just to make sure ecount is high
    enough txcount = 0 && Cancels

    x = "L"+READPORT+" " && Read Island2 requests call int99 with x if x #
    "l"
    do alert with "Could not open Command listen!" endif


    gstatdelay = 0.25 do showstatus gnextstats = seconds() + gstatdelay

    gmolddelay = 1 && Time between mold heartbeats gmoldheart = seconds() + gmolddelay && Time to send a MOLD heartbeat by doing a FLUSH

    gmessages = 0 && Number of messages written to the stream gpackets = 0
    && Number of packets writtento the stream

    mdone = .F.

    do while !mdone

    tnow = seconds()

    do while tnow >= tnext

    if !EVENTS.PROCESSED

    do swrite with "G" , EVENTS.CODE

    select EVENTS replace PROCESSED with .T. select
    ISLAND

    else

    ? time()+" Event bypassed:"+ EVENTS.CODE

    endif

    do seteventflags with EVENTS.CODE

    skip 1 in EVENTS

    if eof("EVENTS")

    tnext = 99999.999

    else

    tnext = EVENTS.WHEN

    endif

    enddo

    nbuffer = blanknbuffer

    call int99 with nbuffer

    if nbuffer = "r"

    tlenstr = substr( nbuffer , 2 , 5 )

    tlen = val( tlenstr )

    tmessage = substr( nbuffer , 43 , tlen )

    if gprinting ? time()+" >"+tmessage+"<" endif

    if tmessage = "P" && PING REQUEST

    tsource = substr( nbuffer ,11 , 8)

    do pingreply with tsource , tmessage

    else

    do processtcpip with tmessage

    endif

    else && No pending commands...

    if gstoredflag


    [continued in next message]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)