Files
ioccc/1989/ovdluhe
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-10-19 05:19:58 -07:00
2023-07-06 21:49:38 -07:00

To build:

    make all

To get this to compile with a modern CPP, we had to replace #D with #define.

To use:

Run the program this way:

    ./ovdluhe < textfile

The program stops when it reaches the end of the template buffer by chance or is killed.

Try:

    ./try.sh ; sleep 2 ; ./try.sh

Alternate code:

The author suggested that one varies the definition of P from 2 through 10. As it's a #define it's easy to set up.

Alternate build:

    make P=9 clobber alt

You do not have to define P but if you do you can replace the value with whatever you wish, as long as it's a positive int (or evaluates to a positive int like the default (A<<AP) does). Too high a value will likely cause the program to fail and a negative value will cause a compilation error as will a value that's not a number.

Alternate use:

    ./ovdluhe.alt

Alternate try:

    ./try.alt.sh

    P=5 ./try.alt.sh

NOTE: if you specify too high a value for P the program might fail. If you specify a value < 0 it will fail to compile.

Judges' remarks:

Run this program using your favorite text file as input. Files such as mailboxes, man pages and usenet articles are especially recommended. You will get different output each time you run it.

Author's remarks:

This program implements an "Eddington ape" - it generates random text from a supplied template. The template text file is read through stdin. The larger the template, the better the result. A maximum of 2**12 chars are used. From the template, the program calculates the statistics of chars that immediately follow a given string (correlator string) of a certain length (currently 4 - can be varied by changing the definition for P accordingly). A character is randomly chosen, weighted by its probability to occur after the correlator string. That character is printed to stdout and placed at the end of the correlator string, whose first character is discarded. Meaningful words are therefore usually preserved, the effect on sentences can be dramatically random.

You might want to vary the definition of P between 2 and 10 and observe the result.