Renamed road.to.obscurity road.to.obscurity.md and make it markdown
format.
Add try.sh and try.this.txt which the script uses.
Format check README.md file, road.to.obscurity.md, spoilers.md.
The man pages have not been typo checked yet. The try.sh script might be
improved and there is another issue that is pending that prevents
completion of this entry (or potentially does) but it is mostly
complete.
The file large is from dd(1) of /dev/zero to be large enough to cause
the program to run out of memory (but not too large for the repo, see
'wc -c' on it) as suggested by the judges' remarks.
A new make rule (or alias for mullender and back_to) called 'future' was
added for the theme. The try.sh script uses make future ('back_to' just
doesn't look that good in my eyes even when I added it).
The try.sh tries to stay in character with the award theme a bit too
though that will only be noticeable if you pay attention. I found the
films very boring (though maybe years later I would find it more
enjoyable) so I'm sure that something more fun could have been
added if I knew them more but I do not. Well I tried anyway.
The author suggested that one should change the value of 'q' to
'0x82000820000000' in order to see a bug that they carefully avoided. To
make it easy to do this the alt version was added.
The Makefile has been improved so it's easier to change the dimensions
of the game: the author had put in the Makefile two macros that have the
width and height and these now are set to WIDTH and HEIGHT defined in
the Makefile so that one can just do something like:
make WIDTH=500 HEIGHT=500 all
rather than being forced to update the Makefile to do this.
The README.md file has been format/typo checked.
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.
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.
With the exception of those on the IOCCC website (maybe one other place
but don't think so) the links were dead. These have been replaced for
historical purposes with a captured copy on the Internet Wayback
Machine.
This entry should now be entirely complete.
The README.md file now links to the downloaded copy. This entry is not
done but I needed the change to the README.md out of the way for a
commit I plan on that will be a mass edit to README.md files.
The try.sh script runs the commands that were in the try section. Having
this I discovered some errors in the avgtime.sh script which were fixed,
partly by having the cc.1 man page added (as not all systems have cc.1
in /usr/share/man/man1), in this case being gcc.1.gz (unzipped) from
Rocky Linux, and maybe other things besides. That script, avgtime.sh,
has also been updated to make sure at least two args are used and for
ShellCheck though some of the things ShellCheck wants to be done will
break the script so those warnings are disabled.
The README.md file has been format and typo fixed.
The war-and-peace.txt file has been added rather than forcing the script
(each time, in fact) to try and download it from Project Gutenberg.
The try.sh script runs the make command in the judges' remarks to make
it easier.
A warning is that if you have good eye-hand coordination and you're good
at games and you have too much time you might end up falling asleep
playing it as you'll probably never die. I only died because I was
trying to mark a reminder complete on the other side of the screen at
the same time as playing .. and I almost survived that .. and 'Cody's
also blind' as the joke goes in the family. That's probably why I ended
up dying. At that point I already had over 90 points.
Still the purpose is to make it easier to play if the default settings
are too frustrating. I contemplated playing with other settings but I
decided not to. An example where it might be improved is to let the user
pass in the environmental variables to override should they wish to but
it is not even clear to me how the variables should be sanitised so
that's an argument against it.
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.
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.
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.
This was done as:
sgit -e 's/\(# Alternate code\)$/\1:/g' '*README.md'
The heading levels and other things to do with alternate code that are
being discussed have not been addressed here. That will come later. This
is, as noted, just adding the missing ':' where it was missing.
The command does NOT touch it when it is not prefixed with '# ' because
there are cases where normal lines end with 'Alternate code' (these will
be turned into links later on).
All fields in both manifest.numbers and missing_manifest.numbers
have been filled in. However the data entered needs to be reviewed.
Previous efforts made on a spreadsheet line by line basis.
What needs to happen next is to review at an entry by entry level.
Then a review at the overall manifest level (via full_manifest.numbers)
for overall consistency.
The 2015/burton/src.doc.rot13 was un-rot13ed to become
2015/burton/src.doc.txt.
Updated 2018/poikola and 2019/poikola .gitignore and make clobber
to address when the tex file is rendered.
We now have 6 diff rules:
diff_orig_prog
diff_prog_orig
diff_alt_prog
diff_prog_alt
diff_orig_alt
diff_alt_orig
The FAQ for these diffs needs to be updated
as we have 6 types of diffs now.
The use of the markdown trailing whitespace to indicate
line break should NOT be done when the following line is empty.
This removes such improper use of whitespace in README.md files.
There was a comment in the form of:
... the liked/allowed ...
which should instead be:
... liked/allowed ...
and this was fixed with my sgit tool like:
sgit -e 's,the \(liked/allowed or compile\),\1,g' '*Makefile'
With the make indent rule there was a typo for indent as 'intent'. This
was fixed with my sgit tool like:
sgit -e 's/no intent\( tool found\)/no indent\1/g' '*Makefile'
Change (except in author's remarks in the wget command) the
/1984/mullender/mullender.c to be just mullender.c as it's in the entry
directory itself.
Format fixes in README.md as well.
This is not only to help with formatting - especially important in
markdown files - but it's no longer really necessary to do it. One
might not feel the need to do it in non-markdown files but I did it
anyway to be consistent. Thus instead of showing Un*x/UN*X it shows
Unix/UNIX.
A question of whether or not it should all be the same case is another
thing entirely but if this is desired at some point it should be easy to
do anyway - with some care in case it's in formatted text.
A note about the glob: why '.' when there are C files and other file
types where it could be dangerous to modify? Because I did a git grep
first so I knew that it was safe.