From b61618b9ca622e578dfa5b388556b47ea5a4ba10 Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Wed, 23 Oct 2024 10:18:02 -0700 Subject: [PATCH] More format fixes in FAQ In the case of JSON code blocks many had lines that ended in ',' which would, when syntax highlighting works, be flagged as a syntax error. A typo was fixed in a JSON code block (for the IOCCC affiliation). In entry_set JSON description the formatting was wrong and it also had a syntax error. Instead it now has the full set of the author in question (Yusuke Endoh) as of this time. --- faq.html | 183 ++++++++++++++++++++++++++++----------------- faq.md | 223 ++++++++++++++++++++++++++++--------------------------- 2 files changed, 225 insertions(+), 181 deletions(-) diff --git a/faq.html b/faq.html index f30047069..7c8086340 100644 --- a/faq.html +++ b/faq.html @@ -1125,7 +1125,9 @@ of the same theme.

previous IOCCC entries make it more challenging to be successful.

It is also important to note that the guidelines often state something along the lines of:

-
    We tend to dislike programs that: are similar to previous winning entries.
+
+

We tend to dislike programs that: are similar to previous winning entries.

+

FAIR WARNING: Be sure to clearly explain near the beginning of your remarks.md file, see the FAQ on “remarks.md”, @@ -2151,8 +2153,8 @@ FAQ on “validating JSON documents”.

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
+

For each author_handle, there will be a JSON file of the form: +author/author_handle.json.

See the FAQ on “fixing author information” for information about how to update @@ -2183,10 +2185,8 @@ 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
+

For an anonymous author, their handle is one of the form of 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 @@ -2217,8 +2217,7 @@ IOCCC winning entry.

contact an authors of an IOCCC entry, 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
+of the form author/author_handle.json.

where author_handle is an author handle. See FAQ on “author handle” for more information about an author handles.

@@ -2227,9 +2226,9 @@ for more information about an author handles.

See https://www.json.org/json-en.html 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:

+is to look at an example, for instance the author_handle.json file for Yusuke +Endoh, author/Yusuke_Endoh.json.

+

As of Thu Nov 30 23:51:12 UTC 2023, it was:

    {
         "no_comment" : "mandatory comment: because comments were removed from the original JSON spec",
         "author_JSON_format_version" : "1.0 2023-06-10",
@@ -2269,7 +2268,7 @@ is to look at an example, the author_handle.json file for Yusuke En
 

NOTE: if you need to just check the validity of a JSON document then see the FAQ on “validating JSON documents”. Taking that FAQ in mind, if you wish to validate every JSON file in author/ then you could do so like:

-
        for auth in *.json; do jparse -q "$auth" || echo "$auth is invalid JSON" ; done
+
    for auth in *.json; do jparse -q "$auth" || echo "$auth is invalid JSON" ; done

If you see any output then it will say which file or files are invalid JSON (this should not actually happen, however).

See the @@ -2280,14 +2279,14 @@ for now to location and/or install the jparse(1) command.

We now will walk thru the above JSON document looking at various JSON members:

no_comment
-
    "no_comment" : "mandatory comment: because comments were removed from the original JSON spec",
+
    "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
-
    "author_JSON_format_version" : "1.0 2023-06-10",
+
    "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.

@@ -2299,7 +2298,7 @@ of the these files is modified: and then only those who maintain the official IOCCC website would be the one to do this in conjunction with changes to bin directory tools.

author_handle
-
    "author_handle" : "Yusuke_Endoh",
+
    "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.

@@ -2315,14 +2314,14 @@ without the trailing .json) of the author_handle.json a change of author_handle JSON value would also require the author_handle.json file to also be renamed.

full_name
-
    "full_name" : "Yusuke Endoh",
+
    "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
-
    "sort_word" : "endoh",
+
    "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 @@ -2336,7 +2335,7 @@ wishes to be found in the /authors.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
-
    "location_code" : "JP",
+
    "location_code" : "JP"

This JSON member holds the string that is the ISO 3166-1 alpha-2 code of the author’s location or country.

@@ -2353,38 +2352,38 @@ 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.

email
-
    "email" : "mame@ruby-lang.org",
+
    "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, it should be the JSON null as the JSON value of this JSON member. For example:

-
    "email" : null,
+
    "email" : null

NOTE: The JSON null is NOT enclosed in quotes!

url
-
    "url" : "https://mametter.hatenablog.com",
+
    "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 a URL or if the URL is unknown, it should be the JSON null as the JSON value of this JSON member. For example:

-
    "url" : null,
+
    "url" : null

NOTE: The JSON null is NOT enclosed in quotes!

alt_url
-
    "alt_url" : null,
+
    "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 alt_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:

-
    "alt_url" : "https://ioccc.xexyl.net",
+
    "alt_url" : "https://ioccc.xexyl.net"

If the author wishes to not specify an alternate URL, or if the alternate URL is unknown, it should be the JSON null as the JSON value of this JSON member. For example:

-
    "alt_url" : null,
+
    "alt_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.

@@ -2394,17 +2393,17 @@ be a JSON string or it MUST be a JSON null.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:

-
    "deprecated_twitter_handle" : "@SirWumpus",
+
    "deprecated_twitter_handle" : "@SirWumpus"

If the author wishes to not specify a twitter handle, or if the twitter handle is unknown, it should be the JSON null as the JSON value of this JSON member. For example:

-
    "deprecated_twitter_handle" : null,
+
    "deprecated_twitter_handle" : null

Of course in the future we will not be asking for twitter handles so this means that unless the winner is a previous winner (before we moved to mastodon) this will always be null anyway.

NOTE: The JSON null is NOT enclosed in quotes!

mastodon
-
    "mastodon" : "@mame@ruby.social",
+
    "mastodon" : "@mame@ruby.social"

This JSON member holds the Mastodon social network handle of the author.

@@ -2424,68 +2423,113 @@ 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, it should be the JSON null as the JSON value of this JSON member. For example:

-
    "mastodon" : null,
+
    "mastodon" : null

NOTE: The JSON null is NOT enclosed in quotes!

mastodon_url
-
    "mastodon_url" : "https://ruby.social/@mame",
+
    "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 handle. -For example, if the Mastodon handle is:

-
    @user@server.domain
-

Then the mastodon_url would be:

-
    https://server.domain/@user
+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, it should be the JSON null as the JSON value of this JSON member. For example:

-
    "mastodon_url" : null,
+
    "mastodon_url" : null

NOTE: The JSON null is NOT enclosed in quotes!

See FAQ on “Mastodon” for more information on Mastodon.

github
-
    "github" : "@mame",
+
    "github" : "@mame"

This JSON member holds the GitHub 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, and hosts official IOCCC website on GitHub pages.

-

The IOCCC GitHub handle is:

-
    @ioccc-src
+

The IOCCC GitHub handle is @ioccc-src.

If the author wishes to not specify an GitHub handle, or if the GitHub handle is unknown, it should be the JSON null as the JSON value of this JSON member. For example:

-
    "github" : null,
+
    "github" : null

NOTE: The JSON null is NOT enclosed in quotes!

affiliation
-
    "affiliation" : null,
+
    "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
+
    "affiliation": "The International Obfuscated C Code Contest"

If the author wishes to not specify an affiliation, or if the affiliation is unknown, it should be the JSON null as the JSON value of this JSON member. For example:

-
    "affiliation" : null,
+
    "affiliation" : null

NOTE: The JSON null is NOT enclosed in quotes!

winning_entry_set
entry_id
    "winning_entry_set" : [
-        { "entry_id" : "2012_endoh1" },
-        { "entry_id" : "2012_endoh2" },
-        { "entry_id" : "2013_endoh1" },
-    ...
-        { "entry_id" : "2020_endoh1" },
-        { "entry_id" : "2020_endoh2" },
-        { "entry_id" : "2020_endoh3" }
+        {
+            "entry_id" : "2012_endoh1"
+        },
+        {
+            "entry_id" : "2012_endoh2"
+        },
+        {
+            "entry_id" : "2013_endoh1"
+        },
+        {
+            "entry_id" : "2013_endoh2"
+        },
+        {
+            "entry_id" : "2013_endoh3"
+        },
+        {
+            "entry_id" : "2013_endoh4"
+        },
+        {
+            "entry_id" : "2014_endoh1"
+        },
+        {
+            "entry_id" : "2014_endoh2"
+        },
+        {
+            "entry_id" : "2015_endoh1"
+        },
+        {
+            "entry_id" : "2015_endoh2"
+        },
+        {
+            "entry_id" : "2015_endoh3"
+        },
+        {
+            "entry_id" : "2015_endoh4"
+        },
+        {
+            "entry_id" : "2018_endoh1"
+        },
+        {
+            "entry_id" : "2018_endoh2"
+        },
+        {
+            "entry_id" : "2019_endoh"
+        },
+        {
+            "entry_id" : "2020_endoh1"
+        },
+        {
+            "entry_id" : "2020_endoh2"
+        },
+        {
+            "entry_id" : "2020_endoh3"
+        }
     ]
+

(… as of Wed 23 Oct 2024 17:20:26 UTC.)

The winning_entry_set JSON member holds JSON array containing one or more entry_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 @@ -2541,10 +2585,9 @@ for more information on terms such as author, entry, and s

An entry_id is a string that identifies a winning entry of the IOCCC.

An entry_id is a 4-digit year, followed by an underscore, followed by a directory name.

For example, the entry_id associated with Cody Boone Ferguson’s 2nd winning IOCCC entry -of 2020 is found under the following directory:

-
    2020/ferguson2
-

The entry_id for that winning entry is:

-
    2020_ferguson2
+of 2020 is found under the directory +2020/ferguson2.

+

The entry_id for that winning entry is 2020_ferguson2.

Jump to: top

Q 3.10: What is a .entry.json file and how is it used?

@@ -2556,9 +2599,9 @@ about the entry. We describe the fields below in order to help you understand its contents.

This file is created by the cvt-submission.sh tool as part of the final steps to announce a new set of winning IOCCC entries.

-

Each winning entry has its own .entry.json filename of the form:

-
    YYYY/winner/.entry.json
-

where winner is the entry directory name, usually the name of the author.

+

Each winning entry has its own .entry.json filename of the form: +YYYY/winner/.entry.json

+

.. where winner is the entry directory name, usually the name of the author.

IMPORTANT NOTE: this file should NOT be manually modified! It is created by the csv2entry tool when updating the manifest.

.entry.json JSON file contents

@@ -2672,14 +2715,14 @@ it is shorter than some of the others.

We now will walk through the above JSON document looking at all the JSON members:

no_comment
-
    "no_comment" : "mandatory comment: because comments were removed from the original JSON spec",
+
    "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.

entry_JSON_format_version
-
        "entry_JSON_format_version" : "1.2 2024-09-25",
+
        "entry_JSON_format_version" : "1.2 2024-09-25"

This JSON member holds the format version of the .entry.json JSON file.

There MUST be one and only one entry_JSON_format_version JSON member and the JSON value MUST be a JSON string.

@@ -2689,20 +2732,20 @@ of the these files is modified: and then only those who maintain the official IOCCC website would be the one to do this in conjunction with changes to bin directory tools.

award
-
    "award" : "Third Place",
+
    "award" : "Third Place"

This JSON string is the award title of the entry which the Judges decide/decided when it becomes/became a winning entry.

year
-
    "year" : 1984,
+
    "year" : 1984

This JSON number is the year the contest ran, ended or was announced in.

dir
-
    "dir" : "laman",
+
    "dir" : "laman"

This JSON string is the subdirectory of the entry, under the year directory, in this case 1984. With the above member, year, and this one, one can determine the directory of the entry, here being 1984/laman.

entry_id
-
    "entry_id" : "1984_laman",
+
    "entry_id" : "1984_laman"

This is the ID of the entry in question and corresponds to the entry_id in the author/author_handle.json file.

See @@ -2731,7 +2774,7 @@ for more information on .info.json files.

author_set
    "author_set" : [
         { "author_handle" : "Mike_Laman" }
-    ],
+ ]

This JSON array has a list of author_handles that indicate who won this entry.

That JSON member holds the author handle of the author.

@@ -3483,8 +3526,8 @@ for downloading, installing and using ImageMagick.

FAQ on “X11” for general information about X11.

Once X11 is install and the X Window Server is running, one needs to compile -and link with the two libraries, GL and GLU:

-
    cc ... -lGL -lGLU -L _location-where-X11-libs-are-installed_ -lX11
+and link with the two libraries, GL and GLU, which the Makefile should do if +you just run make.

NOTE: The OpenGL development effort is being managed by vulkan.org. We suggest you check out their resource for further information on OpenGL.

Red Hat based Linux

@@ -4540,11 +4583,11 @@ cake recipe.

You may correct or update IOCCC author information by submitting a GitHub pull request that modifies an author’s author_handle.json file.

For example, if a given author_handle.json file contained:

-
    "url" : "https://www.example.com/employee/username",
+
    "url" : "https://www.example.com/employee/username"

and you knew that the author has long ago left the www.example.com company, and that they have a new faculty web page at www.example.edu, then you should submit a GitHub pull request to change the above line to:

-
    "url" : "https://www.example.edu/faculty/deartment/user.name",
+
    "url" : "https://www.example.edu/faculty/deartment/user.name"

Authors of IOCCC winning entries are kept in JSON files of the form:

    author/author_handle.json

where author_handle is an author handle.

@@ -4606,11 +4649,11 @@ about authors of IOCCC entries. See FAQ on “author_handle.json” for information about the contents of these JSON files and how they are used.

For example, if a given author_handle.json file contained:

-
    "location_code" : "ZZ",
+
    "location_code" : "ZZ"

and you knew that the author was located in Australia (location code AU), we encourage you to submit a GitHub pull request to change that line to:

-
    "location_code" : "AU",
+
    "location_code" : "AU"

See the FAQ on “fixing author information” for information about how to change author location codes.

diff --git a/faq.md b/faq.md index 782f0a17b..68d1ac777 100644 --- a/faq.md +++ b/faq.md @@ -939,9 +939,7 @@ previous IOCCC entries make it more challenging to be successful. It is also important to note that the [guidelines](next/guidelines.html) often state something along the lines of: -``` - We tend to dislike programs that: are similar to previous winning entries. -``` +> We tend to dislike programs that: are similar to previous winning entries. **FAIR WARNING**: Be sure to **clearly explain** near the beginning of your `remarks.md` file, see the @@ -2062,10 +2060,7 @@ 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 -``` +`author/author_handle.json`. See the FAQ on "[fixing author information](#fix_author)" @@ -2107,18 +2102,8 @@ 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 -``` - +For an anonymous `author`, their handle is one of the form of `Anonymous_year` +or `Anonymous_year.digits`. The latter form is in case there are more than one anonymous author in a given year. @@ -2164,11 +2149,7 @@ contact an authors of an IOCCC entry, 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 -``` +of the form `author/author_handle.json`. where _author_handle_ is an author handle. See FAQ on "[author handle](#author_handle_faq)" @@ -2181,13 +2162,10 @@ See 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: +is to look at an example, for instance the `author_handle.json` file for Yusuke +Endoh, [author/Yusuke_Endoh.json](%%REPO_URL%%/author/Yusuke_Endoh.json). -``` - author/Yusuke_Endoh.json -``` - -As of _Thu Nov 30 23:51:12 UTC 2023_, the contents was as follows: +As of _Thu Nov 30 23:51:12 UTC 2023_, it was: ``` { @@ -2233,7 +2211,7 @@ FAQ on "[validating JSON documents](#validating_json)". Taking that FAQ in mind, if you wish to validate every JSON file in `author/` then you could do so like: ``` - for auth in *.json; do jparse -q "$auth" || echo "$auth is invalid JSON" ; done + for auth in *.json; do jparse -q "$auth" || echo "$auth is invalid JSON" ; done ``` If you see any output then it will say which file or files are invalid JSON @@ -2254,7 +2232,7 @@ We now will walk thru the above JSON document looking at various JSON members: ##### no_comment ``` - "no_comment" : "mandatory comment: because comments were removed from the original JSON spec", + "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 @@ -2268,7 +2246,7 @@ be the exact _JSON string_ as shown above. ##### author_JSON_format_version ``` - "author_JSON_format_version" : "1.0 2023-06-10", + "author_JSON_format_version" : "1.0 2023-06-10" ``` This _JSON member_ holds the format version of the `author_handle.json` JSON file. @@ -2289,7 +2267,7 @@ in conjunction with changes to [bin directory tools](bin/index.html). ##### author_handle ``` - "author_handle" : "Yusuke_Endoh", + "author_handle" : "Yusuke_Endoh" ``` This _JSON member_ holds the author handle of the author. @@ -2314,7 +2292,7 @@ a change of _author_handle_ _JSON value_ would also require the ##### full_name ``` - "full_name" : "Yusuke Endoh", + "full_name" : "Yusuke Endoh" ``` This _JSON member_ holds the full name of the author. @@ -2329,7 +2307,7 @@ full name is properly encoded as a _JSON string_. ##### sort_word ``` - "sort_word" : "endoh", + "sort_word" : "endoh" ``` This _JSON member_ holds the string that will be used to sort the author. @@ -2352,7 +2330,7 @@ or their username, then they may change this accordingly. ##### location_code ``` - "location_code" : "JP", + "location_code" : "JP" ``` This _JSON member_ holds the string that is the @@ -2379,7 +2357,7 @@ If the author wishes to not specify a location, they should select **XX**. ##### email ``` - "email" : "mame@ruby-lang.org", + "email" : "mame@ruby-lang.org" ``` This _JSON member_ holds the email address of the author, or is the value null. @@ -2392,7 +2370,7 @@ unknown, it should be the _JSON null_ as the _JSON value_ of this _JSON member_. For example: ``` - "email" : null, + "email" : null ``` **NOTE**: The _JSON null_ is **NOT** enclosed in quotes! @@ -2401,7 +2379,7 @@ For example: ##### url ``` - "url" : "https://mametter.hatenablog.com", + "url" : "https://mametter.hatenablog.com" ``` This _JSON member_ holds the URL of the author's home page. @@ -2414,7 +2392,7 @@ unknown, it should be the _JSON null_ as the _JSON value_ of this _JSON member_. For example: ``` - "url" : null, + "url" : null ``` **NOTE**: The _JSON null_ is **NOT** enclosed in quotes! @@ -2423,7 +2401,7 @@ member_. For example: ##### alt_url ``` - "alt_url" : null, + "alt_url" : null ``` This _JSON member_ holds an alternate or 2nd URL a home page for the author. @@ -2436,7 +2414,7 @@ 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: ``` - "alt_url" : "https://ioccc.xexyl.net", + "alt_url" : "https://ioccc.xexyl.net" ``` If the author wishes to not specify an alternate URL, or if the alternate URL is @@ -2444,7 +2422,7 @@ unknown, it should be the _JSON null_ as the _JSON value_ of this _JSON member_. For example: ``` - "alt_url" : null, + "alt_url" : null ``` **NOTE**: The _JSON null_ is **NOT** enclosed in quotes! @@ -2463,7 +2441,7 @@ not a _JSON null_ is kept for only historic reasons. For example, Anthony C. Ho once used: ``` - "deprecated_twitter_handle" : "@SirWumpus", + "deprecated_twitter_handle" : "@SirWumpus" ``` If the author wishes to not specify a twitter handle, or if the twitter handle is @@ -2471,7 +2449,7 @@ unknown, it should be the _JSON null_ as the _JSON value_ of this _JSON member_. For example: ``` - "deprecated_twitter_handle" : null, + "deprecated_twitter_handle" : null ``` Of course in the future we will not be asking for twitter handles so this means @@ -2484,7 +2462,7 @@ will always be `null` anyway. ##### mastodon ``` - "mastodon" : "@mame@ruby.social", + "mastodon" : "@mame@ruby.social" ``` This _JSON member_ holds the @@ -2516,7 +2494,7 @@ unknown, it should be the _JSON null_ as the _JSON value_ of this _JSON member_. For example: ``` - "mastodon" : null, + "mastodon" : null ``` **NOTE**: The _JSON null_ is **NOT** enclosed in quotes! @@ -2525,7 +2503,7 @@ For example: ##### mastodon_url ``` - "mastodon_url" : "https://ruby.social/@mame", + "mastodon_url" : "https://ruby.social/@mame" ``` This _JSON member_ holds the URL of the author's Mastodon page. @@ -2536,24 +2514,15 @@ If the `mastodon` handle is a _JSON null_, them the `mastodon_url` **MUST** be a 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 handle. -For example, if the Mastodon handle is: - -``` - @user@server.domain -``` - -Then the `mastodon_url` would be: - -``` - https://server.domain/@user -``` +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, it should be the _JSON null_ as the _JSON value_ of this _JSON member_. For example: ``` - "mastodon_url" : null, + "mastodon_url" : null ``` **NOTE**: The _JSON null_ is **NOT** enclosed in quotes! @@ -2566,7 +2535,7 @@ for more information on Mastodon. ##### github ``` - "github" : "@mame", + "github" : "@mame" ``` This _JSON member_ holds the [GitHub](https://github.com) handle of the author. @@ -2578,18 +2547,14 @@ 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 website](https://www.ioccc.org) on GitHub pages. -The IOCCC GitHub handle is: - -``` - @ioccc-src -``` +The IOCCC GitHub handle is [@ioccc-src](https://github.com/ioccc-src/). If the author wishes to not specify an GitHub handle, or if the GitHub handle is unknown, it should be the _JSON null_ as the _JSON value_ of this _JSON member_. For example: ``` - "github" : null, + "github" : null ``` **NOTE**: The _JSON null_ is **NOT** enclosed in quotes! @@ -2598,7 +2563,7 @@ For example: ##### affiliation ``` - "affiliation" : null, + "affiliation" : null ``` This _JSON member_ holds the affiliation of the author. @@ -2610,8 +2575,8 @@ An affiliation might be the name of a school, university, company, or organizati 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 +``` + "affiliation": "The International Obfuscated C Code Contest" ``` If the author wishes to not specify an affiliation, or if the affiliation is @@ -2619,7 +2584,7 @@ unknown, it should be the _JSON null_ as the _JSON value_ of this _JSON member_. For example: ``` - "affiliation" : null, + "affiliation" : null ``` **NOTE**: The _JSON null_ is **NOT** enclosed in quotes! @@ -2630,16 +2595,65 @@ For example: ``` "winning_entry_set" : [ - { "entry_id" : "2012_endoh1" }, - { "entry_id" : "2012_endoh2" }, - { "entry_id" : "2013_endoh1" }, - ... - { "entry_id" : "2020_endoh1" }, - { "entry_id" : "2020_endoh2" }, - { "entry_id" : "2020_endoh3" } + { + "entry_id" : "2012_endoh1" + }, + { + "entry_id" : "2012_endoh2" + }, + { + "entry_id" : "2013_endoh1" + }, + { + "entry_id" : "2013_endoh2" + }, + { + "entry_id" : "2013_endoh3" + }, + { + "entry_id" : "2013_endoh4" + }, + { + "entry_id" : "2014_endoh1" + }, + { + "entry_id" : "2014_endoh2" + }, + { + "entry_id" : "2015_endoh1" + }, + { + "entry_id" : "2015_endoh2" + }, + { + "entry_id" : "2015_endoh3" + }, + { + "entry_id" : "2015_endoh4" + }, + { + "entry_id" : "2018_endoh1" + }, + { + "entry_id" : "2018_endoh2" + }, + { + "entry_id" : "2019_endoh" + }, + { + "entry_id" : "2020_endoh1" + }, + { + "entry_id" : "2020_endoh2" + }, + { + "entry_id" : "2020_endoh3" + } ] ``` +(... as of Wed 23 Oct 2024 17:20:26 UTC.) + The `winning_entry_set` _JSON member_ holds _JSON array_ containing one or more `entry_id` _JSON member_s. There **MUST** be one and only one `winning_entry_set` and the _JSON value_ **MUST** @@ -2717,17 +2731,10 @@ An `entry_id` is a string that identifies a winning entry of the IOCCC. An `entry_id` is a 4-digit year, followed by an underscore, followed by a directory name. For example, the `entry_id` associated with Cody Boone Ferguson's 2nd winning IOCCC entry -of 2020 is found under the following directory: +of 2020 is found under the directory +[2020/ferguson2](2020/ferguson2/index.html). -``` - 2020/ferguson2 -``` - -The `entry_id` for that winning entry is: - -``` - 2020_ferguson2 -``` +The `entry_id` for that winning entry is `2020_ferguson2`. Jump to: [top](#) @@ -2747,12 +2754,9 @@ This file is created by the [cvt-submission.sh](bin/index.html#cvt-submission) tool as part of the final steps to announce a new set of winning IOCCC entries. Each winning entry has its own `.entry.json` filename of the form: +`YYYY/winner/.entry.json` -``` - YYYY/winner/.entry.json -``` - -where _winner_ is the entry directory name, usually the name of the author. +.. where _winner_ is the entry directory name, usually the name of the author. **IMPORTANT NOTE**: this file should **NOT** be manually modified! It is created by the [csv2entry](bin/index.html#csv2entry) tool when updating the manifest. @@ -2879,7 +2883,7 @@ members: ##### `no_comment` ``` - "no_comment" : "mandatory comment: because comments were removed from the original JSON spec", + "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 @@ -2892,7 +2896,7 @@ be the exact _JSON string_ as shown above. ##### `entry_JSON_format_version` ``` - "entry_JSON_format_version" : "1.2 2024-09-25", + "entry_JSON_format_version" : "1.2 2024-09-25" ``` This _JSON member_ holds the format version of the `.entry.json` JSON file. @@ -2910,7 +2914,7 @@ in conjunction with changes to [bin directory tools](bin/index.html). ##### `award` ``` - "award" : "Third Place", + "award" : "Third Place" ``` This JSON string is the award title of the entry which the [Judges](judges.html) @@ -2919,7 +2923,7 @@ decide/decided when it becomes/became a winning entry. ##### `year` ``` - "year" : 1984, + "year" : 1984 ``` This JSON number is the year the contest ran, ended or was announced in. @@ -2927,7 +2931,7 @@ This JSON number is the year the contest ran, ended or was announced in. ##### `dir` ``` - "dir" : "laman", + "dir" : "laman" ``` This JSON string is the subdirectory of the entry, **under** the year directory, @@ -2938,7 +2942,7 @@ one, one can determine the directory of the entry, here being ##### `entry_id` ``` - "entry_id" : "1984_laman", + "entry_id" : "1984_laman" ``` This is the ID of the entry in question and corresponds to the `entry_id` in the @@ -2986,7 +2990,7 @@ for more information on `.info.json` files. ``` "author_set" : [ { "author_handle" : "Mike_Laman" } - ], + ] ``` This JSON **array** has a list of `author_handle`s that indicate who won this @@ -3326,7 +3330,7 @@ versions. Every Makefile has an `alt` rule but it will only do something if an alternate version exists. To build all the entries along with any alternate code you can do from the top level directory: -``` +``` make clobber everything ``` @@ -4175,11 +4179,8 @@ FAQ on "[X11](#X11)" for general information about X11. Once X11 is install and the X Window Server is running, one needs to compile -and link with the two libraries, _GL_ and _GLU_: - -``` - cc ... -lGL -lGLU -L _location-where-X11-libs-are-installed_ -lX11 -``` +and link with the two libraries, _GL_ and _GLU_, which the Makefile should do if +you just run `make`. **NOTE**: The OpenGL development effort is being managed by [vulkan.org](https://vulkan.org). We suggest you check out their resource for further information on OpenGL. @@ -5702,7 +5703,7 @@ GitHub pull request that modifies an author's `author_handle.json` file. For example, if a given `author_handle.json` file contained: ``` - "url" : "https://www.example.com/employee/username", + "url" : "https://www.example.com/employee/username" ``` and you knew that the author has long ago left the `www.example.com` company, @@ -5710,7 +5711,7 @@ and that they have a new faculty web page at `www.example.edu`, then you should submit a GitHub pull request to change the above line to: ``` - "url" : "https://www.example.edu/faculty/deartment/user.name", + "url" : "https://www.example.edu/faculty/deartment/user.name" ``` Authors of IOCCC winning entries are kept in JSON files of the form: @@ -5801,7 +5802,7 @@ for information about the contents of these JSON files and how they are used. For example, if a given `author_handle.json` file contained: ``` - "location_code" : "ZZ", + "location_code" : "ZZ" ``` and you knew that the author was located in [Australia](location.html#AU) @@ -5809,7 +5810,7 @@ and you knew that the author was located in [Australia](location.html#AU) request** to change that line to: ``` - "location_code" : "AU", + "location_code" : "AU" ``` See the