Perhaps we need a test, run under `make test`, to look for
cases where 'foo.html' is older than 'foo.md` or where
`index.html` is older than `README.md`, etc. ???
The unobfuscated code, which was put in deobfuscated/, has been turned
into alt code. In one case the already existing alt code was made alt2
and the unobfuscated code was alt. In the case of the ones with two C
files there, the one that did not require modification (to compile in
modern systems) were used as those are original.
In a few cases these changes suggested additional files: a test suite
Makefile for the alt code, a try.alt.sh script and maybe some other
things besides.
The bug status was updated for 2015/howe with a known bug: in particular
the test scripts do not work (at least not completely).
In the manifest all references (except for a file name that has not been
renamed - at least not yet) of 'deobfuscated' to 'unobfuscated': a minor
detail that might not matter much but it sounds ever so slightly better
(maybe). These other entries that had an entry_text change were
1995/garry and 2020/endoh2. Rebuilt .entry.json and index.html files for
this (and in the case of the moved code the index.html files also had to
be changed for that in addition to the Makefiles).
Anthony/@SirWumpus kindly provided these files. The source code and
their Makefiles are in a deobfuscated/ subdirectory (for each of the
three entries) but running make alt
from the entry directory works. It uses the deobfuscated version's
Makefile but copies the compiled binary to the entry's directory to keep
things clean (deobfuscated code separate from the entry) to simplify
using the deobfuscated versions.
Entries that had a test suite Makefile have a new one for the
deobfuscated code and a try.alt.sh script was added to 1992/ant and
1993/ant but the entry_text is a bit different than the usual to
indicate that it's the deobfuscated version.
It might be that the way this is done should be reorganised some but
that can be decided on later.
The entries from 2004 and 2005 have not yet been added because some
decisions have to be made as those are the ones with a configure script.
The manifest was updated and the .entry.json and index.html files were
updated. It is not clear yet if the inventory_order is right but that
will be looked at in the next day or two.
Thank you Anthony!
In most cases the word was changed to 'obfuscation' as it was about
obfuscation, not deobfuscation. In some cases like 1995/leo since the
file was (in 1995/leo) about a secret switch it was changed to
'secret.md' (and 'secret.html') but there were others like that as well.
One entry had the words 'spoiling the size rule' but this had been
changed to 'deobfuscating the size rule' which was obviously wrong.
In the latter YYYY/README.md files the judges had written after some
entries (brief summaries) '...
...We'll stop spouting spoilers now. Have fun exploring all the
entries!
but that was changed to:
...We'll stop spouting deobfuscation information now. Have fun
exploring all the entries!
which wasn't really about deobfuscation but just a brief summary of what
the entries did.
And in the most problematic case (at least for me :-), 2018/ferguson) I
had put a joke in:
... but it's the only Easter egg I won't spoil
but it was changed to 'won't deobfuscate' which not only is not what it
is but it spoilt the joke.
In some cases the word was changed back to 'SPOILER' (or similar) but in
most cases not. I believe it should be better now. There are some
caveats, however, as below.
Although make find_missing_links is okay I do not remember if this will
catch links that refer to '%%REPO_URL%%' or other pandoc tokens. This
means I might have to go back to some earlier years to verify links are
okay. That should not take that much time I hope.
It might also be that some wording can still be improved some but it is
hoped this will be discovered when checking links and looking over the
manifest (which obviously changed).
In 1991 the code blocks in the html files should look better with
smaller screens. In one entry, rince, an image was added as the
formatting is too complicated to get right. The text was changed from
two columns to one column and then a screenshot was taken so that it's a
bit easier to see with smaller widths. This looks fairly good on mobile
phones too. The only downside, of course, is if the web pages ever
change to have a different background or code colour it won't match but
it did not look right with mobile phones. This required a manifest
update.
In 1992 one entry's html file defeated me for now so I had to stop. This
can be looked at later. The last entry I am committing changes to is
1991/buzzard.1. It was buzzard.2/buzzard.2.design.md that is a big
problem and will have to be done another time.
There are many fixes made but a few questions remain so when I reach
those years I will address those then. Unfortunately, due to
infrastructure work right now, this is all I can say even though there
are a number of things I'd like to say.
While not strictly necessary, replacing the two ASCII tab characters
in the markdown copyright comment makes it easier to detect problematic
TAB indentation within markdown files.
After this commit, only 90 markdown files have leading ASCII TAB
characters. And again, while not strictly necessary, we can consider
running expand on those 90 markdown files to see what effect that
might have on the HTML files they produce.
Replace leading ASCII TAB characters with multiples of 8 ASCII SPACE
characters (the default action of the `expand(1)` tool) might have
an negative effect on some HTML formatting where **hack-a-round**
formatting was attempted to fix broken indentation caused by
problematic ASCII TAB characters.
Think of this as a baseline for evaluating leading
TAB characters within markdown files.
TODO: Consider either using `expand(1)` to replace leading ASCII
TAB characters with multiples of 8 ASCII SPACE characters AND/OR
modifying the appropriate `bin` tool to convert leading ASCII TAB
characters into multiples of 8 ASCII SPACE characters.
My original fix no longer worked, at least with clang in some systems,
because of more strictness in the compiler wrt implicit ints. As the
code does not use the Makefile but rather 'cc' (and in an unusual way)
'main()' now has an explicit int.
Also, what was previously documented as a bug to be fixed has been
changed to INABIAF as it was documented already. Thus it should not be
fixed. In fact the judges originally noted that if one specifies the
triggering input they should expect an infinite loop and compilation
failure.
In the case of this entry, it is so screwy that having the CFLAGS
conflicts with the -traditional-cpp option in some systems. Thus the alt
rule has ONLY the -traditional-cpp option. The thanks file notes this
oddity and how to view the diff between the original and the alternate
code.
Also the bugs file was changed to be worded like the README.md file.
The index.html file was improved for the fix to the Makefile (for the
alt build) and it also links to the specific lines in the code on GitHub
(see the index.html file how it talks about specific lines in the
judges' remarks).
It should be 'Location of winning authors' (as it is now) but by mistake
there was an extra space ('Location of winning authors'). Obviously
this is a huge commit as every html file with a menu (almost all) had to
be updated.
A few page names were changed and menu link (titles) were changed too.
By page names it means either DESCRIPTION or HEADER_2 in
bin/md2html.cfg. Although it looks better and is more consistent, there
might be one or two that can be further improved.
Naturally every html file that is markdown based was updated.
In some pages at the top it had 'and' but in the menu it had instead a
'&'. The menus (JavaScript and otherwise) now has 'and' to match the
pages. The file nojs-menu.html has been checked for broken links and
indeed one at least was fixed. Very few top level html files need to be
checked now. Some that are entirely generated should be okay but links
will still be checked to be sure.
Some cases of '(Mis)features' from the previous commit were also
corrected to '(mis)features' as this is also part of menu and page
consistency.
The files markdown.{md,html} have had the menus updated too but there
are some other changes that were works in progress. This file is not
thus completed but will be sometime soon.
The inc/md2html.cfg file was in this case updated for the keywords (not
that many would think of it, maybe, but since I was making another fix I
added the keyword 'ta') and more importantly HEADER_2. The file is not
just about fixing old entries but rather help in every other way too.
Thus it now reads 'Thanking people for their help'.
The thanks-for-help.{md,html} has also been fixed in the above way and
the 'thanks for all the fish' is now a link.
'Ta ta and thanks for all the fish :-)'
This is a fun one because the scripts that are used to update the
manifest did not report any problem because the problematic file (though
see below as I did rename another file too for very similar rationale,
also discussed below) actually exists on file system but when linked to
from a web server it does not exist. This is because the filename had
the html encodings for [ and ] (again see below) which the web server
interpreted as [ and ] but the file doesn't exist on the filesystem in
that form: instead it had the html encodings for those characters. This
file was
2011/dlowe/dlowe-aux-data/english-0/CIR_APE_08_doc%5B1%5D.txt
and it has been renamed to
2011/dlowe/dlowe-aux-data/english-0/CIR_APE_08_doc.txt
The other file h ad the literal [ and ] but as this is also not POSIX
safe the [ and ] plus what was in between it was removed. Thus the file
2011/dlowe/dlowe-aux-data/png-1/image_thumb[40].png
was renamed to just
2011/dlowe/dlowe-aux-data/png-1/image_thumb.png
Updated the manifest and regenerated the .entry.json and index.html
files.
As a side effect of the manifest and rebuild of the .entry.json and
index.html file two other entries were touched that somehow were not
done when I changed 'Best of show' to 'Best of Show' even though a git
diff will show the same thing (seemingly of course):
- "award" : "Best Of Show",
+ "award" : "Best of Show",
plus a diff in their index.html files.
Those entries are 1991/brnstnd and 2001/jason though I am not sure why
as I'm pretty sure other entries also had the same change made and they
did not show up here.
Nevertheless that problem should now be resolved and the links in
2011/dlowe manifest now work (at least those two have been checked for
validity: others will be checked when I verify format and links in that
entry which will not be done until after the top level html files and
the earlier years).
The other one cannot be restored or at least should not be as it floods
the screen in an unsuspecting way. If no arg is specified though, it now
will likely crash (previously because of the use of argv[1] later in the
code but now to prevent the code from flooding the screen if the number
is < 0).
The bugs.{md,html} files, 1984/laman/README.md (and index.html) file and
thanks files were updated. The thanks file has some additional fixes
that were already in place but are relevant to this commit.
I did not think of 'alt' at end of the line or 'alt version' (often if
not always at end of the line). This has been corrected.
As well I forgot to sort the manifest.numbers spreadsheet but that will
be in a commit that will be made in a bit.
This was done by:
sgit -e 's/alt code/alternate code/g' . ; git co tmp/OLD_manifest
as well as updating the tmp/manifest.numbers spreadsheet and exporting
to the CSV file (though that would not strictly be necessary).
The way this works means that the update manifest script does not need
to be run as it sgit(1) touched the .entry.json files (any that needed
to be updated) and so would any index.html files. An example for both
.entry.json and index.html files being modified due to manifest is
2012/kang.
Numerous Makefiles were updated, any try scripts that had 'alt code'
instead of 'alternate code' and README.md/index.html files (unrelated to
the manifest as 'alt code' was used in other places too) and obviously
the manifest.numbers spreadsheet.
However to be safe I will do a run of the manifest script in a bit even
though it should not be necessary. If no commits are made it means all
is good and if any commits are made for the manifest it means that I
did not think of something (or else I made another change after this).
Once upon a time after adding the entry to the bugs file it was changed
so that it should be a bug to be fixed and when verifying things since
it was very quick to fix I added it. It now has been restored to the
original.
The bugs file was updated and the thanks file was updated accordingly
along with the index.html and README.md files.
Once upon a time after I had put in the bugs file that there is no arg
check and it was a feature, not a bug, it was changed to bug status.
This was a very simple fix that I then made but it's not necessary
either so I have undone it to make it more like the original. Now the
only difference from the original is my fix so that it compiles with
clang. This means the bugs file was also updated as was the index.html
file and the thanks file (which also has some other fixes that are
unrelated).
This commit makes fixes (links and otherwise) up through 2001/anonymous
(unfortunately this will take more edits than I had hoped but I hope to
be done with this file and moving to another long file in the next few
days or so).
Broken links and various other things were fixed.
By 'up to 2000' I do not mean 2000 is done but rather that will be the
next year I will have to check.
For each year it now shows which IOCCC it was. In other words for 1984
the link title is now:
1984 - The 1st IOCCC
and 1985 is:
1985 - The 2nd IOCCC
and 1986 is:
1986 - The 3rd IOCCC
and so on up to 2020 which is:
2020 - The 27th IOCCC
This helps it stand out better and it shows which contest it was.
There were a few other fixes. This edit does NOT check further years
from yesterday's commit 2647827d94 and it
is possible I won't do more years until another day (though I started
1996 but nothing needed to be fixed, I think).
Other minor fixes in formatting were also made.
Rebuilt thanks-for-help.html.
This includes broken links and typos but also a stylistic change as
well. In particular each index.html file is preceded with the text:
Winning entry:
and the next line, the source code, is preceded with:
Winning entry source code:
This is to make them stand out more. It's not, maybe, immediately
obvious that the first links to index.html but I have not come up with a
way to make it obvious that looks nice as adding 'index.html' to
'Winning entry' might take from the fact that the section below is about
the fixes to the entry (or I might be taking it too literally too which
is entirely possible :-) ).
Missing links were also added for the years beyond 1995 at least for the
YYYY/index.html links. Those have not been checked for typos but when I
get to those years I will check those too.
I hope to get this file done in another two edits but probably no more
than three will be required.
Regenerated thanks-for-help.html file.
This is a large update that modifies every .entry.json file and fixes
many others. The changes of every .entry.json file are as follows:
- change 'entry source' to 'entry source code' [0]
- change 'original source' to 'original source code' [0]
- change 'directory path from top directory' to 'directory path from top
level directory'
[0] This is for consistency purposes. Other options were pondered but as
the index.html files refer to 'Alternate code' this was the simplest way
to go about it and it also feels more natural. A question was whether to
have 'entry code' and 'original entry code' or to have the word 'source'
added to it but I decided upon including the word 'source'. Another
question has occurred to me is whether or not 'original source code'
should instead be 'original entry source code' but that can be decided
upon later as that occurred to me after much of the files were already
rebuilt. The consistency that this commit has made is for the README.md
sections and in particular 'Alternate code'. One might wonder if that
should be changed to 'Alternate source code' as now the manifest
includes 'source' in the 'entry code' and 'original code' but the
manifest itself is what was actually updated and having 'source' feels
more natural for submitted files. After all not all entries have
alternate code. These questions can be decided on when looking at the
index.html files that have been rebuilt.
Changed 'alt code' to 'alternate code' where this was not already done
(in the manifest). It is questionable whether this should be done in
markdown files or not (in the README.md files section it already is done
but not necessarily in other places).
Many files had incorrect descriptions that have been checked.
Renamed 2020/endoh2/spoiler/spoiler.{md,html} to index.{md,html} so one
can go to just 2020/endoh2/spoiler and see the web page. Although the
manifest of 2 020/endoh2/index.html will link to it and that's probably
how most people will notice it it seems useful especially as the web
page links to the different files in spoiler/ or at least refers to
them, giving a description (kind of like the manifest in
2020/endoh2/index.html).
Due to the above changes all the entries had their index.html files
regenerated too.
There were likely other changes and fixes as well.
What has NOT been done is a check over all items, typos or otherwise,
though some typos have been fixed. Nonetheless this commit goes a long
way to resolving issue #1933.
Updated thanks file both with a missing <div> id and added a manifest
improvements section as the manifest is quite important.
We fixed an HTML error and improved the use of punctuation
in the footer, including the copyright.
This is a test using `make gen_top_html`.
TODO: If all is well, process `make www`.
We make better use of the rel HTML attribute.
We format the inc/footer.default.html so that it is a
slightly easier to read.
This is a test using `make gen_top_html`.
TODO: If all is well, process `make www`.