Files
ioccc/tmp
Landon Curt Noll 828ddef5eb setup src tree, clean out bin directory
The src tree now contains source for tools that will be published
as part of the IOCCC winner web site.  However, the compiled and/or
installed tools that install under bin, will NOT be published.
The bin directory is now excluded under .gitignore so that
those who use this repo will have to do:

```sh
cd src; make clobber all install
```

The src/Makefile in turn drives rules in sub-directory
Makefiles.  Currently there are only two sub-directories:

winner_name - a completely re-written extract_winner_handles.sh
sgit - run sed on all files under git control

The check_awards.sh tool was moved under tmp
as this tool depends on CSV file, will not be needed soon,
and will go away when the tmp directory is cleaned
out towards the end of finishing issue #4.
2023-06-15 18:40:38 -07:00
..

tmp

The purpose of the tmp directory is to hold temporary files. The files in the tmp directory will go away leaving behind an empty tmp directory.

This documentation is here to help define terms, file under tmp and the format of those files.

NOTE: The terms section may be moved to another file later on, after the contents

terms

  • author

An individual who was an author of at least one IOCCC entry.

Some authors have submitted more than one IOCCC entry that won. Some winning IOCCC entries have more than one author.

  • author_handle

An author_handle is string that refers to a given author and is unique to the IOCCC. Each author has one, and only one author_handle.

For each author_handle, there will be a JSON file of the form:

author/author_handle.json

Because the author_handle is used to form a JSON filename, the string must be lower case POSIX safe string. Furthermore, the author_handle must of an ASCII string that matches this regexp:

^[0-9a-z][0-9a-z_]*$

Default author_handle's do not have multiple consecutive _ (underscore) characters. Nevertheless, multiple consecutive _ (underscore) characters are allowed. Users who wish to override the

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.

An author who has won a previous IOCCC is encouraged to reuse their author_handle so that new winners an 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.

Anonymous author_handle's match this regexp:

Anonymous_[0-9][0-9][0-9][0-9][.0-9]*$
  • winner

An IOCCC entry that won an award for given IOCCC.

A winner has one more more authors.

Each winner is contained under its own directory. The parent of the winner directory is a year directory.

While in most cases a winner consists of files under a winner directory, there are a few cases where a winner directory contains sub-directories.

Use of sub-directories under a winner directory is discouraged and may be limited to previous winners that used them.

  • year

A year is a 4 character string. Most years are 4-digit strings that represent the year. Some special year strings are possible, such as "mock". Non-numeric year strings are lower case.

A year string matches this regexp:

[0-9a-z][0-9a-z][0-9a-z][0-9a-z]

The year directories reside directly below the top level directory.

  • .year

Each year will have a file directory under it named:

.year

The contents of ".year" file is the year string of the directory.

  • dir

A dir is a POSIX safe string that holds an winner.

A dir is a string that matches this regexp:

^[a-z][0-9a-z.-]*$

Each winner is under its own individual directory. This directory is directly under a year directory.

  • winner_id

A string that identifies the winning entry. The string is of the form:

year_dir
  • .id

Each winner directory will have a file directory under it named:

.id

The contents of ".id" file is the winner_id string for that winner.

  • sort_word

A string that is used to determine the position within the winners.html file, a author and the winners they submitted are to be listed.

A sort_word match this regexp:

^[a-z][0-9a-z]*

files

A text file of full names of each author: one full name per line.

A CSV file: one line per author.

The 1st field is a author_handle.

The 2nd and later fields are the winner_id's of all winners won by the author.

The author.csv is a CSV file that was exported from the author.numbers file.

In case of conflict, the data in author.numbers file is considered authoritative over the author.csv file.

The author.csv is generated from the author.numbers file, via the macOS numbers spreadsheet app, as follows:

  1. open author.csv in numbers: modify if/as needed
  2. File -> Export To -> CSV... 1a. [ ] Include table names (unset) 1b. Text Encoding: Unicode (UTF-8) 1c. Click ((Save..))
  3. Save As: author.csv 2a. Select the tmp directory
  4. Click ((Export)) 3a. If needed click ((Replace))
  5. open a terminal window
  6. cd to the tmp directory
  7. tr -d '\015' < author.csv > tmp.csv
  8. echo >> tmp.csv
  9. mv -f tmp.csv author.csv

A macOS numbers spreadsheet contain information about authors: one line per author.

The 1st field is sort_word string.

The 2nd field is the full name of the author.

The 3rd field is the author_handle of the author.

The 4th field is the primary URL of author or the string "null" if none was given.

The 5th field is the email address of author or the string "null" if none was given.

The 6th field is the location ISO 3166 code of author or the string "null" is unknown. An author who does not wish to specify a location ISO 3166 code is encouraged to use the code "XX". The location ISO 3166 code consists of two UPPER CASE ASCII letters.

The 7th field is the twitter handle of the author or the string "null" if none was given. This field is kept for purely historic record purposes and is otherwise not used.

The 8th field is the mastodon handle of the author or the string "null" if none was given.

The 9th field is the alternate URL of author or the string "null" if none was given.

A text file containing author_handles for each author: one author_handle per line.

This is a JSON file containing an example author/author_handle.json for a fictitious author.

An author/author_handle.json file will be derived from the contents of the author.csv file and the author-wins.csv file.

This is a JSON file containing an example year/dir/.winner.json for a fictitious winner.

An year/dir/.winner.json file will be derived from the contents the year/dir/.id file, the author-wins.csv file, the year/dir/.year file, and the contents of the year/dir directory.

This is a historic SQL command the that was used in the past to generate data for the old winners directory tree.

A text file containing winner_id strings: one winner_id per line.

A CSV file: one line per winner.

The 1st field is a winner_id.

The 2nd field is the name of the award for given winner.

Temporary tool used to generate the author/author_handle.json files.

The following command, executed in this directory, created the author/ directory:

rm -rf ../author ; ./gen_author_json.sh  author_handle.txt author.csv author-wins.csv ../author