Hi Roy,

very nice work, indeed.

I would recommend that you (and everybody else running GNU APL
on the public internet) ./configure your GNU APL with:

./configure SECURITY_LEVEL_WANTED=2 ...

That should prevents a number of GNU APL facilities such as )SAVE workspace,
SQL, ... (see Security.def for a list of facilities that can be disabled) from being
executed and harm your server.

Or use SECURITY_LEVEL_WANTED=1 and disable individual facilities in a profile
in one of the GNU APL preferences files.

Best Regards,
Jürgen


On 8/15/25 20:37, Roy Tobin wrote:
Hi, trygnuapl has a new, permanent home.

The trygnuapl service https://trygnuapl.github.io is an online, interactive
web browser-based interface to the GNU APL interpreter, in the spirit of
Dyalog's Try APL service https://tryapl.com

Version 1.1 (July 2025) https://trygnuapl.github.io

Version 1.1 user interface and other enhancements are described on the
project page https://github.com/trygnuapl/trygnuapl.github.io

I pledge to keep this hobby running for as long as Google* Cloud Platform
(GCP) graciously offers a free tier and trygnuapl usage is within or near
the free tier threshold for Cloud Run which, as of 8/15/2025, is:

    2 million requests per month
    360,000 GB-seconds of memory, 180,000 vCPU-seconds of compute time
    1 GB of outbound data transfer from North America per month

* no affiliation, just a (so far adequately satisfied) hobbyist-user.

On Fri, Aug 15, 2025 at 10:26 AM Dr. Jürgen Sauermann <mail@jürgen-sauermann.de <mailto:mail@j%C3%BCrgen-sauermann.de>> wrote:

    Hi Roy,

    I am getting a "404 Not found" for the URL below ?

    Best Regards,
    Jürgen


    On 6/2/25 19:47, Roy Tobin wrote:
    Hi,
    For fun, I coded a browser (Web) interface for GNU APL.

    https://roytobin.github.io/trygnuapl/

    The service, by intention, imposes minimal
    restrictions/limitations on
    functionality.  Yet memory and network usage are limited, like
    Dyalog's
    tryapl.com <http://tryapl.com>.  So best results are had when
    using modest-sized datasets.

        (isCrashable == true)
            .then( () => googleJustSpinsUpAnother())

    Cheers,
    Roy

Reply via email to