We swapped `2024/anders` and `2024/straadt` by accident.
Sorry (tm Canada 🇨🇦) about that!
We **SINCERELY APOLOGIZE** to both **Anders Kaare Straadt**
and **Sebastian Macke** for the mix up!
We normalized some of the `.gitignore` files for some
of the 2024 winning entries.
Rebuilt 2024 tar files.
Updated `sitemap.xml`.
Ran `make update` to perform the above.
Congratulations to:
* 2024/anders - Prize in sound coding - layered music generator
* 2024/burton - Prize in pentagrammatology - wordle hard mode solver
* 2024/cable1 - Prize in bot talk - LLM inference engine
* 2024/cable2 - Prize in murky waters - salmon recipe
* 2024/carlini - Prize in perfect timing - Intel 4004 emulation
* 2024/codemeow - Prize in tray planting - bonsai generator
* 2024/endoh1 - Prize in patient pointillism - slow ray tracer in CPP
* 2024/endoh2 - Prize in solid body physics - rotating rigid body simulation
* 2024/ferguson1 - Prize in diabolical logistics - Oregon trail pact with the devil
* 2024/ferguson2 - Prize in yil-tas - Navajo code talker translator
* 2024/howe - Nice accent eh-ward - mini vi
* 2024/kramer - Prize in linguistic arithmetic - natural language numerical calculator
* 2024/kurdyukov1 - Prize in phased periodicity - phase of the Moon
* 2024/kurdyukov2 - Prize in art restoration - JPEG artifact removal
* 2024/kurdyukov3 - Prize in virtual quietus - gaming VM and doom
* 2024/kurdyukov4 - Prize in embiggening - encode without literals
* 2024/maffiodo - Prize in creative interpretation - Jav\*script interpreter
* 2024/mills - Prize in ℤ₃ - Infocom v3 story interpreter
* 2024/stedolan - Best one liner - icon from MD5
* 2024/straadt - Prize in imitative rebooting - OpenRISC CPU and Linux
* 2024/tmarrec - Prize in cyclonic coding - 3D tornado simulation
* 2024/tompng - Prize in quasi bijection - vortex encryptor decryptor
* 2024/weaver - Sur prize - rickroll
Ran `make update` to perform the above.
new file: 2024/burton/.entry.json
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 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.
We move the "_Thanks for the help_" out from under the "Entries"
menu and under the "About" menu to better balance the menus.
Besides, "_Thanks for the help_" is more **about** the IOCCC itself.
The sections have been modified a fair amount. The Entries menu has been
extended to have: Fixing entries, Updating author info, Thanks for the
help. The first two were moved from FAQ and the last one from About.
The rationale for these, in order: entries and authors have to do with
entries and most of the help involves entries. It also has to do with
website but in 'about' it does not seem the right place, unless maybe it
is renamed to 'Credits' or something (I am not suggesting this one way
or the other). This one is debatable but that was the rationale.
The Status menu has been extended to have: Markdown guidelines and
Security policy. The rationale is that the markdown guidelines are part
of contest guidelines and the security policy is about the status of the
entries and how if there are any security problems they will not be
addressed (instead of about the IOCCC).
The FAQ was extended to have: Compiling entries, Running entries, How to
help. The reason to not have compiling and running entries under Entries
is because this is 'how to' and also the menu was too long. How to help
seems like a good idea under FAQ too (was in About).
About was extended to have the new 'about.html' page (from about.md).
This is a rare case where a new file is useful as it fits under 'About'.
The menu now is: Home page, About the IOCCC, The Judges, Contact us. I
was pondering the 'About [the IOCCC]' at the top and also naming it
'About us' but it seemed like a link to index.html was necessary and as
for 'about us' it seemed less clear as to whether it was about the
judges or the contest itself. The FAQ has been updated slightly for
this.
After further inspection the bin/index.html and the inc/index.html links
were removed from the about section.
With these changes, renaming an item or slight reordering
notwithstanding, I believe that #2006 is probably in good shape.
The mobile About menu was missing the IOCCC markdown guidelines. This
has been added to the mobile menu but moved to 'Status' which is where
guidelines are (it has been renamed to be 'IOCCC Markdown Guidelines' to
match the style of the other items in that menu).
The About menu now has two more links, one for the website tools and the
other for the include files of the tools. It might be, looking at the
generated html files, better to have another menu instead, but what that
should be is unclear. The reason it might be better is because the
'About' menu is rather long. In retrospect it might be better to not
have the script include files in the html files but this can be decided
and dealt with later.
The script bin/find-missing-links.sh now ignores the directory NOTES/. A
better approach might be using git ls-files --exclude but a quick test
did not work right. Another option, at least for NOTES/, might be to use
'git ls-files --exclude-standard'.
The bin/index.html file has been updated.
Run make www to rebuild all html files.
A number of question answers have been merged and shortened somewhat.
Fix link in the menu of all html pages and the inc/ files that was
broken due to renaming an anchor.
The guidelines and rules have had a link fix (to the FAQ) as well as
some additional points added about the mkiocccentry toolkit.
More work in the FAQ needs to be done, including with the how to enter
the IOCCC, but as so much work has been done already I have decided to
make the commit to get these many important changes out of the way.
Some bug statuses have been changed so the bugs file was also updated
(some removed, some added).
The manifest of 2004/hibachi was fixed some.
The alt_url of 2004/gavare was fixed which required a rebuild of
authors.html.
For 2004/gavin a proper link to QEMU was added. It strikes me as it
possibly being a good idea to have an FAQ about QEMU (as it is not just
2004/gavin that might benefit from it) but I don't know and in any case
I have zero experience with it.
The entries 2004/gavare, 2004/gavin and 2004/hibachi have been checked
for format / display issues. This would suggest that the next entry to
look at is 2004/hoyle.
Fixed a bug in `bin/gen-authors.sh` that corrupted author_handle links in
`authors.html.
Changed `bin/gen-authors.sh` VERSION from "1.10.5 2024-07-28"
to "1.10.6 2024-07-28".
Performed `make make gen_authors` to accomplish the above and to test under macOS.
The shell variable `$REPO_URL` was often set to
`https://github.com/ioccc-src/temp-test-ioccc/blob/master` which was
not consistent with the variable name. In some cases the `$REPO_URL`
was used as the top level path for a git repo (w/o the `/blob/master`),
and in most cases was used as a GitHub URL path under which files may
be found (with `/blob/master`).
We change the shell variable `$REPO_URL` to be `$REPO_TOP_URL` and
use the value `https://github.com/ioccc-src/temp-test-ioccc`, w/o
the `/blob/master`, and adjust places where the GitHub URL path (with
`/blob/master`) is needed. A new shell variable `$REPO_URL` will contain
the `https://github.com/ioccc-src/temp-test-ioccc/blob/master` (with
`/blob/master`).
In tools that use `-u` the option was changed from `repo_url` to
`repo_top_url`. The `-u repo_top_url` will set the
`$REPO_TOP_URL` shell variable (w/o the `/blob/master`), and then set
the variable `$REPO_URL` as `$REPO_TOP_URL//blob/master`.
Fixed a shellcheck issue with `bin/tar-entry.sh`.
Corrected name of shell variable `$AUTHOR_GUTHUB_USERNAME` to be
`$AUTHOR_GITHUB_USERNAME`.
The substitution symbol `%%REPO_URL%%` has used in markdown
files remains as before. That is, REPO_URL is set according
to the shell variable `$REPO_URL` which includes `/blob/master`).
Fixed broken `author_handle` links in `authors.html`.
NOTE: Except for correcting links `authors.html` as noted above,
no HTML content was modified by these changes.
Changed `bin/add-dir.sh`VERSION from "1.1 2024-07-23"
to "1.1.1 2024-07-28".
Changed `bin/all-run.sh`VERSION from "1.3.4 2024-05-24"
to "1.3.5 2024-07-28".
Changed `bin/all-years.sh`VERSION from "1.0.3 2024-04-13"
to "1.0.4 2024-07-28".
Changed `bin/chk-entry.sh`VERSION from "1.1.8 2024-07-06"
to "1.1.9 2024-07-28".
Changed `bin/cvt-submission.sh`VERSION from "1.0 2024-07-22"
to "1.0.1 2024-07-28".
Changed `bin/gen-authors.sh`VERSION from "1.10.4 2024-07-13"
to "1.10.5 2024-07-28".
Changed `bin/gen-location.sh`VERSION from "1.4.3 2024-07-13"
to "1.4.4 2024-07-28".
Changed `bin/gen-other-html.sh`VERSION from "1.2.4 2024-05-31"
to "1.2.5 2024-07-28".
Changed `bin/gen-sitemap.sh`VERSION from "1.3.11 2024-07-22"
to "1.3.12 2024-07-28".
Changed `bin/gen-status.sh`VERSION from "1.5.6 2024-07-22"
to "1.5.7 2024-07-28".
Changed `bin/gen-top-html.sh`VERSION from "1.4.6 2024-05-24"
to "1.4.7 2024-07-28".
Changed `bin/gen-year-index.sh`VERSION from "1.1 2024-04-16"
to "1.1.1 2024-07-28".
Changed `bin/gen-years.sh`VERSION from "1.3.5 2024-07-22"
to "1.3.6 2024-07-28".
Changed `bin/md2html.sh`VERSION from "1.5.3 2024-07-22"
to "1.5.4 2024-07-28".
Changed `bin/new-year.sh`VERSION from "1.3.1 2024-07-23"
to "1.3.2 2024-07-28".
Changed `bin/output-index-author.sh`VERSION from "1.7.1 2024-04-28"
to "1.7.2 2024-07-28".
Changed `bin/output-index-inventory.sh`VERSION from "1.4.1 2024-04-28"
to "1.4.2 2024-07-28".
Changed `bin/output-year-index.sh`VERSION from "1.4.2 2024-07-07"
to "1.4.3 2024-07-28".
Changed `bin/pandoc-wrapper.sh`VERSION from "1.7 2024-06-22"
to "1.7.1 2024-07-28".
Changed `bin/quick-readme2index.sh`VERSION from "1.1.5 2024-05-19"
to "1.1.6 2024-07-28".
Changed `bin/readme2index.sh`VERSION from "1.2.5 2024-05-19"
to "1.2.6 2024-07-28".
Changed `bin/sort.gitignore.sh`VERSION from "1.1.7 2024-04-28"
to "1.1.8 2024-07-28".
Changed `bin/status2html.sh`VERSION from "1.4.1 2024-04-28"
to "1.4.2 2024-07-28".
Changed `bin/subst.default.sh`VERSION from "1.3 2024-04-20"
to "1.3.1 2024-07-28".
Changed `bin/subst.entry-index.sh`VERSION from "1.3.3 2024-04-13"
to "1.3.4 2024-07-28".
Changed `bin/subst.year-index.sh`VERSION from "1.1.3 2024-04-13"
to "1.1.4 2024-07-28".
Changed `bin/tar-entry.sh`VERSION from "1.3.8 2024-07-23"
to "1.3.9 2024-07-28".
Changed `bin/tar-year.sh`VERSION from "1.2.6 2024-07-23"
to "1.2.7 2024-07-28".
Changed `bin/untar-entry.sh`VERSION from "1.0.2 2024-04-13"
to "1.0.3 2024-07-28".
Changed `bin/untar-year.sh`VERSION from "1.0.2 2024-04-14"
to "1.0.3 2024-07-28".
Performed `make www` to accomplish the above and to test under macOS.
The previous url was the GitHub url but he has his own domain. The
alt_url is his article about the winning entry of his (of course if he
wanted something different he could do that but it's a good enough guess
for now).
The location of the link is in the About menu under the 'Contacting the
IOCCC' and above 'Thanks for the help'. At first I had it at the very
bottom, under 'IOCCC markdown guidelines', but it seemed better to have
it closer to contacting the IOCCC. This is the same location in the no
JavaScript menu (which, for those who do not know or forget, is not a
requirement except for some screen sizes).
The top level Makefile has a new 'security' rule. Updated make help.
Typo fixes in make help.
SECURITY.html has had a few updates as well: change the wording of entry
code is unsupported (it now says 'ALL CODE IN ALL IOCCC ENTRIES IS
UNSUPPORTED!!') and it now links to the mkiocccentry repo and how to
report a possible security vulnerability in that repo; as that IS
supported - and since there was reference to discussing security
concerns is in SECURITY.html - even though the entries will not receive
security updates - it seemed a good idea to have a link to report such
security issues in the mkiocccentry repo. Perhaps the FAQ needs to be
updated for this too.
While the use of `**font-weight: bold;` helps links standout in
most cases, there a few "_link heavy_" pages were the **MANY BOLD
LINK IN CLOSE PROXIMITY** looks excessive to the point of being
distracting. In areas where **nearly everything is BOLD, nothing
seems to stand out**.
Fortunately there seems to be only a very few places where this is a problem:
* `faq.html` - the table of contents
* `authors.html` - nearly the entire page
* `location.html` - nearly the entire page
* `years.html` - nearly the entire page
As an **bold** 😎 experiment we added to the CSS:
```css
/*
* To make a link non-bold, use: <a class="normal" href="url">link text</a>
*/
a.normal {
font-weight: normal;
}
```
And then modified select tools and a markdown file to "_unbold_"
those "_link heavy_" areas of the 4 pages above.
We don't claim that this is the best solution and there may be an
even better way to solve this, nevertheless we **do** think the it
improves the look and feel of the "_link heavy_" areas of the 4
pages above. For example, in `faq.html` beyond the table of
contents, the bold links look reasonable (although again there are
some quasi-"_link heavy_" areas down in the page look a bit too
bold, but perhaps not enough to warrant changing so we only altered
the table of contents).
In a few cases, while we were editing code that generated links,
we remove a few "**.**"'s where we didn't think they helped the
look and feel.
Change `bin/gen-authors.sh` VERSION from "1.10.3 2024-05-24"
to "1.10.4 2024-07-13".
Change `bin/gen-location.sh` VERSION from "1.4.2 2024-05-19"
to "1.4.3 2024-07-13".
Change `bin/gen-years.sh` VERSION from "1.3.3 2024-07-07"
to "1.3.4 2024-07-13".
Performed `make www` to accomplish the above and to test under macOS.
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.
Make link to entries and award titles bold like the other files that
have links to entries with the award title. This is done by modifying
the bin/gen-authors.sh script.
All the authors now have either a null URL, a valid URL or one on the
Internet Wayback Machine.
Where it seemed likely (say because the domain no longer exists) emails
were set to null also.
Now unless a bug is found in the script this really should finish the
checks of authors.html.
40 of authors which previously had an 'unknown location' were found in
the archive. Only five are left that are unknown.
Rebuilt location.html and authors.html.
Although I did not check every link in these pages I have checked many
and since both files are generated by a script it is probably safe
(enough) to say that these files can be marked as verified to look okay
and have valid links. This means that unless I have missed something,
the top level html files have all been checked except for bugs.html and
faq.html but these have to be done after the entries as they are likely
to be updated as the entries are being looked at.
The (same two) authors of 1995/heathbar and 1995/makarios had invalid
information, in one case email as well as in both the url and location.
The location was previously set to unknown (ZZ) but I knew from the
archive (which used to be what the README.md files which were the hint
files had until I was asked to remove that information which was done
November 2023) that it was US.
I also noticed, however, that the url was invalid and in one case the
email was invalid (it referred to the same domain).
With these problems in mind the url was changed to refer to the website
on the Internet Wayback Machine (in both), the email was set to null in
the one that had an email (now it's null in both) and the location_code
was set to US (in both).
I then did:
touch 1995/heathbar/README.md 1995/makarios/README.md
so that I could do:
make quick_www
as only two index.html files had to be updated. This also updated
authors.html and location.html, of course.
The FAQ was updated with more information on how to update author
information with the above two as an example and it now also says how to
validate json for those who want to make changes to author information
(or if anything else in the future is put in json).
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.
The json file had the email as a url by accident. The authors.html file
is not checked yet but will be soon, very possibly tomorrow, along with
the last (for the moment) top level html file (I think).
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.
This is a very large commit not only because I forgot to run make www
after updating the menus but I also forgot to do that after the update
to some of the award titles (only quick-readme2index.sh was used).
There is a typo fix in bin/README.md.
This commit does mean that md2html.cfg has to be added to bin/README.md
but that can be done later.
The steps run to verify this works okay:
make www
git status
git diff
git add -u
make update
git status
git restore $(git check)
The last is important as it is not time for make update. 'git check' is
an alias:
git diff --name-only
This fixes an inconsistency in case. The spreadsheet in tmp,
year_prize.numbers and the year_prize.csv files were updated also (with
the ./fix_csv.sh run under tmp/).
There was no need to manually update the index.html, any other html
files or .entry.json files as I used sgit(1) to change the case.
Now the is for text is not in italic so that only the letter is in
italics and the word is in a code block but the 'is for' is in normal
text. This looks nicer and makes the letter and the word stand out
better.
The "letter is for" is now inside HTML italics and
the C keyword is now inside HTML code.
Using lower case letters as the C keywords are
also in lower case and we prefer lower case.
Changed `bin/gen-authors.sh` VERSION from "1.10.2 2024-05-19"
to "1.10.3 2024-05-24" to perform the above.
Perform `make gen_authors` to perform the above.
We found cases where pandoc reported a conversion from markdown to
HTML problem that, while reported by the `bin/pandoc-wrapper.sh`
to `bin/md2html.sh`, which in turn reported to error to the tool
calling it, the tool calling `bin/md2html.sh` set `$EXIT_CODE` to
a non-zero value in order to delay the abort but then failed to act
on the non-zero `$EXIT_CODE` value at the end.
In a number of cases when `$EXIT_CODE` was set to non-zero, the
stderr message was labeled as a "Warning" instead of an "ERROR".
Fixed a bug in `bin/gen-authors.sh` that resulted the generation
of invalid markdown/HTML. An `<hr>` HTML tag inside a `<div>` span
caused pandoc to issue "Div at .. closing implicitly" at the _hr_
HTML tag line. For some reason, one cannot place a `<hr>`
(horizontal line) inside a `<div ... /div>` span.
Fixed a broken markdown links in `2020/endoh2/README.md` whose error
was hidden by one of the above mentioned problems.
Changed `bin/gen-authors.sh` VERSION from "1.10.1 2024-05-07"
to "1.10.2 2024-05-19" as a result of the above changes.
Changed `bin/gen-location.sh` VERSION from "1.4.1 2024-04-28"
to "1.4.2 2024-05-19" as a result of the above changes.
Changed `bin/gen-top-html.sh` VERSION from "1.4.6 2024-05-05"
to "1.4.5 2024-05-19" as a result of the above changes.
Changed `bin/gen-years.sh` VERSION from "1.3.1 2024-04-28"
to "1.3.2 2024-05-19" as a result of the above changes.
Changed `bin/quick-readme2index.sh` VERSION from "1.1.4 2024-04-13"
to "1.1.5 2024-05-19" as a result of the above changes.
Changed `bin/readme2index.sh` VERSION from "1.2.4 2024-04-14"
to "1.2.5 2024-05-19" as a result of the above changes.
Performed `make www` to test the above under macOS.
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.
Ran `make www` to perform test the above under macOS.