• ANN: Dogelog Player 1.1.5 (HTTP Server)

    From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Sun Jan 21 16:56:34 2024
    From Newsgroup: comp.lang.prolog

    Dear All,

    We are happy to announce a new edition of the
    Dogelog player:

    - Enhanced library(misc/markup):
    The library(misc/markup) has been extended to
    include a unified DOM writer abstraction. It can
    write to the GUI DOM in the browser, and it is also
    possible to write the DOM serialized in XML to a
    file. There are a variety of use cases for the
    library, e.g. creating static HTML pages.

    - New library(misc/vector):
    In this library we have brought together everything
    related to SVG that was previously scattered in
    the libraries library(misc/markup) and library(misc/react).
    The new advantages of the extended library (misc/markup)
    can also be used here, so the creation of static
    SVG pages is now supported.

    - New library(util/spin):
    The library provides a unified HTTP server
    abstraction. There are concrete implementations
    for nodeJS using node:http, for PyPy using http_server
    and for JDK 21 using Tomcat embedded. Local browser
    GET of 50,000 bytes via Prolog atom text lines
    enumeration requires approx. 5-10 ms for all Dogelog
    Player targets.

    Have Fun!
    Jan Burse, 21.01.2024, http://www.xlog.ch/
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@bursejan@gmail.com to comp.lang.prolog on Tue Jan 23 02:54:57 2024
    From Newsgroup: comp.lang.prolog


    Quick update. This is fun we switched the implementation
    of library(util/spin) in Dogelog Player for Java from Tomcat 11
    embedded to this thingy here:

    Module jdk.httpserver - Package com.sun.net.httpserver https://download.java.net/java/early_access/panama/docs/api/jdk.httpserver/com/sun/net/httpserver/package-summary.html

    JEP 408: Simple Web Server
    https://openjdk.org/jeps/408

    Works fine so far and seems to be an itch speedier. Its
    already available in our current devel version 1.1.6 of
    Dogelog Player for Java via our GIT.

    Mild Shock schrieb am Sonntag, 21. Januar 2024 um 16:56:35 UTC+1:
    Dear All,

    We are happy to announce a new edition of the
    Dogelog player:

    - Enhanced library(misc/markup):
    The library(misc/markup) has been extended to
    include a unified DOM writer abstraction. It can
    write to the GUI DOM in the browser, and it is also
    possible to write the DOM serialized in XML to a
    file. There are a variety of use cases for the
    library, e.g. creating static HTML pages.

    - New library(misc/vector):
    In this library we have brought together everything
    related to SVG that was previously scattered in
    the libraries library(misc/markup) and library(misc/react).
    The new advantages of the extended library (misc/markup)
    can also be used here, so the creation of static
    SVG pages is now supported.

    - New library(util/spin):
    The library provides a unified HTTP server
    abstraction. There are concrete implementations
    for nodeJS using node:http, for PyPy using http_server
    and for JDK 21 using Tomcat embedded. Local browser
    GET of 50,000 bytes via Prolog atom text lines
    enumeration requires approx. 5-10 ms for all Dogelog
    Player targets.

    Have Fun!
    Jan Burse, 21.01.2024, http://www.xlog.ch/
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Wed Jan 24 10:50:54 2024
    From Newsgroup: comp.lang.prolog


    We describe the implementation of a dynamical HTML
    page in Prolog that displays the moon phase seen from
    the northern hemisphere for a given day. The code
    demonstrates a HTTP server addition to Dogelog Player,
    a Prolog system 100% written in Prolog itself available
    for the platforms JavaScript, Python and Java.

    We spent one morning to create a dynamical HTML page,
    that shows the moon phase of a day via SVG. The coding
    is similar to how one is usually dealing with a TTY,
    lowering the learning curve. The single Prolog text
    can be used to serve the HTML page unchanged via
    JavaScript, Python or Java.

    See also:

    Moon Server with Dogelog Player https://twitter.com/dogelogch/status/1749847817579827503

    Moon Server with Dogelog Player
    https://www.facebook.com/groups/dogelog

    Mild Shock schrieb:

    Quick update. This is fun we switched the implementation
    of library(util/spin) in Dogelog Player for Java from Tomcat 11
    embedded to this thingy here:

    Module jdk.httpserver - Package com.sun.net.httpserver https://download.java.net/java/early_access/panama/docs/api/jdk.httpserver/com/sun/net/httpserver/package-summary.html

    JEP 408: Simple Web Server
    https://openjdk.org/jeps/408

    Works fine so far and seems to be an itch speedier. Its
    already available in our current devel version 1.1.6 of
    Dogelog Player for Java via our GIT.

    Mild Shock schrieb am Sonntag, 21. Januar 2024 um 16:56:35 UTC+1:
    Dear All,

    We are happy to announce a new edition of the
    Dogelog player:

    - Enhanced library(misc/markup):
    The library(misc/markup) has been extended to
    include a unified DOM writer abstraction. It can
    write to the GUI DOM in the browser, and it is also
    possible to write the DOM serialized in XML to a
    file. There are a variety of use cases for the
    library, e.g. creating static HTML pages.

    - New library(misc/vector):
    In this library we have brought together everything
    related to SVG that was previously scattered in
    the libraries library(misc/markup) and library(misc/react).
    The new advantages of the extended library (misc/markup)
    can also be used here, so the creation of static
    SVG pages is now supported.

    - New library(util/spin):
    The library provides a unified HTTP server
    abstraction. There are concrete implementations
    for nodeJS using node:http, for PyPy using http_server
    and for JDK 21 using Tomcat embedded. Local browser
    GET of 50,000 bytes via Prolog atom text lines
    enumeration requires approx. 5-10 ms for all Dogelog
    Player targets.

    Have Fun!
    Jan Burse, 21.01.2024, http://www.xlog.ch/

    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Fri Feb 2 11:33:17 2024
    From Newsgroup: comp.lang.prolog


    Dogelog Player is a Prolog system that was
    conceived to run on coroutine capable targets
    if a target can implement the instruction ‘$YIELD’/1.
    So far this was realized for JavaScript and Python
    including a notion of tasks. We enhanced the
    instruction and do now provide async I/O.

    We now invoke first a promise factory and then
    call the ‘$YIELD’/1 instruction. We might equally
    well rename it into a ‘$AWAIT’/1 instruction. We
    then use our new library(spin) and demonstrate
    running multiple HTTP servers in our single
    threaded Dogelog Player.

    See also:

    Async I/O in Dogelog Player https://twitter.com/dogelogch/status/1753364266017566812

    Async I/O in Dogelog Player
    https://www.facebook.com/groups/dogelog

    Mild Shock schrieb:

    We describe the implementation of a dynamical HTML
    page in Prolog that displays the moon phase seen from
    the northern hemisphere for a given day. The code
    demonstrates a HTTP server addition to Dogelog Player,
    a Prolog system 100% written in Prolog itself available
    for the platforms JavaScript, Python and Java.

    We spent one morning to create a dynamical HTML page,
    that shows the moon phase of a day via SVG. The coding
    is similar to how one is usually dealing with a TTY,
    lowering the learning curve. The single Prolog text
    can be used to serve the HTML page unchanged via
    JavaScript, Python or Java.

    See also:

    Moon Server with Dogelog Player https://twitter.com/dogelogch/status/1749847817579827503

    Moon Server with Dogelog Player
    https://www.facebook.com/groups/dogelog

    Mild Shock schrieb:

    Quick update. This is fun we switched the implementation
    of library(util/spin) in Dogelog Player for Java from Tomcat 11
    embedded to this thingy here:

    Module jdk.httpserver - Package com.sun.net.httpserver
    https://download.java.net/java/early_access/panama/docs/api/jdk.httpserver/com/sun/net/httpserver/package-summary.html


    JEP 408: Simple Web Server
    https://openjdk.org/jeps/408

    Works fine so far and seems to be an itch speedier. Its
    already available in our current devel version 1.1.6 of
    Dogelog Player for Java via our GIT.

    Mild Shock schrieb am Sonntag, 21. Januar 2024 um 16:56:35 UTC+1:
    Dear All,

    We are happy to announce a new edition of the
    Dogelog player:

    - Enhanced library(misc/markup):
    The library(misc/markup) has been extended to
    include a unified DOM writer abstraction. It can
    write to the GUI DOM in the browser, and it is also
    possible to write the DOM serialized in XML to a
    file. There are a variety of use cases for the
    library, e.g. creating static HTML pages.

    - New library(misc/vector):
    In this library we have brought together everything
    related to SVG that was previously scattered in
    the libraries library(misc/markup) and library(misc/react).
    The new advantages of the extended library (misc/markup)
    can also be used here, so the creation of static
    SVG pages is now supported.

    - New library(util/spin):
    The library provides a unified HTTP server
    abstraction. There are concrete implementations
    for nodeJS using node:http, for PyPy using http_server
    and for JDK 21 using Tomcat embedded. Local browser
    GET of 50,000 bytes via Prolog atom text lines
    enumeration requires approx. 5-10 ms for all Dogelog
    Player targets.

    Have Fun!
    Jan Burse, 21.01.2024, http://www.xlog.ch/


    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Sat Feb 10 03:40:24 2024
    From Newsgroup: comp.lang.prolog


    We already reported the new capability
    that we can read async from streams. We made
    this available for the file system reads on
    nodeJS. We report here about a further progress
    extending the async approach to HTTP fetch in
    the browser and on nodeJS.

    Multiple downloads make a case for async I/O
    since RFC 2616 limits the number of connections.
    HTTP/2 allows to send off multiple requests
    which async I/O can capitalize. We demonstrate
    quasi-parallel execution in Dogelog Player for
    both the browser and nodeJS.

    See also:

    Async HTTP Client for Dogelog Player https://twitter.com/dogelogch/status/1756144112946807135

    Async HTTP Client for Dogelog Player
    https://www.facebook.com/groups/dogelog
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Tue Feb 20 17:09:23 2024
    From Newsgroup: comp.lang.prolog


    Dogelog Player is a Prolog system that features a
    ‘$YIELD’/1 instruction. The instruction was conceived
    for single threaded runtimes with an event loop. We
    could now demonstrate how to realize it without
    an explicit event loop in a multi threaded runtime.

    The idea is that threads use a bouncer semaphore
    to get a permission to execute and thus become
    “coroutines”. Now that we have layed the foundation
    we started asyncifying Dogelog Player for Java.
    We demonstrate a HTTP server and HTTP client
    interaction in the same JVM.

    See also:

    Surrogate Async/Await with JDK 21 https://twitter.com/dogelogch/status/1759972607355470296

    Surrogate Async/Await with JDK 21
    https://www.facebook.com/groups/dogelog

    Mild Shock schrieb:

    We already reported the new capability
    that we can read async from streams. We made
    this available for the file system reads on
    nodeJS. We report here about a further progress
    extending the async approach to HTTP fetch in
    the browser and on nodeJS.

    Multiple downloads make a case for async I/O
    since RFC 2616 limits the number of connections.
    HTTP/2 allows to send off multiple requests
    which async I/O can capitalize. We demonstrate
    quasi-parallel execution in Dogelog Player for
    both the browser and nodeJS.

    See also:

    Async HTTP Client for Dogelog Player https://twitter.com/dogelogch/status/1756144112946807135

    Async HTTP Client for Dogelog Player
    https://www.facebook.com/groups/dogelog

    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mild Shock@janburse@fastmail.fm to comp.lang.prolog on Sun Mar 3 20:25:28 2024
    From Newsgroup: comp.lang.prolog


    Dogelog Player was born in 2021 after heated internet
    discussions. Its a project of an async Prolog system,
    that can be used for backend server development or
    inside a web browser client. Currently Dogelog Player
    is fully open source and gets the most care by
    its founding company.


    A couple of Prolog systems provide sponsor buttons,
    mainly powered by GitHub. On the other hand Crypto
    wallets projections indicating exponential growth. We
    setup a donation page, based on Solana, which is
    deemed highly energy efficient, minimizing its
    global carbon footprint.

    See also:

    Sustainable Appreciation for Dogelog Player https://twitter.com/dogelogch/status/1764369222270927180

    Sustainable Appreciation for Dogelog Player https://www.facebook.com/groups/dogelog
    --- Synchronet 3.20a-Linux NewsLink 1.114