Files
ioccc/author
Cody Boone Ferguson 205fa25ced Change references of many terms to new names
This is a HUGE commit and this task is not done. There are still some
changes that might need to be discussed and since so much is done here I
think it's better to let this go through and then make sure everything
is okay. When the remaining references are discussed they can also be
changed.

I did NOT include changes in the tmp/OLD_manifest directory.

Some of the changes in this commit (it might be exhaustive but it might
not be - not sure):

- In the Makefiles the WINNERS was renamed AUTHORS.
- References to winners.html were changed to authors.html.
- The FAQ named anchor 'fix_a_winner' was renamed 'fix_an_entry'.
- The JSON fields (or whatever they're called) 'winner_id' and
'winner_JSON_format_version' were changed so that 'winner' is 'entry'.
- In scripts for entries 'IOCCC winner' was changed to 'IOCCC entry'.
- 'winners_text' is now 'entries_text'. It might be better to be
'entry_text' as it's per entry but this was not noticed at first. Since
this is easy to fix I am holding off on this for the meantime.
- The script tmp/update-manifest.sh now has the commit log messages
changed to the correct terms as well.

The index.html files were updated as well with any of the above
changes.

There are some references that should NOT be updated. Two examples
caught (and maybe more have slipped through that will have to be changed
back): in 1984/anonymous/README.md the author wrote back to Landon after
being told about the famous tattoo and they used the words:

    .. my entry will be the first IOCCC winner ..

but since this comes from the author it should remain so.

The other one is that winners.html should still refer to winners.html as
it informs people that it's been moved to authors.html (it does redirect
too but even so if it was changed it would defeat the purpose of the
message).

With paths like authors.html I tried to copy paste so that hopefully
there are no typos. It is possible that I did not end up doing this with
all but these can be fixed when discovered.
2024-02-13 07:31:36 -08:00
..

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 winners 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, or null if not given
  • "url" value is the author's home page URL as a JSON encoded string, or null if not given
  • "alt_url" value is the author's alternate or second URL as a JSON encoded string, or null if not given
  • "deprecated_twitter_handle" value is the author's twitter handle as a JSON encoded string, starting with "@", or null if not given
  • "mastodon" value is the author's Mastodon handle in "@user@server" form as a JSON encoded string, or null if not given
  • "mastodon_url" value is the URL as a JSON encoded string of the author's Mastodon page, or null if not given
  • "github" value is the author's GitHub username as a JSON encoded string, starting with "@", or null if not given
  • "affiliation" is the author's affiliation as a JSON encoded string, or null if 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 winner 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.