We thank Joel Yliluoma for rendering a record sided 1024x1024 image.
Sorted authors in `thanks-for-help.md` by last name.
Updated `2024/endoh1/README.md` with record sided 1024x1024 image.
Made tarballs `2024/endoh1/2024_endoh1.tar.bz2` and `2024/2024.tar.bz2`
due to the above edits.
Made tarballs `2011/2011.tar.bz2` and `2011/goren/2011_goren.tar.bz2`
based on previous edits.
Ran `make quick_www tar sitemap` to perform the above.
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.
The tarballs were updated.
Removed reference to the previous mod from `thanks-for-help.md`.
Updated the `2012/omoikane/index.html` page.
Updated sitemap.
Updated `bugs.html` to reflect the fix of all known bugs in `2000/dlowe`.
Added thank you to John Dalbec in `thanks-for-help.md`.
Added processing of "%%REPO_TOP_URL%%" tokens to `bin/subst.default.sh`.
Updated `find-missing-links.sh` to not falsely report missing links
when a "%%REPO_TOP_URL%%" token is used.
Changed `bin/subst.default.sh` VERSION from "1.3.2 2024-08-05"
to "1.4.0 2025-04-16".
Changed `bin/find-missing-links.sh` VERSION from "1.1.1 2024-04-28"
to "1.2.0 2025-04-16".
Due to a `pandoc(1)` bug fix, `2011/fredriksson/index.html` and
`2012/kang/index.html` were modified. The bug fix removed extraneous
whitespace that was previously introduced into HTML under certain
situations. These 2 changes do **NOT** impact the way web browsers
render these pages, however.
Updated sitemap.
Tested the above via `make www gen_status gen_sitemap timestamp` on macOS.
I've added some notes to `thanks-for-help` explaining the changes, and
removed the caveat from the README since the code is now much closer
to the original.
Fun fact: T for Tony is once again the only letter not used in fanf.c
As per the TODO:
- [ ] Verify the markdown code blocks are properly indented
```sh
find . -name '*.md' ! -name markdown.md -print0 | xargs -0 pcregrep -M '^``.*\n[^|`\n \t]'
```
Fixed `1998/dorssel/dorssel.md` and `thanks-for-help.md`.
Performed `make quick_www` to process the above.
The menu in all html pages for the FAQ was fixed to link to the step 0
(of how to enter the contest) and also it was renamed ('Enter the
IOCCC').
I also went through the most important sections of the FAQ (how to
enter and the mkiocccentry related questions) and checked the
register.html, pw-change.html and submit.html pages. It is possible I
have missed something but I think it's in pretty good shape nonetheless.
Make lines beginning (in markdown files) 'BTW' bold. Rebuilt the
respective html pages.
Slight update to abstract in two entries (1985/shapiro and
1994/shapiro). One is changing 'defines' to '#defines' and the other was
a typo fix.
Fixed make gen_next: added missing new files.
Various fixes in next/register.html (typos and other things).
At least one link in the FAQ was fixed (not to a file but a named
reference). The FAQ has not been checked entirely for broken links
because the changes have got a bit out of hand and an entire make www
will have to be performed due to a problem I discovered doing the below.
Other improvements were made.
When going through the FAQ for broken links another problem was
discovered, one that broke the scripts that rely on jstrdecode(1). These
have been fixed but need further testing with make www. Some index.html files
were modified; for why this can be done without make quick_readme2index
see below on what changed and why it could be done this way.
When going through the FAQ for broken links I discovered some
issues with some entries' synopsis. This means that a number of
index.html and .entry.json files have been updated. The reason the
index.html files could be modified without running the scripts which
would were broken due to the jstrdecode(1) issue (a missing option in
the scripts) is because I used sgit(1). However, a single README.md file
was modified and the index.html file was not modified just yet. That
will happen with make www. The change is not significant, however, so
this should be okay this time. As the next step is a long process I
therefore decided to commit these things to get them out of the way to
try and prevent the commit from being even larger.
Minor fixes in next/try.sh and next/try.alt.sh were also discovered when
going through the FAQ.
Minor typos were made in the FAQ.
The .gitignore file was also updated: with the last change I
accidentally made it so vim swap files without a filename are not
ignored. That means there have to be two vim swap file globs.
A typo fix was made which until corrected did not make sense.
Some other minor changes were made, to account for some missing things.
I believe that unless something glaringly bad is noticed, this should be
the last update of this file, unless of course something new comes up,
but if that does I guess it'll be after the great fork merge and
IOCCC28.
In the thanks file the try.sh/try.alt.sh example files were linked to in
next/ but they're actually under template/entry, as discussed in the
previous commit.
The file template/entry/Makefile.entry was moved to
next/Makefile.example. This matches the mkiocccentry repo in filename
and where it was before (template/entry) is not the right place as that
is for the template of making submissions into a winning entry whereas
next/ is for the next contest. The next/ seems like the most logical
place because the example file could be updated per contest for whatever
reason, perhaps by adding the year in it (or not). On the other hand,
the try.sh in template/entry is for submitters too but since the
bin/cvt-submission.sh script will copy the template files to a winning
entry if it does not exist it is left in template/entry, even if this
might not be ideal.
The references to the old Makefile.entry have been updated to
Makefile.example in the new path/filename.
Other changes had to be made too including updates to
bin/cvt-submission.sh. That script should be checked to make sure
everything is okay but as I have no way to test it that might have to be
done by the judges though I think it is okay.
Html files that have been changed that might need to be checked are:
0. faq.html (this one especially should be checked)
1. next/guidelines.html (though the judges will be checking this more)
2. next/rules.html (though the judges will be checking this more)
For the faq.html file, the Makefile.example and try.sh/try.alt.sh
scripts should be downloaded, not linked to on GitHub and it needs to be
clear that one should use the Makefile.example from the website (this
repo) rather than the out of date mkiocccentry repo.
For the guidelines and rules, and especially the guidelines, any files
linked should also be downloaded and not linked to GitHub. The text
should be clear already but it might be good to have a quick pass. The
judges will be going over these files before the next contest too. The
files should be downloaded here too, not linked to GitHub as submitters
need to download the files to make use of.
The thanks-for-help.html file was slightly modified but should be fine
too. In this case the GitHub file should be linked to.
The version of the rules and guidelines are from an earlier date of when
they were last modified for the above changes (as this was worked on
over a number of days).
The first one is now simpler and simply says some of the things that
might have changed. The other one, a sub-question, discusses the
Makefile rules and such.
This code is based on a 'fix' that causes another issue, and could
potentially be 'wrong' to have. It is better, I think, to pose the
challenge to the viewer to see if they can solve the problem themselves,
and if so if there are any issues with such a fix.
This video unfortunately comes from YouTube and so even if the link
eventually dies we should not have it here. A link was provided.
Updated the .entry.json and manifest in the index.html plus checked
other formatting issues.
Something that has bothered me VERY MUCH for A VERY LONG TIME is that
the honour roll (under my name) was not very humble and in some respects
rather redundant. I have fixed this a great deal and improved the
readability of it too (grammar and so on).
I also added a point about fixing many entries that no longer worked and
I also did this for Yusuke Endoh too as he was responsible for fixing
numerous (at the least) entries that no longer worked (and it should be
acknowledged and honoured just as much as what I did).
The FAQ I improved is related to one of the things that is in the above,
to do with alternate code. It now explains some of the purposes of
alternate code and why (in some cases) alt code was added when it might
or might not be useful (a judgement call that invariably is not always
perfect). It notes that in many cases the alternate code comes from the
author directly.
With these changes a problem that I felt was a VERY BIG problem should
be resolved now.
The code can recursively call main() as long by changing the name of the
argv and by a cast in the call.
Updated Makefile to disable a new warning.
Improved index.html file.
Amongst the changes here is that we do not need to have the hex or html
code (numbers) for open and close parentheses (in links) as there are
names. '(' is & followed by lpar; and the ')' is the same but 'rpar;'
instead. This makes it easier to remember and type and it generates the
same html as well (they are all valid). Now the markdown files are
consistent in this (in some cases hex was used and in others the html
code).
Although many markdown files were updated no html files needed to be
updated as it generates the same html. Even so I ran the appropriate
rules to do so just to verify this.
This is so one can see what the originally published code did. The
index.html has a bold important note that one should NOT send an email
to the address as it is not only no longer necessary but it is not known
if it is still valid. Unlike the index.html where the email was
omitted/redacted the alt code still has the email as the original code
as it is an exact copy thereof, including the typos in it.
Rebuilt .entry.json and index.html.
Updated .gitignore.
We quasi-canonicalized markdown links to FAQ entries.
**IMPORTANT NOTE**: This is a useful step in completing issue #2417. This commit is consistent with the top level TODO comment requirements. Nevertheless, this changes made by this commit needs to be examined and in some cases improved.
A link to an FAQ entry is of the form:
```
FAQ on "[the link text](....faq.html#string)"
FAQ on "[the link text](....faq.html#string)"
```
The "FAQ" is at the start of the line, or in rare cases is preceded only by whitespace.
The reference to the FAQ starts outside of the markdown link with the string **FAQ ON "**.
After the markdown link is a **"** followed by either the end of line or a single punctuation character such as a period or comma.
We reduced the size of "the link text" that refer to an FAQ to at most 3 words. In some cases the sentence and/or text surrounding the markdown link to a FAQ may need to be further adjusted to better accommodate this new style.
**IMPORTANT NOTE**: References to a FAQ entry are on a separate line.
p.s. When linking to the `faq.html` file itself, we use markdown of the form "`the [IOCCC FAQ](..../faq.html)`" and place the word "the" outside of the "IOCCC FAQ" link text.
Given the above system (and because references to an FAQ entry is on a separate line), the following command shows links to FAQ entries, sorted by FAQ entry "link #name" so that one may evaluate the way a given FAQ entry is referenced:
```sh
find * -name '*.md' -print0 | xargs0 grep -E '^[[:space:]]*FAQ on "' | sed -e 's/^\([^:]*\):\( *FAQ on "[^#]*\)#\([^)]*\)\()".*\)$/#\3\t\1\t\2#\3\4/' | sort
```
The above command shows the value of consistency when it comes to FAQ references.
**NOTE**: There are a few differences on how a given FAQ is references. That is probably OK as there is NOT an "total mandate" that all references to a given FAQ must have the same "link text" for example. On the other hand if references to a given FAQ can be identical, that might be helpful. We are certain that in some contexts the "link text" might need to change.
Should we decide to change the way FAQ are referenced, we will be able to modify identify and modify them with greater ease.'
Examine the changes made by this commit and adjust and/or improve as needed.
Performed `make www` to accomplish the above and to test under macOS.
This code was found on the author's web page about the entry and has
been added as prog.alt.c. I added the try.alt.sh script as well.
Manifest updated and rebuilt .entry.json and index.html files.
The line '... and thanks for all the fish' was changed to 'Thanks for All
the Fish' (despite not being the full title it seemed more correct this
way).
An additional look shows that the gets(3) call is for the dictionary
file. It is highly unlikely (though not impossible) that the dictionary
file would ever have a line 256 in length and this as well as because it
was documented is why I changed the buffer size back to the original.
The bug status does still suggest it would be nice if fgets(3) could be
used but it also lists the bugs and limitations the author stated in the
first place which actually does refer to the 256 limit.
I moved the notice to those who want a challenge up a bit in the
README.md file to be right above obfuscatory notes rather than before
those notes get into the details.
The entries 2004/hibachi and 2005/mynx have unobfuscated code now.
2004/hibachi has a configure script that is used along the lines of the
original entry (with some adjustments and fixes) and the hibachi.alt.c
had to have ctype.h included too. The directory src/localhost was copied
to src-alt/localhost but the rest of src/ was from Anthony. The Makefile
had to be updated to build this version.
2005/mynx does have a configure script but it is, just like the original
entry, unused and so the unobfuscated (in source-alt/) is also unused.
The mynx.alt.c was changed to mynx.alt2.c and the unobfuscated code was
made mynx.alt.c.
Updated manifest, rebuilt .entry.json and index.html files.
After a question is answered and taken care of (in one of 199[1-3]/ant -
not sure which one) issue #2513 can possibly be closed as complete
(though the manifest updates will have to be looked at more when 2004
and 2005 are reviewed).