I also renamed 'olympic.txt' to 'olympics.txt' as Olympics is clearer in
name (or maybe just more correct?).
Unfortunately I have no way to test the sound functionality. I just see
the graphics.
The bugs.md file has some documented features, not bugs.
The README.md file has been typo/format checked.
This should complete the review of 2006/sykes1.
The .gitignore has been updated to have '*.xbm' and '*.png' as it seems
that the point of maze.xbm and maze.png etc. are to not include the
images generated by the program and this is cleaner and easier.
The README.md file has been format/typo checked.
This should complete the review of 2006/stewart.
The alt code allows one to reconfigure the dimensions and the number of
iterations, based on the author's remarks (three #defines at the top of
the file).
Format/typo check README.md file.
Update bugs.md about the entry. It not only requires rwx memory but also
x86/x86_64 machines (this was already noted). This was said to be worth
fixing if possible (though in some systems it's impossible) so I kept it
that way. I was going to suggest alt version instead but since it seemed
like a good idea to have an alt version I decided to make it so that it
might be good if they update both versions.
The README.md file has been format/typo checked.
The alt code default usleep(3) value has been increased from 65000 to
75000.
This should complete 2006/sloane.
The try.sh runs the program on all the tofu input files, prompting the
user to press a key before running each one so they have time to look at
the output of the previous one.
The README.md file format and typo checked.
This should complete 2006/birken except that it uses gets(), not
fgets(), which has been added to the bugs.md file. I almost got it to
work but it crashes with computer.tofu so I did not change it. Will look
at this later, maybe, but the bugs.md has a diff of the single change
that almost works. I did not have the time to write where it fails but I
do happen to know at least the end result.
This is out of an abundance of caution as some of the versions of clang
report that main() can only have 0, 2 or 3 args to main(), not 4 or
anything else. The version (clang version 17.0.4) I have encountered
this with actually allows 1 arg but since clang is so picky I decided to
make a second unused arg (a char **) in case the devs decide to ruin
even more fun programs. There are other entries that also use one arg to
main() and I will try locating those too, first with the entries I have
not reviewed yet and then later on (time constraints notwithstanding)
the ones I have already reviewed.
Makefile updated with new -Wno- options for clang with linux.
Add alt code based on author's remarks.
Add try.sh along the lines of most the others.
Some of the README.md has been formatted. More has to be done another
time.
Add the video file of the cube being solved in case that video is also
lost (like the previous one was).
The pdf file I had added was incomplete. For some reason it was only one
page, not the full document. This has been fixed.
When I can do the README.md file that should complete the entry though
it's possible other issues will be found at that point.
There was an inconsistency between the README.md and the bugs.md file
that has been fixed.
As well the program requires one be able to read, write and execute
memory. This is not allowed in macOS with the silicon chip so I have
added the status of it not working with some platforms.
A few minor formatting fixes were made in the README.md file but I
didn't go through the file so it can't be considered done.
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.
Due to GitHub not serving nor rendering HTML files whose filename
starts with "." (dot), we renamed `.inventory.html` to `inventory.html`.
Renamed: `tmp/gen_dot_winner.sh` -> `tmp/gen_winner_json.sh`
Fixed URL generation for GitHub links in `inventory.html`.
The manifest was updated accordingly.
The `tmp/README.md` file was updated accordingly.
Fixed an incorrect author win for "1989_jar.2" in `author_wins.numbers`
and `author_wins.csv`.
Changed winner_JSON_format_version to "0.5 2023-11-04".
Added `gen_dot_winner.sh` tool to generate .winner.json and .inventory.html
for a winner. This tool uses [pandoc](https://pandoc.org) to convert
markdown to HTML.
Used this command to generate `.winner.json` and `.inventory.html` for
all winners:
```sh
./run_all.sh -v 1 -D 1 ./gen_dot_winner.sh
```
Updated `tmp/README.md` to reflect the above.
Retired "fake.gen_inventory.sh" to `tmp/OLD_manifest/fake.gen_inventory.sh`.
Added `-D level` flag to `run_all.sh` to specify the `-v level` for
the tool that is being run.
As requested on GitHub: a tool that will be written, readme2index, will,
as explained:
'... will take the converted HTML from the README.md markdown and
inject it into an HTML template. Things such title, award one and
author information will be injected into the HTML page ahead of the
HTML that was converted from the README.md markdown. Without going
into details of HOW at this time, the result will be a coherent HTML
index.html page with the winner title / award, winning author
information, and important file links come from other sources and
NOT from the README.md file.
The text from the 1st award line, thru the authorship information,
and up to but not including the "## To build:" line in the README.md
file will just get in the way. Moreover authors might be tempted to
try and maintain that top of README.md text instead of working with
the author/_author_handle_.json and winner .winner.json files.
This was done with my[0] sgit(1) (https://github.com/xexyl/sgit) tool like:
sgit -o -n -e '/^## To build:/,$p' '[12][0-9][0-9][0-9]/*/README.md'
[0] Is that shameless self-promotion? I don't know but I don't care: it
is generally a very useful tool and has been used in other repos too.
Besides, I've done it many times before and it's a great example that I
will be adding to the README.md file of the tool, one I hadn't thought
of doing.
Fixed cases where there was a bad trailing backslash.
Improved a few cases where a code block was needed
to highlight some text.
Changed a few cases where a code block needed to
declared as, say, a sh code block.
Fixed a few cases where the winner information was not properly formatted.
Plus a few nits and clarifying text was added.
We introduce a bit of fun, while specifying that something
is "supposed to happen".
NOTE: There is no need to change the INABIAF STATUS. The use
there is perfectly fine.
The alt code is based on the author's remarks that should allow users
with non-standard systems like DOS/Windows which have conio.h to use
this program, replacing read(2) and write(2) syscalls. It need hardly be
mentioned that I have no way of testing this so it's possible I did
something wrong but it seems not the case (whether anything has changed
since 2006 that might also break it is unknown).
The bug status has been updated both that one bug is not actually a bug
but appeared to be a typo and there also appears to be a missing file
(IMPORT.COM).
The `.id` files are no longer needed and so they were removed.
The `winner_id` (the contents of the `.id` files) are simply
a concatenation of "year" and "_" and "dir".
Adjusted `.inventory.html`, `tmp/README.md`,
`tmp/fake.gen_inventory.sh`, and the manifest according
to the above.
The new tool, tmp/fake.gen_inventory.sh, now adds
a fake .inventory.html file to each winner entry.
Once the winner2nventory tool is written, the .inventory.html
will contain links to all winner files listed in the inventory.
For now, the tmp/fake.gen_inventory.sh tool just creates
a placeholder file.
The entries referenced in `bugs.md` now have, below the
"To build:" section, a "Bugs and (Mis)features section text"
that matches the `bugs.md` status.
Several entries had their "STATUS" changed from:
"STATUS: INABIAF - please **DO NOT** fix" to:
"STATUS: known bug - please help us fix":
This was done because, while some of the bugs were minor,
inviting someone to try and fix the issue does nil harm.
In a few cases a more difficult bug was also changed to
the "please help us fix".
While we do NOT want to waste time fixing such entries NOW,
letting others become involved and to try to fix the entry
is a good thing as to encourages people to study the entry
and try to fix the entry. We don't need to accept a fix
that is offered, and of the fix transforms the source in
a less than desirable way, such a fix (if accepted) could
be become a alt source code.
In the case where we recommend trying the alternate code first, the
lower section is 'Original code' but this was at heading level 3 when
discussion suggests 2 so this was done as well:
sgit -e 's/^### \(Original code\)/## \1/g' '*README.md'
Change level 3 (###) to level 2 (##):
sgit -e 's/^### \(Alternate code\)/## \1/g' '*README.md'
which is the same as:
sgit -e 's/^### Alternate code/## Alternate code/g' '*README.md'
This is per discussion in GitHub.
As in:
sgit -e 's/# To run/# To use/g' '*README.md'
This makes consistent the message for how to use the program. 'How to
use' was chosen because one can run a program just by doing './foo' but
that doesn't imply that's how to use it but the purpose of the section
is how to use it.