The IOCCC28 will now open on **2025-03-05 23:19:17.131107 UTC**
and enter the judging state on **2025-06-05 04:03:02.010099 UTC**.
Updated sitemap, added news for 2025-02-12, and updated the status.
Performed `make www gen_status gen_sitemap timestamp` on macOS to complete the above.
The IOCCC now has a [Discord server](https://discord.gg/2hVYnv83DD)!
Click the link to join the [IOCCC Discord server](https://discord.gg/2hVYnv83DD).
Fans of the IOCCC, hopeful **IOCCC28** contestants, and past winners of the IOCCC
are all encouraged to stop by and say hello.
Based on user input and suggestions, we have been working on some new
functionality for the [mkiocccentry tool set](faq.html#mkiocccentry).
In order to complete and fully test this new functionality, we need
additional time. Therefore the **IOCCC28 open** date as been **moved
forward for 19 days**. Moreover, and also by request, the contest will
remain **open for an additional month**.
The [40th anniversary of the IOCCC](faq.html#ioccc_start), which started
on **2024-12-29 23:58:13.213455 UTC**, is now scheduled to be **open**
from **2025-02-19 23:19:17.130705 UTC** to **2025-05-19 23:29:31.374143
UTC**. We will update the [IOCCC rules](next/rules.html) and
[IOCCC guidelines](next/guidelines.html) accordingly, before the contest opens.
Fixed link in `inc/guidelines.pending.hdr`.
Improved link in `inc/rules.open.hdr`.
Updated timestamps and sitemap with `make gen_status gen_sitemap timestamp`.
Changed `bin/status2html.sh` VERSION from "1.4.3 2024-08-05"
to "1.4.4 2024-12-29".
Performed `make quick_www` on macOS to complete 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.
Some broken links were fixed in some of the files like next/index.html,
next/pw-change.html, next/index.html and status.html.
Some wrong images were used in next/submit.html (or at least referred to
wrong if not wrong image).
Useful update to FAQ about the answers file in mkiocccentry.
There might have been other things.
This might be all that is needed for next/ wrt the register/change
password/submit but it's possible something has slipped through.
Added a new `next/submit.html` to move the "how to submit" form "in-line"
of the top FAQ entry into a new page managed by `next/submit.md`.
Thus, `next/submit.html` is a parallel to `next/register.html`
and `next/submit.md` is a parallel to `next/register.md`.
Changed the FAQ "faq.html#submit" and into "faq.html#enter".
Added individual tags for the steps in FAQ0.0.
Moved "faq.html#register" down to FAQ 0.0 step 2.
Added "faq.html#submit" for FAQ 0.0 step 5,
however elsewhere often "next/submit.html" is used.
Changed references for "faq.html#upload" to "next/submit.html".
We made a number of changes to the following markdown files to reflect the above:
- `about.md`
- `faq.md`
- `index.md`
- `markdown.md`
- `next/README.md`
- `next/README.md`
- `next/guidelines.md`
- `next/register.md`
- `next/rules.md`
- `nojs-menu.md`
- `status.md`
as well as these files:
- `bin/gen-top-html.sh`
- `bin/md2html.cfg`
and added:
- `next/submit.html`
- `next/submit.md`
Perform `make www` and `make gen_status` to perform the above and test under macOS.
TODO: Add images about the mailing list to `next/register.md`. See the line:
```
XXX - **put images and other details about joining the mailing list here** - XXX
```
Added a new `next/register.html` that is required by the mailing list server.
The `next/register.md` still contains a big **XXX - put more data here - XXX**
as a placeholder for information about the mailing list registration process.
Improved the status text for `faq.html`, `next/index.html` and `status.html`
via `faq.md`, `next/README.md` and `status.md`. We also removed the
excessive links to IOCCC and instead use the term "contest" where applicable.
IMPORTANT CHANGE: Registration be available when the contest is both pending and open.
We made a number of changes to `faq.md`, `next/README.md` in an attempt to
reflect the above.
Changed `bin/gen-status.sh` VERSION from "1.7 2024-09-23"
to "1.8 2024-11-23".
Changed `bin/gen-top-html.sh` VERSION from "1.4.9 2024-08-11"
to "1.4.10 2024-11-23".
Perform `make www` and `make gen_status` to perform the above and test under macOS.
TODO: Change **XXX - put more data here - XXX** in `next/register.md` for information
about how to join the mailing list.
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.
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.
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 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.
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.
For the improvements to the script, besides a typo, a link to the FAQ
(for submitting entries) has been added and a link to the GitHub issues
page (the new issue page) has been added in the case where an unknown
status appears in the status.json file.
The news update is that more progress has been made in that one of the
longer files to check for invalid links is done (thanks file) and that
two long files are left but that instead of looking at those two first
the other html files will be looked at first as it's quite possible that
both will have to be updated in some way or another as the other files
are being edited. Indeed this has happened numerous times already. This
way will save time and prevent having to look at those files a second
time. It also notes that some of the top level html files have also been
reviewed (see below) and a link was fixed (added a <div id="news"> for a
link that was linked to). I am fairly certain that I also fixed some
formatting problems and some links were fixed as well.
The status.md/status.html file has been updated with some links added,
more div blocks (for each section describing the status.json file),
which are used, slight formatting updates and possibly some other things
as well. As for some of the links we might say that it's 'statuses all
the way down' :-)
With this commit I am happy to report that some other top level files
have also been verified for invalid links:
judges.html
news.html
status.html
As the news.html file will be updated it is entirely possible that some
fixes will have to be made but the links up to and including 08 June
2024 (unless more changes are made today of course) need not be checked
again.
More top level html files (which include those in next/ and other
subdirectories that are not of the entries) also have to be checked but
these should also go relatively quickly.
Regenerated status.json file as the news has been updated.
Fixed errors in `1991/davidguy/Makefile`, `2000/bmeyer/Makefile`
and `2012/kang/Makefile` where a multi-line `CSILENCE` make variable
was not properly continued onto the next line.
Improve the output of `make quick_www` and `make www` no be less
verbose and more informative. Doing this allowed us to uncover
some bugs in the above mentioned entry Makefiles.
The `make quick_www` and `make www` no longer perform a
`make gen_status`.
The `make gen_top_html` rule, via `bin/gen-top-html.sh` will form
`status.html` based solely on the contents of `status.md`. Only
the `make gen_status` rule will modify `status.md` if needed, and
then rebuild `status.html` if needed.
The `status.html` file was updated to reflect the common way that
`make gen_top_html` forms this file. The `make timestamp` performs
a `make gen_top_html` after running `make gen_status` so that the
resulting `status.html` file matches what `make quick_www` and
`make www` would produce.
Changed `bin/gen-top-html.sh` VERSION from "1.4.5 2024-05-19"
to "1.4.6 2024-05-24" to perform the above.
Improved the text written by `make help`.
Added "for $TOOL" to the debug output of `bin/all-run.sh` to
help identify the tool performing the action.
Changed `bin/all-run.sh` VERSION from "1.3.3 2024-04-13"
to "1.3.4 2024-05-24" to perform the above.
Moved `make gen_other_html` after `make entry_index` and after the
`make quick_entry_index` in `make quick_www` and `make www`.
Perform `make quick_www` to perform the above and test under macOS.
Perform `make www` to perform the above and test 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.
The `bin/gen-status.sh` will report that the given markdown file
(`next/rules.md` or `next/guidelines.md`) is the source of the
generated HTML file. This is so that the HTML produced by either
`make gen_status` or `make gen_top_html` will generated the same
HTML comments. Moreover the comments in `next/rules.html` and
`next/guidelines.html` refer to the markdown file as the source of
the information instead of a tool such as `bin/gen-status.sh`.
Changed `bin/gen-status.sh` VERSION from "1.5.1 2024-04-28"
to "1.5.2 2024-04-30".
Added news for 2024-04-30 into `news.md`.
Make news dates "less shouty".
Ran `make www` to perform the above.
Added `bin/find-missing-links.sh` tool to check for
markdown links to missing local files.
Regarding the missing link tool:
```
Here be extended regular expression magic dragons! :-)
```
Added `make find_missing_links` to the top level Makefile.
Added `make find_missing_links` to `make www` and `make quick_www`.
Ran `make www` to perform the above.
TODO: Fix markdown links to missing local files.
For browsers that have JavaScript disabled, topbar puts up
a link that reads "Please Enable JavaScript" instead of the
so-called "hamburger menu" icon.
Fixed a number of internal links that were broken
when by commit `e7d69bc23270e8ad73d391d15d4c996ffbd33cc3 and
perhaps a few other earlier commits.
Ran `make www` to perform the above.
The icons used to show the menu open (`png/hamburger-icon-open.png`)
and closed (`png/hamburger-icon-closed.png`) have been added.
Changed `inc/topbar.default.html` to use the png icons instead
of a svg file.
A new page `nojs-menu.html` has been added for when
JavaScript is disabled.
Changed `bin/gen-top-html.sh` VERSION from to "1.4.4 2024-04-21"
to "1.4.5 2024-04-23".
Sorted top sections in `inc/md2html.cfg` and added
a section for `nojs-menu.md`.
Fixed `ioccc.css` so that the topbar and related pulldown
menus had the correct background colour.
Ran `make www` to perform the above.
TODO: Detect when JavaScript is disabled and display:
Please
Enable
JavaScript
As a link to the new `nojs-menu.html` page.
TODO: Fix a problem on wide screens where some of
the righthand edge pulldown menus are cutoff.
TODO: Fix the 5 HTML 5 errors introduced by the topbar code.
The topbar, by way of JavaScript, now works
on mobile devices such as cell phones and
tablets.
Internal links for entries from 1984 thru 2015
have been adjusted.
Ran `make www` to perform the above.
TODO: Fix some color issues on topbar.
TODO: More testing!