add to FAQ
Added: - [5.5 - How may I correct or update IOCCC author information?](#faq5_5) - [6.5 - What is an author handle?](#faq6_5) - [6.6 - What is a author_handle.json file and how are they used?](#faq6_6) - [6.7 - What is a winner_id?](#faq6_7)
This commit is contained in:
1 parent
327b7c645c
commit
f112155e78
1 file changed
+628
-3
@@ -50,6 +50,7 @@ other inconsistencies with the original entry?](#faq4_3)
|
|||||||
- [5.2 - How may I submit a fix to an IOCCC winner?](#faq5_2)
|
- [5.2 - How may I submit a fix to an IOCCC winner?](#faq5_2)
|
||||||
- [5.3 - How may I report an IOCCC web site problem?](#faq5_3)
|
- [5.3 - How may I report an IOCCC web site problem?](#faq5_3)
|
||||||
- [5.4 - How may I submit a fix to an IOCCC web site?](#faq5_4)
|
- [5.4 - How may I submit a fix to an IOCCC web site?](#faq5_4)
|
||||||
|
- [5.5 - How may I correct or update IOCCC author information?](#faq5_5)
|
||||||
|
|
||||||
## Section 6 - [Miscellaneous IOCCC](#faq6)
|
## Section 6 - [Miscellaneous IOCCC](#faq6)
|
||||||
- [6.0 - How did an entry breaks the size rule 2, win the IOCCC?](#faq6_0)
|
- [6.0 - How did an entry breaks the size rule 2, win the IOCCC?](#faq6_0)
|
||||||
@@ -57,6 +58,9 @@ other inconsistencies with the original entry?](#faq4_3)
|
|||||||
- [6.2 - May I mirror the IOCCC web site?](#faq6_2)
|
- [6.2 - May I mirror the IOCCC web site?](#faq6_2)
|
||||||
- [6.3 - May I use parts of the IOCCC in an article, book, newsletter, or instructional material?](#faq6_3)
|
- [6.3 - May I use parts of the IOCCC in an article, book, newsletter, or instructional material?](#faq6_3)
|
||||||
- [6.4 - Why do you sometimes use the first person plural?](#faq6_4)
|
- [6.4 - Why do you sometimes use the first person plural?](#faq6_4)
|
||||||
|
- [6.5 - What is an author handle?](#faq6_5)
|
||||||
|
- [6.6 - What is a author_handle.json file and how are they used?](#faq6_6)
|
||||||
|
- [6.7 - What is a winner_id?](#faq6_7)
|
||||||
|
|
||||||
|
|
||||||
# The IOCCC FAQ
|
# The IOCCC FAQ
|
||||||
@@ -1349,8 +1353,6 @@ section may offer you important fixing clues.
|
|||||||
|
|
||||||
### We welcome your help on fixing the IOCCC web site
|
### We welcome your help on fixing the IOCCC web site
|
||||||
|
|
||||||
XXX
|
|
||||||
|
|
||||||
|
|
||||||
### <a name="faq5_1"></a><a name="pullrequst"></a>FAQ 5.1: How do I report a bug in an IOCCC winner?
|
### <a name="faq5_1"></a><a name="pullrequst"></a>FAQ 5.1: How do I report a bug in an IOCCC winner?
|
||||||
|
|
||||||
@@ -1455,7 +1457,7 @@ If you see lines containing:
|
|||||||
```
|
```
|
||||||
|
|
||||||
This means that the file is generated by a tool from the
|
This means that the file is generated by a tool from the
|
||||||
[build-ioccc](https://github.com/ioccc-src/build-ioccc) repo
|
[build-ioccc repo](https://github.com/ioccc-src/build-ioccc)
|
||||||
using files found in the
|
using files found in the
|
||||||
[ioccc-src/winner repo](https://github.com/ioccc-src/winner) repo.
|
[ioccc-src/winner repo](https://github.com/ioccc-src/winner) repo.
|
||||||
|
|
||||||
@@ -1482,6 +1484,24 @@ When in doubt, consider opening up an [IOCCC issue](https://github.com/ioccc-src
|
|||||||
See [FAQ 5.3](#faq5_3) for information on opening up an IOCCC issue.
|
See [FAQ 5.3](#faq5_3) for information on opening up an IOCCC issue.
|
||||||
|
|
||||||
|
|
||||||
|
## <a name="faq5_5"></a>FAQ 5.5: How may I correct or update IOCCC author information?
|
||||||
|
|
||||||
|
Authors of IOCCC winning entries are kept in JSON files of the form:
|
||||||
|
|
||||||
|
```
|
||||||
|
author/author_handle.json
|
||||||
|
```
|
||||||
|
|
||||||
|
where _author_handle_ is an author handle. See [FAQ 6.5](#faq6_5) for more
|
||||||
|
information about an author handles.
|
||||||
|
|
||||||
|
The contents of these JSON files contain the best known information
|
||||||
|
about authors of IOCCC winners. See [FAQ 6.6](#faq6_6) for information
|
||||||
|
about the contents of these JSON file and how they are used.
|
||||||
|
|
||||||
|
XXX
|
||||||
|
|
||||||
|
|
||||||
## <a name="faq6"></a>Section 6: Miscellaneous IOCCC
|
## <a name="faq6"></a>Section 6: Miscellaneous IOCCC
|
||||||
|
|
||||||
|
|
||||||
@@ -1560,3 +1580,608 @@ exaggeration](https://books.google.com/books?id=ms3tce7BgJsC&lpg=PA134&vq=%22the
|
|||||||
p.s. Here is an image of F. D. C. Willard:
|
p.s. Here is an image of F. D. C. Willard:
|
||||||
|
|
||||||
[F D C Willard](png/F.D.C.Willard.png)
|
[F D C Willard](png/F.D.C.Willard.png)
|
||||||
|
|
||||||
|
|
||||||
|
### <a name="faq6_5"></a><a name="author_handle"></a>FAQ 6.5: What is an author handle?
|
||||||
|
|
||||||
|
An `author_handle` is string that refers to a given author and is unique to the
|
||||||
|
IOCCC. Each author has exactly one `author_handle`.
|
||||||
|
|
||||||
|
For each `author_handle`, there will be a JSON file of the form:
|
||||||
|
|
||||||
|
```
|
||||||
|
author/author_handle.json
|
||||||
|
```
|
||||||
|
|
||||||
|
See [FAQ 6.6](#faq6_6) for information about the contents of these JSON file and
|
||||||
|
how they are used.
|
||||||
|
|
||||||
|
Because the `author_handle` is used to form a JSON filename, the string must be
|
||||||
|
POSIX safe string. Furthermore, the `author_handle` must be an ASCII
|
||||||
|
string that matches this regexp:
|
||||||
|
|
||||||
|
```re
|
||||||
|
^[0-9A-Za-z][0-9A-Za-z_]*$
|
||||||
|
```
|
||||||
|
|
||||||
|
Default `author_handle`'s do not have multiple consecutive `_` (underscore)
|
||||||
|
characters. Nevertheless, multiple consecutive `_` (underscore) characters are
|
||||||
|
allowed. Contest submitters who wish to override their default `author_handle` may do so.
|
||||||
|
|
||||||
|
The `author_handle` 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 if they so
|
||||||
|
desire.
|
||||||
|
|
||||||
|
An `author` who has won a previous IOCCC is encouraged to reuse their
|
||||||
|
`author_handle` so that new winning entries can be associated with the same
|
||||||
|
author.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
NOTE: even if the directory name is not `anonymous` the above rules apply as in
|
||||||
|
in the case of [2005/anon](/2005/anon/anon.c).
|
||||||
|
|
||||||
|
Anonymous `author_handle`'s match this regexp:
|
||||||
|
|
||||||
|
```re
|
||||||
|
Anonymous_[0-9][0-9][0-9][0-9][.0-9]*$
|
||||||
|
```
|
||||||
|
|
||||||
|
See [FAQ 5.5](#faq5_5) for information about how to update
|
||||||
|
and/or correct IOCCC author information.
|
||||||
|
|
||||||
|
|
||||||
|
### <a name="faq6_6"></a><a name="author_json"></a>FAQ 6.6: What is a author_handle.json file and how are they used?
|
||||||
|
|
||||||
|
**TL:DR**: The contents of these JSON files contain the best known
|
||||||
|
information about authors of IOCCC winners and is used to help form
|
||||||
|
HTML files as well to contact an author.
|
||||||
|
|
||||||
|
The content of these JSON files are used by tools from the [build-ioccc
|
||||||
|
repo](https://github.com/ioccc-src/build-ioccc) to help build HTML
|
||||||
|
content for the [official IOCCC web site](https://www.ioccc.org).
|
||||||
|
For example, the `index.html` file for each IOCCC winner contains
|
||||||
|
selected information about the authors. Tools from the [build-ioccc
|
||||||
|
repo](https://github.com/ioccc-src/build-ioccc) use the content of
|
||||||
|
these JSON files to generate the `index.html` files for each IOCCC
|
||||||
|
winning entry.
|
||||||
|
|
||||||
|
Moreover, should the [IOCCC judges](judges.html) need to
|
||||||
|
contact an authors of a IOCCC winner, they will consult the contents
|
||||||
|
of the author's JSON file for ways to contact them.
|
||||||
|
|
||||||
|
Each author of an IOCCC winning entry has their own `author_handle.json` file
|
||||||
|
of the form:
|
||||||
|
|
||||||
|
```
|
||||||
|
author/author_handle.json
|
||||||
|
```
|
||||||
|
|
||||||
|
where _author_handle_ is an author handle. See [FAQ 6.5](#faq6_5) for more
|
||||||
|
information about an author handles.
|
||||||
|
|
||||||
|
#### author_handle.json JSON file contents
|
||||||
|
|
||||||
|
The syntax of a `author_handle.json` follows the _So-called JSON spec_.
|
||||||
|
See [json_README.md](https://github.com/ioccc-src/mkiocccentry/blob/master/jparse/json_README.md#so_called_json_spec)
|
||||||
|
for information on the _So-called JSON spec_.
|
||||||
|
|
||||||
|
A good way to understand the JSON file contents of a `author_handle.json` file
|
||||||
|
is to look at an example, the `author_handle.json` file for Yusuke Endoh:
|
||||||
|
|
||||||
|
```
|
||||||
|
author/Yusuke_Endoh.json
|
||||||
|
```
|
||||||
|
|
||||||
|
As of _Thu Nov 30 23:51:12 UTC 2023_, the contents was as follows:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"no_comment" : "mandatory comment: because comments were removed from the original JSON spec",
|
||||||
|
"author_JSON_format_version" : "1.0 2023-06-10",
|
||||||
|
"author_handle" : "Yusuke_Endoh",
|
||||||
|
"full_name" : "Yusuke Endoh",
|
||||||
|
"sort_word" : "endoh",
|
||||||
|
"location_code" : "JP",
|
||||||
|
"location_name" : "Japan",
|
||||||
|
"email" : "mame@ruby-lang.org",
|
||||||
|
"url" : "https://mametter.hatenablog.com",
|
||||||
|
"alt_url" : null,
|
||||||
|
"deprecated_twitter_handle" : null,
|
||||||
|
"mastodon" : "@mame@ruby.social",
|
||||||
|
"mastodon_url" : "https://ruby.social/@mame",
|
||||||
|
"github" : "@mame",
|
||||||
|
"affiliation" : null,
|
||||||
|
"winning_entry_set" : [
|
||||||
|
{ "winner_id" : "2012_endoh1" },
|
||||||
|
{ "winner_id" : "2012_endoh2" },
|
||||||
|
{ "winner_id" : "2013_endoh1" },
|
||||||
|
{ "winner_id" : "2013_endoh2" },
|
||||||
|
{ "winner_id" : "2013_endoh3" },
|
||||||
|
{ "winner_id" : "2013_endoh4" },
|
||||||
|
{ "winner_id" : "2014_endoh1" },
|
||||||
|
{ "winner_id" : "2014_endoh2" },
|
||||||
|
{ "winner_id" : "2015_endoh1" },
|
||||||
|
{ "winner_id" : "2015_endoh2" },
|
||||||
|
{ "winner_id" : "2015_endoh3" },
|
||||||
|
{ "winner_id" : "2015_endoh4" },
|
||||||
|
{ "winner_id" : "2018_endoh1" },
|
||||||
|
{ "winner_id" : "2018_endoh2" },
|
||||||
|
{ "winner_id" : "2019_endoh" },
|
||||||
|
{ "winner_id" : "2020_endoh1" },
|
||||||
|
{ "winner_id" : "2020_endoh2" },
|
||||||
|
{ "winner_id" : "2020_endoh3" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
We now will walk thru the above JSON document looking at various JSON members:
|
||||||
|
|
||||||
|
|
||||||
|
##### no_comment
|
||||||
|
|
||||||
|
``` json
|
||||||
|
"no_comment" : "mandatory comment: because comments were removed from the original JSON spec",
|
||||||
|
```
|
||||||
|
|
||||||
|
Because the authors of the so-called JSON spec removed the ability to use comments in JSON
|
||||||
|
(for reason(s) that seem to be less than credible), the IOCCC mandates this _JSON member_
|
||||||
|
be present in all IOCCC related JSON files.
|
||||||
|
|
||||||
|
There **MUST** be one and only one `no_comment` _JSON member_ and the _JSON value_ **MUST**
|
||||||
|
be the exact _JSON string_ as shown above.
|
||||||
|
|
||||||
|
|
||||||
|
##### author_JSON_format_version
|
||||||
|
|
||||||
|
```json
|
||||||
|
"author_JSON_format_version" : "1.0 2023-06-10",
|
||||||
|
```
|
||||||
|
|
||||||
|
This _JSON member_ holds the format version of the `author_handle.json` JSON file.
|
||||||
|
|
||||||
|
There **MUST** be one and only one `author_JSON_format_version`
|
||||||
|
_JSON member_ and the _JSON value_ **MUST** be a _JSON string_.
|
||||||
|
|
||||||
|
This is **NOT** the version of the contents! When updating an
|
||||||
|
`author_handle.json` JSON file, **DO NOT MODIFY author_JSON_format_version**!
|
||||||
|
As of _Thu Nov 30 23:51:12 UTC 2023_, the _JSON value_ **MUST** be _"1.0 2023-06-10"_.
|
||||||
|
|
||||||
|
The _author_JSON_format_version_ would only changed when the overall format
|
||||||
|
of the these files is modified: and then only those who maintain the
|
||||||
|
[official IOCCC web site](https://www.ioccc.org) would be the one to do this
|
||||||
|
in conjunction with changes to the [build-ioccc
|
||||||
|
repo](https://github.com/ioccc-src/build-ioccc).
|
||||||
|
|
||||||
|
|
||||||
|
##### author_handle
|
||||||
|
|
||||||
|
```json
|
||||||
|
"author_handle" : "Yusuke_Endoh",
|
||||||
|
```
|
||||||
|
|
||||||
|
This _JSON member_ holds the author handle of the author.
|
||||||
|
|
||||||
|
There **MUST** be one and only one `author_handle` _JSON member_
|
||||||
|
and the _JSON value_ **MUST** be a _JSON string_ that is also a value author handle.
|
||||||
|
|
||||||
|
See [FAQ 6.5](#faq6_5) for more information about an author handles.
|
||||||
|
|
||||||
|
Normally the _author_handle_ _JSON value_ should **NOT** be changed
|
||||||
|
**unless there is a strong reason to do so**. If the _JSON value_
|
||||||
|
changes, then all of the `.winner.json` files for all of this authors
|
||||||
|
winning IOCCC entries should also be changed. The _author_handle_
|
||||||
|
_JSON value_ must match the basename (without the leading path and
|
||||||
|
without the trailing `.json`) of the `author_handle.json` file. So
|
||||||
|
a change of _author_handle_ _JSON value_ would also require the
|
||||||
|
`author_handle.json` file to also be renamed.
|
||||||
|
|
||||||
|
|
||||||
|
##### full_name
|
||||||
|
|
||||||
|
```json
|
||||||
|
"full_name" : "Yusuke Endoh",
|
||||||
|
```
|
||||||
|
|
||||||
|
This _JSON member_ holds the full name of the author.
|
||||||
|
|
||||||
|
There **MUST** be one and only one `full_name` _JSON member_ and the _JSON value_ **MUST**
|
||||||
|
be a _JSON string_.
|
||||||
|
|
||||||
|
The full name of an author may use non-ASCII characters so long as the
|
||||||
|
full name is properly encoded as a _JSON string_.
|
||||||
|
|
||||||
|
|
||||||
|
##### sort_word
|
||||||
|
|
||||||
|
```json
|
||||||
|
"sort_word" : "endoh",
|
||||||
|
```
|
||||||
|
|
||||||
|
This _JSON member_ holds the string that will be used to sort the author.
|
||||||
|
|
||||||
|
There **MUST** be one and only one `sort_word` _JSON member_ and the _JSON value_ **MUST**
|
||||||
|
be a _JSON string_. Moreover the string **MUST** be a lower case ASCII
|
||||||
|
alphanumeric string that starts with a lower case ASCII letter.
|
||||||
|
|
||||||
|
The _JSON value_ is used, for example, to place a reference to the author
|
||||||
|
in the `/winners.html` file.
|
||||||
|
|
||||||
|
Normally the `sort_word` _JSON member_ _JSON value_ is the last
|
||||||
|
name of the author, translated into lower case ASCII alphanumeric
|
||||||
|
string that starts with a lower case ASCII letter. If the author
|
||||||
|
wishes to be found in the `/winners.html` file under a different
|
||||||
|
string, such as if they wish to be listed under their first name
|
||||||
|
or their username, then they may change this accordingly.
|
||||||
|
|
||||||
|
|
||||||
|
##### location_code
|
||||||
|
|
||||||
|
```json
|
||||||
|
"location_code" : "JP",
|
||||||
|
```
|
||||||
|
|
||||||
|
This _JSON member_ holds the string that is the
|
||||||
|
[ISO 3166-1 alpha-2 code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Decoding_table)
|
||||||
|
of the author's location or country.
|
||||||
|
|
||||||
|
There **MUST** be one and only one `location_code` _JSON member_ and the _JSON value_ **MUST**
|
||||||
|
be a _JSON string_. Moreover the string **MUST** be 2 character UPPER case ASCII
|
||||||
|
alphabetic string that is **NOT** an Unassigned
|
||||||
|
[ISO 3166-1 alpha-2 code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Decoding_table) value
|
||||||
|
(not a 2 character symbol with a gray background on that Wikipedia table)
|
||||||
|
|
||||||
|
The `soup/location` tool from the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry),
|
||||||
|
when run without arguments, will print the ISO 3166-1 alpha-2 codes that permitted, along with
|
||||||
|
the location name.
|
||||||
|
|
||||||
|
We use the term "location" (and not "country") because some of the
|
||||||
|
ISO 3166-1 alpha-2 codes belong to locations that are not technically
|
||||||
|
a country, such as "Antarctica" or a User-assigned code.
|
||||||
|
|
||||||
|
If the author wishes to not specify a location, they should select **XX**.
|
||||||
|
|
||||||
|
|
||||||
|
##### location_name
|
||||||
|
|
||||||
|
```json
|
||||||
|
"location_name" : "Japan",
|
||||||
|
```
|
||||||
|
|
||||||
|
This _JSON member_ holds the string that is the canonical location name as reported by the
|
||||||
|
`soup/location` tool from the [mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry),
|
||||||
|
when given the [location code](#location_code) as specified above.
|
||||||
|
|
||||||
|
There **MUST** be one and only one `location_code` _JSON member_ and the _JSON value_ **MUST**
|
||||||
|
be a _JSON string_. Moreover the string **MUST** be what the `soup/location` tool prints
|
||||||
|
when given the `location_code` as an argument.
|
||||||
|
|
||||||
|
We use the term "location" (and not "country") because some of the
|
||||||
|
ISO 3166-1 alpha-2 codes belong to locations that are not technically
|
||||||
|
a country, such as "Antarctica" or a User-assigned code.
|
||||||
|
|
||||||
|
Often a given location may have a long official name, and multiple common names.
|
||||||
|
For names associated with the location **DE** might be:
|
||||||
|
|
||||||
|
```
|
||||||
|
Germany
|
||||||
|
Federal Republic of Germany
|
||||||
|
Bundesrepublik Deutschland
|
||||||
|
Deutschland
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
The "location_name" printed by the `soup/location` tool is often a
|
||||||
|
short, common string that is sometimes called the formal location
|
||||||
|
name for the given ISO 3166 code. Thus in the above example for _DE_,
|
||||||
|
the location name of _Germany_ is used.
|
||||||
|
|
||||||
|
If the author wishes to not specify a location, they should select **Anonymous location**.
|
||||||
|
|
||||||
|
|
||||||
|
##### email
|
||||||
|
|
||||||
|
```json
|
||||||
|
"email" : "mame@ruby-lang.org",
|
||||||
|
```
|
||||||
|
|
||||||
|
This _JSON member_ holds the email address of the author, or is the value null.
|
||||||
|
|
||||||
|
There **MUST** be one and only one `email` _JSON member_ and the _JSON value_ **MUST**
|
||||||
|
be a _JSON string_ or it **MUST** be a _JSON null_.
|
||||||
|
|
||||||
|
If the author wishes to not specify an email address, or if the email address is
|
||||||
|
unknown, they should use the _JSON null_ as the _JSON value_ of this _JSON member_.
|
||||||
|
For example:
|
||||||
|
|
||||||
|
```json
|
||||||
|
"email" : null,
|
||||||
|
```
|
||||||
|
|
||||||
|
NOTE: The _JSON null_ is **NOT** enclosed in quotes!
|
||||||
|
|
||||||
|
|
||||||
|
##### url
|
||||||
|
|
||||||
|
```json
|
||||||
|
"url" : "https://mametter.hatenablog.com",
|
||||||
|
```
|
||||||
|
|
||||||
|
This _JSON member_ holds the URL of the author's home page.
|
||||||
|
|
||||||
|
There **MUST** be one and only one `url` _JSON member_ and the _JSON value_ **MUST**
|
||||||
|
be a _JSON string_ or it **MUST** be a _JSON null_.
|
||||||
|
|
||||||
|
If the author wishes to not specify an email address, or if the URL is
|
||||||
|
unknown, they should use the _JSON null_ as the _JSON value_ of this _JSON member_.
|
||||||
|
For example:
|
||||||
|
|
||||||
|
```json
|
||||||
|
"url" : null,
|
||||||
|
```
|
||||||
|
|
||||||
|
NOTE: The _JSON null_ is **NOT** enclosed in quotes!
|
||||||
|
|
||||||
|
|
||||||
|
##### alt_url
|
||||||
|
|
||||||
|
```json
|
||||||
|
"alt_url" : null,
|
||||||
|
```
|
||||||
|
|
||||||
|
This _JSON member_ holds an alternate or 2nd URL a home page for the author.
|
||||||
|
|
||||||
|
There **MUST** be one and only one `url` _JSON member_ and the _JSON value_ **MUST**
|
||||||
|
be a _JSON string_ or it **MUST** be a _JSON null_.
|
||||||
|
|
||||||
|
In some cases the author may wish to record a special URL for their IOCCC entry,
|
||||||
|
or a 2nd URL such as a work or school or personal home page. For example,
|
||||||
|
Cody as of _Thu Nov 30 23:51:12 UTC 2023_ used:
|
||||||
|
|
||||||
|
```json
|
||||||
|
"alt_url" : "https://ioccc.xexyl.net",
|
||||||
|
```
|
||||||
|
|
||||||
|
If the author wishes to not specify an email address, or if the alternate URL is
|
||||||
|
unknown, they should use the _JSON null_ as the _JSON value_ of this _JSON member_.
|
||||||
|
For example:
|
||||||
|
|
||||||
|
```json
|
||||||
|
"url" : null,
|
||||||
|
```
|
||||||
|
|
||||||
|
NOTE: The _JSON null_ is **NOT** enclosed in quotes!
|
||||||
|
|
||||||
|
|
||||||
|
##### deprecated_twitter_handle
|
||||||
|
|
||||||
|
This _JSON member_ used to hold the twitter handle of the author.
|
||||||
|
|
||||||
|
There **MUST** be one and only one `deprecated_twitter_handle` _JSON member_ and the _JSON value_ **MUST**
|
||||||
|
be a _JSON string_ or it **MUST** be a _JSON null_.
|
||||||
|
|
||||||
|
The IOCCC no longer is associated with twitter (or whatever someone chooses to call it),
|
||||||
|
and so the `deprecated_twitter_handle` is **no longer used**. A _JSON value_ that is
|
||||||
|
not a _JSON null_ is kept for only historic reasons. For example, Anthony C. Howe
|
||||||
|
once used:
|
||||||
|
|
||||||
|
```json
|
||||||
|
"deprecated_twitter_handle" : "@SirWumpus",
|
||||||
|
```
|
||||||
|
|
||||||
|
If the author wishes to not specify an twitter handle, or if the twitter handle is
|
||||||
|
unknown, they should use the _JSON null_ as the _JSON value_ of this _JSON member_.
|
||||||
|
For example:
|
||||||
|
|
||||||
|
```json
|
||||||
|
"deprecated_twitter_handle" : null,
|
||||||
|
```
|
||||||
|
|
||||||
|
NOTE: The _JSON null_ is **NOT** enclosed in quotes!
|
||||||
|
|
||||||
|
|
||||||
|
##### mastodon
|
||||||
|
|
||||||
|
```json
|
||||||
|
"mastodon" : "@mame@ruby.social",
|
||||||
|
```
|
||||||
|
|
||||||
|
This _JSON member_ holds the
|
||||||
|
[Mastodon social network](https://en.wikipedia.org/wiki/Mastodon_\(social_network\))
|
||||||
|
handle of the author.
|
||||||
|
|
||||||
|
There **MUST** be one and only one `mastodon` _JSON member_ and the _JSON value_ **MUST**
|
||||||
|
be a _JSON string_ or it **MUST** be a _JSON null_. The _JSON string_ just be a valid
|
||||||
|
Mastodon handle. In particular is must start with an at sign (_@_), followed by the
|
||||||
|
Mastodon username, followed by a 2nd sign (_@_), followed by the Mastodon server instance
|
||||||
|
used by the author.
|
||||||
|
|
||||||
|
For more information in Mastodon, see the [Mastodon help](https://mastodon.help) guide.
|
||||||
|
See the "Mastodon Address" section of that page in particular.
|
||||||
|
|
||||||
|
The IOCCC Mastodon handle is:
|
||||||
|
|
||||||
|
```json
|
||||||
|
@ioccc@fosstodon.org
|
||||||
|
```
|
||||||
|
|
||||||
|
The IOCCC uses the Mastodon social network for announcements such
|
||||||
|
as the opening and closing of a new IOCCC, changes to the IOCCC web
|
||||||
|
site, updates during the judging process, and when new IOCCC winners
|
||||||
|
are selected. We recommend you follow us on Mastodon.
|
||||||
|
|
||||||
|
If the author wishes to not specify an Mastodon handle, or if the Mastodon handle is
|
||||||
|
unknown, they should use the _JSON null_ as the _JSON value_ of this _JSON member_.
|
||||||
|
For example:
|
||||||
|
|
||||||
|
```json
|
||||||
|
"mastodon" : null,
|
||||||
|
```
|
||||||
|
|
||||||
|
NOTE: The _JSON null_ is **NOT** enclosed in quotes!
|
||||||
|
|
||||||
|
|
||||||
|
##### mastodon_url
|
||||||
|
|
||||||
|
```json
|
||||||
|
"mastodon_url" : "https://ruby.social/@mame",
|
||||||
|
```
|
||||||
|
|
||||||
|
This _JSON member_ holds the URL of the author's Mastodon page.
|
||||||
|
|
||||||
|
There **MUST** be one and only one `mastodon_url` _JSON member_ and the _JSON value_ **MUST**
|
||||||
|
be a _JSON string_ or it **MUST** be a _JSON null_. The _JSON string_ just be a valid URL.
|
||||||
|
If the `mastodon` handle is a _JSON null_, them the `mastodon_url` **MUST** be a _JSON null_.
|
||||||
|
If the `mastodon` handle is a _JSON string_, then the `mastodon_url` **MUST** be a _JSON string_.
|
||||||
|
|
||||||
|
The `mastodon_url` is just a translation of the above mentioned [mastodon](#mastodon) handle.
|
||||||
|
For example, if the Mastodon handle is:
|
||||||
|
|
||||||
|
```
|
||||||
|
@user@server.domain
|
||||||
|
```
|
||||||
|
|
||||||
|
Then the `mastodon_url` would be:
|
||||||
|
|
||||||
|
```
|
||||||
|
https://server.domain/@user
|
||||||
|
```
|
||||||
|
|
||||||
|
If the author wishes to not specify an Mastodon URL, or if the Mastodon URL is
|
||||||
|
unknown, they should use the _JSON null_ as the _JSON value_ of this _JSON member_.
|
||||||
|
For example:
|
||||||
|
|
||||||
|
```json
|
||||||
|
"mastodon_url" : null,
|
||||||
|
```
|
||||||
|
|
||||||
|
NOTE: The _JSON null_ is **NOT** enclosed in quotes!
|
||||||
|
|
||||||
|
|
||||||
|
##### github
|
||||||
|
|
||||||
|
```json
|
||||||
|
"github" : "@mame",
|
||||||
|
```
|
||||||
|
|
||||||
|
This _JSON member_ holds the [GitHub](https://github.com) handle of the author.
|
||||||
|
|
||||||
|
There **MUST** be one and only one `github` _JSON member_ and the _JSON value_ **MUST**
|
||||||
|
be a _JSON string_ or it **MUST** be a _JSON null_. The `github` _JSON string_ **MUST**
|
||||||
|
start with an at sign (_@_) and **MUST** be a valid GitHub username.
|
||||||
|
|
||||||
|
The IOCCC uses GitHub to hold the [official winner repo of the IOCCC](https://github.com/ioccc-src/winner),
|
||||||
|
and hosts [official IOCCC web site](https://www.ioccc.org) on GitHub pages.
|
||||||
|
|
||||||
|
The IOCCC GitHub handle is:
|
||||||
|
|
||||||
|
```
|
||||||
|
@ioccc-src
|
||||||
|
```
|
||||||
|
|
||||||
|
If the author wishes to not specify an GitHub handle, or if the GitHub handle is
|
||||||
|
unknown, they should use the _JSON null_ as the _JSON value_ of this _JSON member_.
|
||||||
|
For example:
|
||||||
|
|
||||||
|
```json
|
||||||
|
"github" : null,
|
||||||
|
```
|
||||||
|
|
||||||
|
NOTE: The _JSON null_ is **NOT** enclosed in quotes!
|
||||||
|
|
||||||
|
|
||||||
|
##### affiliation
|
||||||
|
|
||||||
|
```json
|
||||||
|
"affiliation" : null,
|
||||||
|
```
|
||||||
|
|
||||||
|
This _JSON member_ holds the affiliation of the author.
|
||||||
|
|
||||||
|
There **MUST** be one and only one `affiliation` _JSON member_ and the _JSON value_ **MUST**
|
||||||
|
be a _JSON string_ or it **MUST** be a _JSON null_.
|
||||||
|
|
||||||
|
An affiliation might be the name of a school, university, company, or organization.
|
||||||
|
It is recommended that the affiliation _JSON string_ be the formal affiliation name.
|
||||||
|
For example, the affiliation for the IOCCC would be:
|
||||||
|
|
||||||
|
```
|
||||||
|
The International Obfuscared C Code Contest
|
||||||
|
```
|
||||||
|
|
||||||
|
If the author wishes to not specify an affiliation, or if the affiliation is
|
||||||
|
unknown, they should use the _JSON null_ as the _JSON value_ of this _JSON member_.
|
||||||
|
For example:
|
||||||
|
|
||||||
|
```json
|
||||||
|
"affiliation" : null,
|
||||||
|
```
|
||||||
|
|
||||||
|
NOTE: The _JSON null_ is **NOT** enclosed in quotes!
|
||||||
|
|
||||||
|
|
||||||
|
##### winning_entry_set
|
||||||
|
##### winner_id
|
||||||
|
|
||||||
|
```json
|
||||||
|
"winning_entry_set" : [
|
||||||
|
{ "winner_id" : "2012_endoh1" },
|
||||||
|
{ "winner_id" : "2012_endoh2" },
|
||||||
|
{ "winner_id" : "2013_endoh1" },
|
||||||
|
...
|
||||||
|
{ "winner_id" : "2020_endoh1" },
|
||||||
|
{ "winner_id" : "2020_endoh2" },
|
||||||
|
{ "winner_id" : "2020_endoh3" }
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
The `winning_entry_set` _JSON member_ holds _JSON array_ containing one or more `winner_id` _JSON member_s.
|
||||||
|
|
||||||
|
There **MUST** be one and only one `winning_entry_set` and the _JSON value_ **MUST**
|
||||||
|
be a non-empty _JSON array_. Each value in that _JSON array_ **MUST** must contain
|
||||||
|
a _JSON member_ whose _JSON name_ **MUST** be "_winner_id_" and those _JSON value_
|
||||||
|
is a valid winner ID.
|
||||||
|
|
||||||
|
Due to the nature of the _So-called JSON spec_, the last value of the `winning_entry_set`
|
||||||
|
_JSON array_ cannot end in a comma (_,_).
|
||||||
|
|
||||||
|
See [FAQ 6.7](#faq6_7) for information about winner ids.
|
||||||
|
|
||||||
|
See [FAQ 5.5](#faq5_5) for information about how to update
|
||||||
|
and/or correct IOCCC author information.
|
||||||
|
|
||||||
|
|
||||||
|
### <a name="faq6_7"></a><a name="author_json"></a>FAQ 6.7: What is a winner_id?
|
||||||
|
|
||||||
|
A `winner_id` is a string that identifies a winning entry of the IOCCC.
|
||||||
|
|
||||||
|
A `winner_id` is a 4-digit year, followed by an underscore, followed by a directory name.
|
||||||
|
|
||||||
|
For example, the `winner_id` associated with Cody Boone Ferguson's 2nd winning IOCCC entry
|
||||||
|
of 2020 is found under the following directory:
|
||||||
|
|
||||||
|
```
|
||||||
|
2020/ferguson2
|
||||||
|
```
|
||||||
|
|
||||||
|
The `winner_id` for that winning entry is:
|
||||||
|
|
||||||
|
```
|
||||||
|
2020_ferguson2
|
||||||
|
```
|
||||||
Reference in new issue
Block a user