Commit Graph
203 Commits
Author SHA1 Message Date
Cody Boone Ferguson 38ed2dcd45 Deal with shellcheck warnings in 2000/bmeyer 2024-01-21 05:26:29 -08:00
Cody Boone Ferguson bf3ebe435b Deal with shellcheck warnings in 2000/rince/try.sh 2024-01-21 05:21:01 -08:00
Landon Curt Noll d414b6d71f add quick-readme2index.sh, improve all-run.sh and readme2index.sh
Improved `all-run.sh` and `readme2index.sh` so that
certain command line options (e.g., -p, -P, -u, -U ...)
are only passed along to other tools if they are
given on the command line.

all-run.sh VERSION changed from "1.1.1 2024-01-19"
to "1.1.2 2024-01-20",

readme2index.sh VERSION changed from "1.1 2024-01-16"
to "1.1.1 2024-01-20".

Added `quick-readme2index.sh` that only calls
`readme2index.sh` if the `index.html` is not
a non-empty file, or of either `.winner.json`
and/or `README.md` is newer than `index.html`.

Updated all `index.html` files because the
the file contains a comment that includes
the newly modified readme2index.sh VERSION.
2024-01-21 00:21:40 -08:00
Cody Boone Ferguson 5e25056532 Add 2000/natori/try.alt.sh + improve try.sh
The try.alt.sh script is slightly different from try.sh in that the
order is reversed.

The try.sh script now at the end always starts out in a sequence of
northern hemisphere then southern hemisphere so that one can guarantee
to get that form. The try.alt.sh does the same but starts out with the
southern hemisphere first.
2024-01-20 05:56:01 -08:00
Cody Boone Ferguson ea4d465a54 Improve 2000/tomx/try scripts 2024-01-19 09:32:49 -08:00
Cody Boone Ferguson f7ecec003f Add 2000/schneiderwent/try.sh 2024-01-19 09:26:52 -08:00
Cody Boone Ferguson bcf5abfd04 Improve 2000/rince/try.sh 2024-01-19 09:17:34 -08:00
Cody Boone Ferguson ac860471da Improve 2000/primenum/try.sh 2024-01-19 09:12:37 -08:00
Cody Boone Ferguson 6252e3c692 Improve 2000/natori/try.sh 2024-01-19 09:09:57 -08:00
Cody Boone Ferguson 54ef14bbde Improve 2000/dlowe/try.sh 2024-01-19 09:06:38 -08:00
Cody Boone Ferguson 5b01e68512 Improve 2000/dhyang/try.sh 2024-01-19 09:04:06 -08:00
Cody Boone Ferguson 168f7dc919 Improve 2000/bmeyer/try.sh 2024-01-19 08:42:41 -08:00
Cody Boone Ferguson bd6bef9faa Minor fixes in 2000/anderson/try.sh 2024-01-19 08:36:34 -08:00
Landon Curt Noll bcc69ae454 update manifest as per recent file changes 2024-01-18 19:07:46 -08:00
Cody Boone Ferguson c416d9b692 Remove reference to jargon file in 2000/rince
The bugs.md file is all that's needed; the information is already there
in bugs.md and the purpose of having the 'STATUS: ...' lines in the bugs
and (mis)features section of the README.md files was to not have that.
Still having the reference to DISPLAY being unset being a problem seems
like a good idea.
2024-01-17 05:40:46 -08:00
Landon Curt Noll c1466f5165 build index.html for all winners
Updated manifest as per recent file changes.

Updated winner `.winner.json` to reflect the manifest changes.

Added [bin/all_run.sh](bin/all_run.sh) tool to run a command over
all winning entries.

These tools had slight improvements in the help usage message:

* bin/gen-author.sh VERSION="1.3.1 2024-01-16"
* bin/gen-inventory.sh VERSION="1.0.1 2024-01-16"
* bin/pandoc_wrapper.sh VERSION="1.3.1 2024-01-16"
* bin/subst.default.sh VERSION="1.1.1 2024-01-16"
* bin/subst.winner-index.sh VERSION="1.1.1 2024-01-16"

The `bin/readme2index.sh` tool was improved so that
if the `index.html` file exists and the tool forms
the exact same content, then the file `index.html`
file is NOT touched.

* bin/readme2index.sh VERSION="1.1 2024-01-16"

We used the following command to generate `index.html` files
for all winning entries:

```sh
bin/all_run.sh -v 3 bin/readme2index.sh
```

NOTE: We have not (yet) built HTML files above the winner directory
level (e.g., no year level nor top level HTML), nor have be built
non-index HTML files for winners.

NOTE: By default we are running `pandoc(1)` with:

```
--fail-if-warnings=true
```

This means that any problems with markdown to HTML
generates an error.  This is done to be sure that
the HTML conversion is clean.

We had to fix the following `README.md` files:

* `2000/rince/README.md`

The reference [^2] was never used.  We made a guess that [^2] applies
to the same spot as [^1].  Perhaps there is a better spot where
[^2] applies?

NOTE: For every reference, there MUST be some place where that
reference is used.

* 2012/vik/README.md

The string "$...$" is assumed to be a TeX encoded string.

NOTE: Every "$..$" needs to be backslashed as in "\$..\$".

* 2018/burton1/README.md

The reference [2] was duplicated.  We changed the
second [2] to [3].

NOTE: Every reference needs to have a unique number.

* 2020/carlini/README.md

The string "$...$" is assumed to be a TeX encoded string.

NOTE: Every "$..$" needs to be backslashed as in "\$..\$".

We also found 2 errors in the `author/author_handle.json` file set:

* author/Anonymous_2001.json

The `author/Anonymous_2001.json` file was missing.

* author/Jari_Arkko.json

The winner ID for `1989_jar.1` had a typo.
2024-01-17 00:32:39 -08:00
Cody Boone Ferguson ba0f1ea721 Fix heading level of 'Try' section
It was agreed to be '## Try:' but there were many files where it was
'### Try:'. This has been corrected.
2024-01-15 04:29:39 -08:00
Landon Curt Noll c6e6201209 release readme2index.sh version 1.0 2024-01-14
The initial release of `bin/readme2index.sh` tool that converts
`READMD.md` and various JSON files such as `.winner.json`
as well as "author/author_handle.json" files.

Applied the `readme2index.sh` tool to generate `2020/ferguson1/index.html`.

We generated the  `2020/ferguson1/index.html` by executing:

```sh
./bin/readme2index.sh -v 3 2020/ferguson1
```

NOTE: This above tool requires **pandoc to be installed**.
See the [pandoc web site](https://pandoc.org) for how
to install.  We used _HomeBrew_ to install it,
but there is also a _macports_ process as well.

NOTE: While the above web page does have formatting issues, it is
a first attempt data driven programmatic web page generation.

Some adjustments can be made by mostly improving `ioccc.css`,
and some perhaps by modifying how `bin/pandoc_wrapper.sh`
invokes pandoc.  But probably most of the improvements can
be made by fixing and improving `ioccc.css`.

TODO: Fix and improve the `2020/ferguson1/index.html`
web page by fixing and improving `ioccc.css`.

Moved scripts and tools needed to generate HTML pages
into a new `/bin` subdirectory.

TODO: Consider getting rid of the [build-ioccc
repo](https://github.com/ioccc-src/build-ioccc) and just use the
`/bin` subdirectory.

NOTE: Some links in the `2020/ferguson1/index.html`
web page do not (yet) exist.

TODO: Once the basic format of the `2020/ferguson1/index.html` web
page is somewhat reasonable, generate `index.html` pages for other
winners.  Generate the year level `index.html' files.
Generate the top level HTML files, including the missing
`location.html` file.

Greatly simplified the `.winner.json` file format,
removing a number of fields that were not strictly needed
for generating an inventory on a `index.html` page.

Updated various versions:

* `bin/gen-author.sh` VERSION="1.3 2024-01-14"
* `bin/gen-inventory.sh` VERSION="1.0 2024-01-14"
* `bin/manifest.winner.json.awk` VERSION="1.0 2024-01-14"
* `bin/pandoc_wrapper.sh` VERSION="1.3 2024-01-14"
* `bin/readme2index.sh` VERSION="1.0 2024-01-14"
* `bin/subst.default.sh` VERSION="1.1 2024-01-14"
* `bin/subst.winner-index.sh` VERSION="1.1 2024-01-14"
* `tmp/gen_path_list.found.sh` VERSION="1.1 2024-01-14"
* `tmp/gen_winner_json.sh` VERSION="1.1 2024-01-14"

The `.winner.json` file format from winner_JSON_format_version
"0.5 2023-11-04" to "1.0 2024-01-14".

All `.winner.json` files have been updated to use the
new `.winner.json` file format.

The manifest (`tmp/manifest.numbers` and `tmp/manifest.csv`) has
updated to use the new `.winner.json` file format.

The following procedure was used to generate the
`tmp/manifest.csv` manifest file:

0. open [manifest.numbers](manifest.numbers) in numbers: modify if/as needed

NOTE: Please try to keep the [manifest.numbers](manifest.numbers) spreadsheet
      in order order.  Use Organize -> Sort -> ((Sort Now)) to sort.

NOTE: Empty fields in the [manifest.numbers](manifest.numbers) spreadsheet
      are not allowed.  By default, a cell that is empty is colored
      as a warning.

1. File -> Export To -> CSV...
    * 1a. `[ ]` Include table names (unset)
    * 1b. Text Encoding: Unicode (UTF-8)
    * 1c. Click ((Save..))

2. Save As: manifest.csv
    * 2a. Select the `tmp` directory

3. Click ((Export))
    * 3a. If needed click ((Replace))

4. Execute ./tmp/[fix_csv.sh](fix_csv.sh)

NOTE: You must run the [fix_csv.sh](fix_csv.sh) in the above
      step in order to make the CSV file usable by other tools.

NOTE: If no changes are needed in the above step, the
      original file content will be restored.

5. Execute ./tmp/[gen_path_list.found.sh](gen_path_list.found.sh)

NOTE: The above step silently performs a `make clobber` at the
      top level, and so it takes a bit of time.

NOTE: If no changes are needed in the above step, the
      original file content will be restored.

6. Execute ./tmp/[check_path_list.sh](check_path_list.sh)

NOTE: The above step prints nothing and for an exit 0, then
      all is well.  If there is a problem, such as files
      found that are not part of the manifest, or files
      in the manifest that are not found, then an error
      message will be printed and the tool will exit non-zero.
      If errors are reported, go back to step 0 and
      correct the errors.

7. Execute ./tmp/[run_all.sh](run_all.sh) ./gen_winner_json.sh

NOTE: The above step will take a few seconds to run.  It will rebuild
      all `.winner.json` files for all winners.

NOTE: If no changes are needed in the above step, the
      original file content will be restored.

8. Execute `git status` and inspect changes

NOTE: Check in changes if and as needed.

NOTE: In a number of shell scripts under `bin/*.sh`,
      and in the `bin/manifest.winner.json.awk` script
      you will find comments of the form:

```
```

This is a note that when tools such as `jnamval` (and `jval` and `jfmt`) are
ready, these gross hacks should be replaced with calls to those tools.
Until they are ready, some must be careful with the layout of JSON files.

A number of bugs and typos have been fixed.

NOTE: Fixing typos in the files touched by this comment is welcome.
      This includes scripts, data files, text files, etc.

The _inventory_order_, _display_as_, _display_via_github_.  and
_winners_text_ fields of the [manifest.numbers](manifest.numbers)
spreadsheet were just set to have some initial values.
As they impact the inventory displayed on `index.html` pages,
their content needs to be improved.

NOTE: Improving the above mentioned fields of the
      [manifest.numbers](manifest.numbers) spreadsheet is welcome.
2024-01-14 22:03:28 -08:00
Landon Curt Noll 66a1c2efee Merge pull request #1845 from xexyl/birken2013-alt
Reword alt code suggestion in 2013/birken
2024-01-10 14:04:45 -08:00
Landon Curt Noll 259d8c8503 update manifest, remove inventory.html, update .winner.json
Update the manifest as per recent file changes.

Removed inventory.html from all winners as the inventory will be
added to the winner `index.html` instead,

Updated winner `.winner.json` files as per the above.
2024-01-10 14:03:53 -08:00
Cody Boone Ferguson 27032187ed Reword alt code suggestion in 2000/thadgavin 2024-01-10 09:48:47 -08:00
Landon Curt Noll 5859489b60 update .winner.json based on updated manifest.csv
We used:

```sh
cd tmp
./run_all.sh ./gen_winner_json.sh
```
2023-12-28 19:22:06 -08:00
Cody Boone Ferguson ba764a1833 Fix tmp/format-headers.sh, format headers
The script had "s surrounding the git ls-files command which turned it
to a single file which of course is wrong.

Ran script again fixing many README.md files that had incorrect number
of blank lines for critical headers.

This will have to be done a final but a good number of files have been
corrected.
2023-12-27 08:54:28 -08:00
Landon Curt Noll c9a023ff09 note old Email, header formatting, improve copyright and license
For the top level and year level README.md, where email are found,
a note was added to the effect that email addresses found above are
for historical purposes only, and should not be used today.

Old references to asking for fixes, comments, when content was used,
and next contest links were replaced with a general reference to the FAQ.

Harmonized the Copyright and License and copyright dates.
Now using Creative Commons "CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0
International".

The above Creative Commons will become the standard for the IOCCC.
Replaced old `png/by-sa-3.0-88x31.png` with a new ` png/by-sa.88x31.png` icon.
Updated the top level HTML files to use the license.
2023-12-26 14:43:30 -08:00
Cody Boone Ferguson 801f3fe90c Add missing comment in all Makefiles
The comment for the rule diff_alt_orig was missing. It was added like:

    sgit -e '/diff_alt_orig:/i \
    # diff alt and orig' '*Makefile'
2023-12-26 09:00:03 -08:00
Cody Boone Ferguson fed6b32f0a Remove redundancy in 2000/tomx/try.sh
After doing make all || exit 1 it checked for the existence of tomx and
it being executable but that should not be necessary after compilation.
2023-12-19 08:26:07 -08:00
Cody Boone Ferguson cb2d9c273d Minor improvements to 2000/dhyang/try.sh
The script dumped text too fast as there are numerous commands with long
output. The script now prompts with 'read'.

Minor fix in README.md file.
2023-12-11 05:45:34 -08:00
Cody Boone Ferguson ff201b7a76 Improve 2000/thadgavin alt code
Because of the Makefile improvements I made not too long ago the code
does not need #ifndef..#endif to set the values to sleep.
2023-12-10 12:11:25 -08:00
Cody Boone Ferguson b85e20aac3 Make alt code variables in Makefiles consistent
That is the comments have a general form and if they're for the alt code
they're defined in the alt code section. If they're for the entry and
the alt code they're above the CDEFINE variable.

The thanks file has been updated where it was needed.

Now only entries that have not been done need this improvement.
2023-12-08 04:48:23 -08:00
Landon Curt Noll 658669a73a improve .gitignore files, fix index.html links, sync CNAME
fix experimental web site links in experimental index.html

sync CNAME with https://github.com/ioccc-src/winner/blob/master/CNAME

improve .gitignore files

Added to each .gitignore file, comments on how to sort.

Put into winner .gitignore files, ignore *.dSYM files.

Put into winner .gitignore files, ignore indent.c,
indent.o and indent files.  This is done so that the
winner directory can more self contained.

We did not put into winner .gitignore files, however,
excludes of .-files as found in the top level .gitignore file.
As .-files are not allowed by mkiocccentry, the top level
.gitignore file remains sufficient.

Added to year level .gitignore files, excludes of
mkentry or iocccsize files as needed.

Sorted (via sort -d -u) all .gitignore file.
2023-12-08 04:06:44 -08:00
Landon Curt Noll 6206201d8a add make genpath rules, .path files, updated .top and .year
Add .path files to each winner directory: a file containing
the path to the winner directory from the top directory.

Changed YYYY/.year files to contain the paths, from the top
directory, if the winning directories for the given year.

Changed `/.top` to contain the IOCCC years.

Added `make genpath` rule to the top Makefile and the
year Makefiles to generate the above.

Added FAQ 6.8 to `faq.md` to explain the above.

Updated manifest to reflect recent changes to the list of files.
2023-12-08 01:29:43 -08:00
Cody Boone Ferguson 515105864d Improve redefining sleep time in 2000/thadgavin
Now one can do instead

    make SLEEP=555 SDL_SLEEP=555 alt

where SLEEP is the variable for the curses version and SDL_SLEEP is for
the SDL version. One need not specify both if they do not want to
redefine one or the other and of course one doesn't have to specify a
sleep time at all either.
2023-12-07 10:30:09 -08:00
Cody Boone Ferguson 07c10027f7 Add 2000/dlowe/try.sh, update bugs.md, format
The try.sh script also has some fixes in the author's remarks (as in
they were fixed in the author's remarks) - it had "s in the command line
rather than single quotes but some of these command lines had * which
would expand to the files in the directory, causing errors.

The bugs.md has been updated with the issue of not printing 'poot' when
it should. I did some debugging and removed some (obviously nonsense)
ideas I had put in before (without thinking, being too tired, whatever
other reason or reasons). The real issue is a very strange one to be
sure.

I am pretty sure the reason it does not work with macOS (this was
already noted but worth repeating) is the version of perl as the author
noted this as an issue. We still have it as a known bug (some platforms)
but I don't think it's possible to fix without a higher perl version and
neither MacPorts nor Homebrew seem to have this.
2023-12-06 06:40:24 -08:00
Landon Curt Noll f929afd344 update .winner.json
We used:

```sh
./run_all.sh ./gen_winner_json.sh
```

to update `.winner.json` files due to recent changes
made to `manifest.csv`.
2023-12-05 22:51:27 -08:00
Landon Curt Noll c7d006d8d2 improve make clobber for 2000/bmeyer 2023-12-05 03:37:34 -08:00
Landon Curt Noll 1e1f962c30 add to make clobber, removal of *.dSYM 2023-12-05 02:22:49 -08:00
Cody Boone Ferguson 8f26d33d15 Improve 2000/primenum/try.sh + update .gitignore 2023-12-04 11:52:58 -08:00
Cody Boone Ferguson 3f78913efe Add missing 2000/rince/try.sh 2023-12-04 11:45:40 -08:00
Cody Boone Ferguson 0d6ef76b59 Add markdown footnotes to 2000/rince 2023-12-03 11:38:01 -08:00
Cody Boone Ferguson d232798e5c Markdown footnotes added in 2000/bmeyer 2023-12-03 11:34:43 -08:00
Cody Boone Ferguson 8dffa154bc Add 2000/natori/try.sh
This script will show the current phase of White Face ('Moon' :-) ) in
artistic ways. Rather than write the different ways here I would suggest
one just try it out.
2023-11-23 01:49:40 -08:00
Cody Boone Ferguson 5e5a5a3536 Typo fixes in 2000/natori/README.md 2023-11-22 16:46:34 -08:00
Cody Boone Ferguson 30c59761df Mass fix Makefiles: $(MAKE) -> ${MAKE} 2023-11-19 06:31:28 -08:00
Cody Boone Ferguson bc35c37748 Improve how gcc/clang is detected in Makefiles
Rather than check if $(CC) IS gcc or IS clang check for $(CC) containing
gcc or clang. This is because in some systems or conditions the compiler
might not be called JUST gcc or JUST clang. For instance gcc in MacPorts
is called gcc-mp-13 (for example) but without this change one would have
to symlink gcc to gcc-mp-13 or copy it to gcc.

The FAQ has been updated to address this.
2023-11-18 06:10:02 -08:00
Cody Boone Ferguson 4dceab913a Add 2000/bmeyer/try.sh + formatting/typo checks
The try.sh script has improved the judges' suggested commands in that it
does not assume a certain number of columns. Instead it determines the
number of columns and uses that value. It warnings (before starting)
that if it's <81 it might not show up well. It also warns that it should
be white text on a black background.

The Makefile copies the program to the name the author gave the program.

The README.md file has been format/typo checked and fixed.

This completes the review of 2000/bmeyer and it should also complete the
review of 2000 the 2000/README.md file notwithstanding (this goes for
all the YYYY/README.md files).
2023-11-16 05:05:33 -08:00
Cody Boone Ferguson 6285bdee1a Format/typo check 2000/briddlebane 2023-11-16 03:30:11 -08:00
Cody Boone Ferguson 53ebc2365b Add commands to 2000/rince/try.sh 2023-11-15 10:14:51 -08:00
Cody Boone Ferguson 6e482a5a44 Add 2000/anderson/try.sh + format/typo checks 2023-11-15 07:44:53 -08:00
Cody Boone Ferguson b11061198a Format/typo check 2000/bellard 2023-11-15 06:23:15 -08:00
Cody Boone Ferguson 1fc8a46cca Add 2000/dhyang/try.sh, make void main int main
The try.sh script is as usual: replaces what the judges recommended one
try.

It was suggested to me a while back that when I encounter a void main
that I change it to int to be more portable so I have done that.

README.md file typo/format checked.

This should complete the review of 2000/dhyang.
2023-11-15 06:07:16 -08:00