Files
ioccc/1998/dlowe
Landon Curt Noll f29b37e49a improve HTML menus, add social.html, prep for IOCCC28 winners
Prepare for the winners of **IOCCC28**.

> However these are not the 2024 droids you are looking for.  :-)

The HTML menu (both JavaScript and non-JavaScript) has been updated.

The `Status -> Rules and guidelines' have been replaced with two
separate menus `Status -> IOCCC rules` and `Status -> IOCCC guidelines`.

Added a new top level `social.html` page: built from a new `social.md`.

Sorted rules for building specific web pages in the top level `Makefile`.
Added `make social` to make the `social.html` page from `social.md`.

The `bin/gen-top-html.sh` now is able to process a argument of **social**
to process the new top level `social.html` page.

Changed `bin/gen-top-html.sh` VERSION from "2.0.0 2025-03-13"
to "2.0.1 2025-07-25".

Below `About -> Home page` a new `About -> IOCCC social media` menu item
as added.

Because the menu change touched every HTML file, we changed the general
copyright date range for HTML files from "1984-2024" to "1984-2025"
due to the extensive changes made for **IOCCC28**.

Those markdown files that were modified in 2025 had their copyright date
range also changed from "1984-2024" to "1984-2025".

Rebuilt tarballs and sitemap due to the extensive HTML rebuilding.

Ran `make update` to perform the above.
2025-07-26 13:06:29 -07:00
..
2023-11-13 08:13:59 -08:00
2023-11-13 08:13:59 -08:00
2023-07-06 21:49:38 -07:00
2024-07-29 08:47:22 -07:00
2024-01-19 07:09:15 -08:00

To build:

    make all

There is an alternate version available. See Alternate code below for more details.

To use:

    ./dlowe < file > pootfile

    ./dlowe < file

Bugs and (Mis)features:

The current status of this entry is:

STATUS: missing or dead link or links - please provide it or them

For more detailed information see 1998/dlowe in bugs.html.

Try:

    ./dlowe < README.md
    ./dlowe < README.md > README.poot.md

Why is there different output?

Also try:

    ./try.sh

Did you spot the Easter egg there?

Alternate code:

The original entry was just a text based pootifier. This alternate version is that program.

Alternate build:

    make alt

Alternate use:

    ./dlowe.alt < file > pootfile

What's the difference between this and dlowe?

Alternate try:

    ./try.alt.sh

Did you spot the Easter egg there?

Judges' remarks:

Why could this this entry be considered a utility? Well because it is able to convert content-free web pages into useful web pages.

To see why, try using an online version, modified for use as a CGI program: https://web.archive.org/web/20001025182142/http://pootpoot.com/poot/pootify?URL=http://www.microsoft.com

We are sure that you will find that new web page to make a much more consistent level of quality. :-)

Historical remarks:

A CGI script such as:

    #!/bin/sh
    # pootify - a sample CGI pootifier
    #
    POOT="/usr/local/bin/dlowe"
    LYNX="/usr/local/bin/lynx"
    ECHO="/usr/bin/echo"
    EXPR="/usr/bin/expr"
    ${ECHO} "Content-type: text/html"
    ${ECHO}
    if [ -z "${QUERY_STRING}" ]; then
        ${ECHO} "QUERY_STRING not found"
    else
        URL=`${EXPR} "$QUERY_STRING" : '[Uu][Rr][Ll]=\(.*\)'`
        if [ -z "${URL}" ]; then
            ${ECHO} "No URL given in QUERY_STRING"
        elif [ X`${EXPR} "${URL}" : '[Ff][Ii][Ll][Ee]:'` != X0 ]; then
            ${ECHO} "file: based URLs are not allowed"
        else
            ${LYNX} -restrictions=all -source "${URL}" | ${POOT}
        fi
    fi

can be used to pootify web pages. This has been added as pootify.cgi.sh which forbids file:// based URLs and which uses lynx(1) with the option referred to above. This will not, of course, render it as html but rather show the modified html. Nevertheless, this has NOT been tested as a CGI script with a webserver to display a pootified web page.

The pootify.sh script has also been added which is a modification to the above script which can be used to render html files locally with the added bonus that one can use file:// URLs. If one wants a CGI script they should use the above one instead. You can use the script pootify.sh, however, to download and generate html files that you can look at locally in a browser or pipe through less(1). For instance:

    ./pootify.sh URL=https://microsoft.com | less

    ./pootify.sh -r URL=https://microsoft.com > ms.html

where the first one would show the text as rendered but without links, images etc. and the second one would write the html to ms.html so that you could open it in a browser.

For an old example of it working as a CGI script see https://web.archive.org/web/20040326083431/http://www.pootpoot.com/poot/pootify/?URL=http%3A%2F%2Fwww.ioccc.org.

Author's remarks:

This program is a text filter, it reads stdin and outputs the "corrected" text to stdout.

It is obfuscated in that the code is painful to look at and its purpose and mode of operation are not terribly obvious. More importantly, it is a tool for further obfuscation, in that it can take any text and render it unintelligible.

Suggested uses: add to your MANROFFSEQ environment variable for man page enjoyment; use it to turn the GPL into the PPL; see what happens when you run perl4 programs after they've been run through it; "encrypt" sensitive (but unnecessary) documents...