Entry source is now prog.c for IOCCC years 2014 thru 2020, or is now dirname.c IOCCC years 1984 thru 2013. To achieve this state, we renamed the following: renamed: 2004/hibachi/src/hibachi.c -> 2004/hibachi/hibachi.c renamed: 2012/omoikane/nyaruko.alt.c -> 2012/omoikane/omoikane.alt.c renamed: 2012/omoikane/nyaruko.alt2.c -> 2012/omoikane/omoikane.alt2.c renamed: 2012/omoikane/nyaruko.c -> 2012/omoikane/omoikane.c renamed: 2012/omoikane/nyaruko.orig.c -> 2012/omoikane/omoikane.orig.c Modified `bin/subst.entry-index.sh` to add to entry `index.html` file, links to the `Makefile` and the _C code_ to the top navigation bar. Changed `bin/subst.entry-index.sh` VERSION from "1.2.2 2024-02-25" to "1.3 2024-03-02". Moved printing the Inventory link in the top navigation bar from `bin/subst.entry-navbar.awk` to `bin/subst.entry-index.sh`. Changed `bin/subst.entry-navbar.awk` VERSION from "1.0.1 2024-02-23" to "1.1 2024-03-02". Moved printing the Inventory link in the top navigation bar from `bin/subst.year-navbar.awk` to `bin/subst.year-index.sh`. Changed `bin/subst.year-index.sh` VERSION from "1.0 2024-02-11" to "1.1 2024-03-02". Changed `bin/subst.year-navbar.awk` VERSION from "1.0 2024-02-11" to "1.1 2024-03-02". Added location names (both default and common) to `author.html`. Changed `tmp/gen_author_json.sh` VERSION from "1.0 2023-06-06" to "1.1 2024-03-04". Added location names (both default and common) to `author.html`. Changed `bin/gen-authors.sh` VERSION from "1.2 2024-03-09" to "1.3 2024-03-04". The manifest and the resulting `.entry.json` files have been changed for `2004/hibachi` and `2012/omoikane`. The Makefiles for `2004/hibachi` and `2012/omoikane` copy the source file into the "previously used location". The `make clobber` rule removes the copied source. The `.gitignore` files have been updated accordingly. Improved how the concept of IOCCC terms _entry_, _author_ and _submission_ are used in markdown files. Links to markdown files (files ending in .md) within the repo were changed to link to HTML files (files ending in .html). Special cases where `README.md` became `index.html` were modified accordingly. Fixed URL for `bugs.html` in Makefile comments. Fixed name of `bin/sgi.sh` referenced in comments in `.gitignore` files. Links to locations within the repo are now relative. For example a link to `/contact.html` may become `../contact.html' or '../../contact.html` depending on the directory level of the markdown file. Nearly all links with absolute URLs under _https://www.ioccc.org_ or `https://ioccc-src.github.io/temp-test-ioccc_ have been changed to relative paths within the repo. Some exceptions to this (such as referring to a GitHub repo) were preserved. Fixed a number of inside `faq.md` and `bugs.md`. Added HTML name tags (in the form of an _entry_id_) for each entry referenced in `bugs.md`. Fixed links from outside of `bugs.html` into `bugs.html` accordingly. Where FAQ entries are referenced, a named tag is used so that if a FAQ is ever renumbered, links outside of `faq.html` will still work. Changed the _inventory_order_ of a compressed tarball from _300_ to _100000_. While this may have been done for the manifest, this changed had not yet been propagated into the `.entry.json` files. Links to web sites that were in the for <URL> are now [URL](URL). Performed `name www` to process all of the above. Improved format of `authors.html`. Full names are now bold. Location codes are now links back into `location.html` and location names (both default and common) are now italics. Added _author_handle_ each author. Changed `bin/gen-authors.sh` VERSION from "1.1 2024-02-25" to "1.2 2024-03-09". Improved format of `location.html` as location codes are now bold, author counts in a given location are now bold, and location names (both default and common) are now italics. Changed `bin/gen-location.sh` VERSION from "1.0.1 2024-02-23" to "1.1 2024-03-04". Added italic location name after location code in entry `index.html` files. Changed `bin/output-index-author.sh` VERSION from "1.4.1 2024-02-23" to "1.5 2024-03-04". Added _Location of authors_ to the sidebar as a link to `location.html`. TODO: While nearly all of the above mentioned changes are likely correct, they likely introduced a few errors that need correcting.
author directory
The author/ directory contains a JSON file for each author of at
least one winning IOCCC entry. For each author, there is a JSON
file with the following name format:
author/author_handle.json
where author_handle is defined below.
author_handle
Each author of a winning IOCCC entry has an assigned author_handle,
an IOCCC unique string that matches this regex:
^[0-9a-z][0-9a-z_]*$
The author_handle, by default, is derived from the name of the author.
While there is a algorithm that maps the name of the author
(which can contain any UTF-8 characters) into a default
author_handle string, those who submit an entry to the IOCCC
are free to choose a different author_handle string.
An author who has won a previous IOCCC is encouraged to reuse their
author_handle so that new winning entries will be associated with the same
author or authors.
anonymous author_handle's
For an anonymous author, their handle is one of these forms:
Anonymous_year
or:
Anonymous_year.digits
The latter form is in case there are more than one anonymous author in a given year.
Anonymous author_handle's match this regexp:
Anonymous_[0-9][0-9][0-9][0-9][.0-9]*$
author_handle.json JSON syntax
The author_handle.json must have the following JSON members:
"no_comment" : "mandatory comment: because comments were removed from the original JSON spec",
"author_JSON_format_version" : "0.1 2023-05-22",
There must be the following JSON members:
"full_name" : "Your Full Name",
"sort_word" : "lowercaselast",
"location_code" : "XX",
"location_name" : "Formal location name",
"full_name"value is the author's formal full name."sort_word"value is the author's last name, mapped into lower case ASCII, as a JSON encoded string"location_code"value is a 2 UPPER CASE ISO 3166 code selected by the author"location_name"value is the formal name corresponding to the"location_code", in JSON encoded string form
A "sort_word" that is used to determine the position within the authors.html file,
an author and the entry they submitted are to be listed.
A sort_word matches this regexp:
^[a-z][0-9a-z]*
And there must be the following JSON members:
"email" : "user0@example.com",
"url" : "https://a.host0.example.com/index.html",
"alt_url" : "https://b.host0.example.com/index.html",
"deprecated_twitter_handle" : "@something",
"mastodon" : "@mastodon0@example.com",
"mastodon_url" : "https://example.org/@mastodon0",
"github" : "@github0",
"affiliation" : "an affiliation group",
"email"value is the author's email address as a JSON encoded string, ornullif not given"url"value is the author's home page URL as a JSON encoded string, ornullif not given"alt_url"value is the author's alternate or second URL as a JSON encoded string, ornullif not given"deprecated_twitter_handle"value is the author's twitter handle as a JSON encoded string, starting with "@", ornullif not given"mastodon"value is the author's Mastodon handle in "@user@server" form as a JSON encoded string, ornullif not given"mastodon_url"value is the URL as a JSON encoded string of the author's Mastodon page, ornullif not given"github"value is the author's GitHub username as a JSON encoded string, starting with "@", ornullif not given"affiliation"is the author's affiliation as a JSON encoded string, ornullif not given
If an author does not have one of the previous set of values, or wishes to not disclose it / keep it anonymous,
then the JSON value can be null. For example:
"email" : null,
"url" : null,
"alt_url" : null,
"deprecated_twitter_handle" : null,
"mastodon" : null,
"mastodon_url" : null,
"github" : null,
"affiliation" : null,
NOTE: The JSON value of null is NOT enclosed in double quotes.
The "winning_entry_set" is an array of JSON members that indicate
each of the IOCCC winning entries that the author is the author of. :-)
{ "entry_id" : "YYYY_dirname" }
The "YYYY_dirname" is a entry ID in JSON encoded string form.
Here "YYYY" is the IOCCC year, and "dirname" is the directory name
of the winning entry under the given year directory.
NOTE: Due to mis-features in the JSON spec, the final JSON member must NOT be followed by a comma. For example:
"winning_entry_set" : [
{ "entry_id" : "1987_somedir" },
{ "entry_id" : "2020_entrydir" },
{ "entry_id" : "2024_dirname" }
]
author_handle.json example
Here is a fictitious author_handle.json example:
{
"no_comment" : "mandatory comment: because comments were removed from the original JSON spec",
"author_JSON_format_version" : "1.0 2023-06-10",
"author_handle" : "first0_last0",
"full_name" : "First Middle Last",
"sort_word" : "lowercaselast",
"location_code" : "AU",
"location_name" : "Australia",
"email" : "user0@example.com",
"url" : "https://a.host0.example.com/index.html",
"alt_url" : "https://b.host0.example.com/index.html",
"deprecated_twitter_handle" : "@something",
"mastodon" : "@mastodon0@example.com",
"mastodon_url" : "https://example.org/@mastodon0",
"github" : "@github0",
"affiliation" : "an affiliation group",
"winning_entry_set" : [
{ "entry_id" : "1987_somedir" },
{ "entry_id" : "2020_entrydir" },
{ "entry_id" : "2024_dirname" }
]
}
Here is fictitious author_handle.json example where all entries that may be withheld are null:
{
"no_comment" : "mandatory comment: because comments were removed from the original JSON spec",
"author_JSON_format_version" : "1.0 2023-06-10",
"author_handle" : "first0_last0",
"full_name" : "First Middle Last",
"sort_word" : "lowercaselast",
"location_code" : "AU",
"location_name" : "Australia",
"email" : null,
"url" : null,
"alt_url" : null,
"deprecated_twitter_handle" : null,
"mastodon" : null,
"mastodon_url" : null,
"github" : null,
"affiliation" : null,
"winning_entry_set" : [
{ "entry_id" : "1987_somedir" },
{ "entry_id" : "2020_entrydir" },
{ "entry_id" : "2024_dirname" }
]
}
NOTE to authors
If you wish to update / modify information about yourself, you need to
modify your author_handle.json file via a GitHub pull
request.