diff --git a/bin/gen-top-md2html.sh b/bin/gen-top-md2html.sh index db4b73451..f36f3fdfd 100755 --- a/bin/gen-top-md2html.sh +++ b/bin/gen-top-md2html.sh @@ -2,6 +2,8 @@ # # gen-top-md2html.sh - generate select top level HTML files from markdown files # +# We also generate the bin/index.html file from the bin/README.md file. +# # Copyright (c) 2024 by Landon Curt Noll. All Rights Reserved. # # Permission to use, copy, modify, and distribute this software and @@ -50,7 +52,7 @@ TOP_MD_SET+=("faq") # set variables referenced in the usage message # -export VERSION="1.0 2024-02-24" +export VERSION="1.1 2024-02-28" NAME=$(basename "$0") export NAME export V_FLAG=0 @@ -76,9 +78,14 @@ export SITE_URL="https://ioccc-src.github.io/temp-test-ioccc" unset TOP_MD_SET TOP_MD_SET+=("CODE_OF_CONDUCT") TOP_MD_SET+=("README") +TOP_MD_SET+=("bin/README") TOP_MD_SET+=("bugs") TOP_MD_SET+=("contact") TOP_MD_SET+=("faq") +TOP_MD_SET+=("inc/README") +TOP_MD_SET+=("index") +TOP_MD_SET+=("judges") +TOP_MD_SET+=("news") TOP_MD_SET+=("thanks-for-help") # export NOOP= @@ -430,6 +437,14 @@ for name in "${TOP_MD_SET[@]}"; do continue fi export HTML_FILE="$name.html" + # bin/README is a special case + if [[ $name == bin/README ]]; then + HTML_FILE="bin/index.html" + fi + # inc/README is a special case + if [[ $name == inc/README ]]; then + HTML_FILE="inc/index.html" + fi # use the md2html.sh tool to form the HTML file, unless -n # diff --git a/bin/index.html b/bin/index.html new file mode 100644 index 000000000..cfd0a2294 --- /dev/null +++ b/bin/index.html @@ -0,0 +1,676 @@ + + + + + + + + + + + + + + + + + +
+ + + +
+ The directory holds bin directory holds tools +that build files, such as HTML content, for the official IOCCC web site.
+For HTML content, the bin directory tools +makes use of HTML fragments from the inc +directory as well as various JSON files and other content from the IOCCC GitHub +repo.
+Run a command on all winning entries.
+For example:
+bin/all-run.sh -v 3 bin/quick-readme2index.sh -v 1Or for example:
+bin/all-run.sh -v 3 bin/readme2index.sh -v 1Run a command on all IOCCC years.
+For example:
+bin/all-years.sh -v 1 bin/gen-year-index.sh -v 1Or for example:
+bin/all-years.sh -v 1 bin/chk-entry.shCheck of files required by an entry matches the entry’s manifest as
+found in .entry.json.
For example:
+bin/chk-entry.sh 2020/ferguson1Generate the list of files in the entry’s manifest
+.entry.json.
For example:
+awk -f bin/filelist.entry.json.awk 2020/ferguson1/.entry.jsonGenerate the top level /authors.html page.
Usage:
+bin/gen-authors.sh -v 1Generate the top level /location.html page.
Usage:
+bin/gen-location.sh -v 1Generate entry HTML files from markdown other than README.md to +index.html HTML files.
+Usage:
+bin/gen-other-html.sh -v 1Generate a number of top level HTML pages for the IOCCC web +sites.
+Usage:
+bin/gen-top-md2html.sh -v 1Examples of top level HTML pages built by this tool include:
+ +Generate an index.html page for an given IOCCC year.
Usage:
+bin/gen-year-index.sh -v 1 2020Generate the top level /years.html page.
Usage:
+bin/gen-years.sh -v 1Updates the status.json file.
+Output manifest table from a entry .entry.json file.
+This is the primary tool that forms IOCCC generated HTML content from +markdown files (permanent markdown files or temporarily generated +markdown files) and HTML fragments from the inc +directory.
+The ../inc/md2html.cfg configuration +file is used by md2html.sh to drive the +generation process.
+Output author(s) Related HTML for for an entry’s index.html page.
+Output the inventory in HTML form for an entry’s index.html page.
+Output markdown of wining entry links for a given year.
+Wrapper tool to run pandoc.
+Runs readme2index.sh if the entry
+directory does not have a non-empty index.hmtl file, or if
+either .entry.json or README.md is newer than
+the index.hmtl file.
This is useful when only a few entries have been modified (resulting
+in an updated .entry.json file) or if the
+README.md of a few entries have been changed.
While the readme2index.sh take a few +seconds to run, when applied to 300+ entries, the extra time can add +up.
+If only a few index.hmtl files need updating, then this
+command will only briefly pause while the slightly longer readme2index.sh is run:
bin/all-run.sh -v 3 bin/quick-readme2index.sh -v 1NOTE: This command assumes that the relative
+modification times for index.hmtl,
+.entry.json, andREADME.md` are correct. If in doubt,
+use:
bin/all-run.sh -v 3 bin/readme2index.sh -v 1Convert a entry README.md into entry directory index.html.
+Sort .gitignore content from stdin to stdout.
+We sort with lines starting with # first. We sort with lines starting +with * second. We sort with lines that do not start with [#!*] third. We +sort with lines starting with ! fourth.
+This tool is used by sort.gitignore.sh.
+Sort a .gitignore in a entry directory.
+Usage:
+bin/sort.gitignore.sh -v 1 YYYY/dirSuggested usage:
+bin/all-run.sh bin/sort.gitignore.sh -v 1Print default substitutions.
+Print substitutions for a entry index.html.
+Output substitutions for navbar on behalf of a entry.
+Print substitutions for a year level index.html.
+Output substitutions for navbar on behalf of a year level +index.html.
+Form a compress tarball for an entry.
+Usage:
+bin/tar-entry.sh -v 1 YYYY/dirSuggested usage:
+bin/all-run.sh -v 3 bin/tar-entry.sh -v 1 -WForm the compressed tarball for all IOCCC years and all IOCCC +entries.
+Usage:
+bin/tar-all.sh -v 1Form a compress tarball for an IOCCC year.
+Usage:
+bin/tar-year.sh -v 1 YYYYSuggested usage:
+bin/all-years.sh -v 3 bin/tar-year.sh -v 1 -WThe md2html.sh tool is the primary tool that +is used to form all IOCCC related HTML pages for the official IOCCC web site.
+Nearly all IOCCC related HTML pages are built from markdown files, +from either permanent markdown files or temporary generated markdown +files, as well as HTML fragments from the inc directory.
+Most HTML content is built from permanant markdown files, such as a
+README.md markdown file found in each entry directory. Some
+HTML content are generated from temporary markdown files. These
+temporary markdown files are produced by tools in the bin directory and exist only while the tool is
+running.
In addition to converting markdown to HTML, the canonical way that +HTML content is built uses, by default, files from the inc directory, of the form:
+*.default.html
+By using command line options of the form
+-H phase=namewhere phase is the name of an HTML phase, a non-default
+file may be used. For example:
-H topnav=up2indexwill cause inc/topnav.up2index.html instead +of inc/topnav.default.html to +be used during the topnav HTML phase.
+If name is dot (i.e., “.”), then the given HTML phase is +skipped. For example:
+-H footer=.will cause no HTML content to be produced during the footer +HTML phase.
+The following HTML phase files are used to build HTML content:
+Phases 11-19 are reserved for future use.
+Phases 23-29 are reserved for future use.
+Phases 35-39 are reserved for future use.
+In the above HTML phase numbers, except during HTML phase numbers +20-29, symbols of the form %%TOKEN%% are substituted. Any %%TOKEN%% +printed by the ‘before tool’ (-b tool), the ‘pandoc wrapper tool’ (-p +tool), and the ‘after tool’ (-a tool) are ignored (i.e., not +substituted).
+See the tool readme2index.sh for an +example of how HTML phases are implemented.
+The command options are evaluated in the following getopt phases:
+In getopt phase 0 we parse command line options and save all +arguments for the end of the final command line.
+Depending on the program, the argument at the end is directory under +topdir, or it is a file under topdir.
+In getopt phase 0 is the only getopt phase where “-d topdir” and “-c +md2html.cfg” may be used.
+In getopt phase 1 we execute each -o “output tool” from getopt phase +0, parsing the output as a command line.
+The -o “output tool” may be given optstr from “-O tool=optstr”, +followed by the phase 0 argument.
+The -o “output tool” is not allowed to output another “-o tool”, nor +a “-O tool=optstr”. Instead an -o “output tool” may execute another -o +“output tool” merge the output into its own.
+In getopt phase 2 we parse the “cfg_options” from the first +“md2html.cfg” line matched by saved argument.
+The match is made with the (possibly modified) phase 0 argument.
+In getopt phase 3 we execute each -o “output tool” from getopt phase +2, parsing the output as a command line.
+The -o “output tool” may be given optstr from “-O tool=optstr”, +followed by the phase 0 argument.
+The -o “output tool” is not allowed to output another “-o tool”, nor +a “-O tool=optstr”. Instead an -o “output tool” may execute another -o +“output tool” merge the output into its own.
+Most command line options override earlier copies of the same option. +However in the case of ‘-H phase=name’, later ‘-H phase=name’ only +overrides an earlier use of ‘-H’ for the same ‘phase’ only. Also in the +case of ‘-s token=value’, later ‘-s token=value’ only overrides an +earlier use of ‘-s’ for the same ‘token’ only.
+An “output tool” may be used to add certain additional command line +options to be processed.
+IMPORTANT: An “output tool” will print each command line option / +argument on a separate line. So for example, if an “output tool” wishes +to convey:
+-s TITLE='IOCCC entry locations' -H topnav=top-of-site
+The “output tool” would output the following 4 lines:
+-s
+TITLE='IOCCC entry locations'
+-H
+topnav=top-of-site
+The command line opions printed by an “output tool” are processed +after all command line options, and all options from a matching line +from the md2html.cfg file, and before any filename arguments on the +command line.
+For exmaple:
+command [command_options ..] [cfg_options ..] [output_tool_options ..] [--] [filename_arg ..]
+Here the ‘command’ first processes any command line options, then it +processes ‘cfg_options’ obtained from this file from a 1st match of a +given file_glob, then it processes ‘output tool’ (i.e., -o tool) options +found in ‘command_options’, and ‘cfg_options’, then an optional – (end +of all options), then zero of more ‘filename_arg’ filename +arguments.
+The ‘-o tool’ must NOT output any ‘-o tool’ options as ‘-o tool’ is +NOT RECURSIVE. A ‘-o tool’ is free, however, to execute other ‘-o tool’ +output tools and merge the output from those tools into its own.
+When ‘-E exitcode’ is evaluated, the application will exit with the +‘exitcode’ value. If one wishes to also output a message to stderr, the +‘-e string’ must come BEFORE any ‘-E exitcode’ in the command line.
+All tokens (i.e., strings of the form ‘%%token%%’) MUST be +substituted (by some -s token=value) in all HTML output, except during +phase numbers 20-29 (i.e., except ‘before tool’ output, pandoc wrapper +output, and except ‘after tool’ output), or command will exit non-zero, +unless -S is given. If -S is given, only a warning about un-substituted +tokens will be written to stderr.
+The command line of tools in the bin +directory, and perhaps modified via md2html +config file file may change to using a different filename for a +given phase.
+For example when forming the HTML from
+2020/ferguson2/chocolate-cake.md, a different “topnav”
+navigation bar is needed. So instead of the usual top navigation bar
+that normally directs people to the previous entry for the year, or go
+up to the year page, or to the next entry for the year, a top navigation
+bar to just go up to the entry’s main page is needed. A line in the md2html config file file that refers to
+2020/ferguson1/chocolate-cake.md may specify use of
+topnav.up2index.html instead of using the
+topnav.default.html default.
The HTML phase may be skipped resulting in no HTML output during a +given phase. Furthermore, forming HTML content from a given markdown +file altogether.
+See comments in the md2html config +file file for details. See also, the tool readme2index.sh for an example of how such +command lines are used.
+Some of the files under this directory are used to form +MOST of the HTML content on the official IOCCC web site.
+These files are used to form MOST of the HTML +content on the experimental web +site.
+… and in particular files under inc +that are of the form (called default HTML files) …:
+*.default.html
+… contain default content used to form IOCCC HTML / IOCCC web +pages.
+Instead of editing the default HTML files in order to fix a special +web page, consider making a copy of the default file and modifying the +md2html config file to refer to the copy +instead. That way your special case situation will not impact +MOST of the HTML content.
+You may wonder why we need these files in the first place. You may +wonder why we even need the tools in the bin +directory when there other solutions available to form web pages.
+Here are some reasons why we are using these files and special tools +to create HTML content / IOCCC web pages:
+We host official IOCCC web site +via GitHub pages. As of the time +this file written, only static web pages are +supported.
+We use static web pages, so use of “server +side include” is not available to the IOCCC.
+For example, Apache SSI “#include” does not work on GitHub pages.
+We use static web pages, so use of +“back-end database” is not available to the IOCCC.
+The GitHub pages have the +distributed server capacity needed to handle the huge download +volume or Slashdot effect +that happens when a IOCCC entries are published.
+Most so-called low cost web hosting sites have a somewhat hidden +excessive bandwidth charge and/or cap bandwidth when the volume gets too +high, and/or do not have the infrastructure that can handle the Slashdot +effect.
+The IOCCC had experience with people offering web mirrors and even +free hosting only to find that the generous benefactor moves on, or +their service is purchased by someone else who is not so generous. While +it is possible that GitHub might someday suffer a similar fate, for the +time being we are betting that GitHub will remain willing to host the +IOCCC.
+The official IOCCC web site is, +after all, primarily C source code with some supporting documentation. +As such it is a natural fit for GitHub and GitHub pages.
+The < object > HTML tag does not work for our +needs.
+The browser context relationship between the HTML content holds the +HTML tag does not extend into the content that the tag includes. For +example, menu bars will not operate as specified by the ioccc CSS.
+The < embed > HTML tag does not work for our +needs.
+This tag wants one to specify the width and height +in pixels. Use of a percentage is not officially supported even if some +browsers might do so. Our Responsive Web Design on the ioccc CSS needs to be responsive to small-sized +cell phone-like screens, mid-sized table-like screens, as well as +large-sized desktop-like screens. Specifying a width and +height in pixels will not work well in all of those screen size +contexts.
+The < iframe > HTML tag does not work for our +needs.
+This tag wants one to specify the width and height +in pixels. Use of a percentage is not officially supported even if some +browsers might do so. Our Responsive Web Design on the ioccc CSS needs to be responsive to small-sized +cell phone-like screens, mid-sized table-like screens, as well as +large-sized desktop-like screens. Specifying a width and +height in pixels will not work well in all of those screen size +contexts.
+We do not use JavaScript to include HTML content.
+While the IOCCC may use JavaScript in the future to directly render +things like C source code, we will do so in such a way that someone will +be able to view official IOCCC web +site content with JavaScript disabled.
+The IOCCC will NOT MANDATE USE OF JavaScript to view +official IOCCC web site.
+For this reason, we cannot use JavaScript include HTML content.
+The following IOCCC terms apply to tools, JSON files, and the +directory structure of this repo.
+authorAn individual who was an author of at least one winning
+IOCCC entry.
Some authors have submitted more than one IOCCC entry that won. Some +winning IOCCC entries have more than one author.
+author_handleAn 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
+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 be 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. Contest
+submitters who wish to override the 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.
Anonymous author_handle’s match this regexp:
Anonymous_[0-9][0-9][0-9][0-9][.0-9]*$
+entryAn IOCCC entry that won an award for given IOCCC.
+A entry has one more more authors.
Each entry is contained under its own directory. The
+parent of the entry directory is the year’s directory.
While in most cases a entry consists of files under a
+entry’s directory, there are a few cases where a entry
+directory contains subdirectories.
Use of subdirectories under a entry directory is
+discouraged and may be limited to previous entrys that used
+them.
NOTE: In the past, the term winner was used in instead of +today’s term of entry.
+yearA 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.
.yearEach year will have a file directory under it named:
.year
+The contents of the .year file is the year string of the
+directory. For instance, 2020/.year has the
+string: 2020.
dirA dir is a POSIX safe string that holds an entry.
A dir is a string that matches this regexp:
^[a-z][0-9a-z.-]*$
+Each
+_entry_ is under its own individual directory. This directory is directly under ayear`
+directory.
entry_idA string that identifies the winning entry. The string is of the +form:
+year_dir
+
+
+
+
+
+
+
+
+ The inc directory holds content that is used +by the tools in the bin directory.
+We use inc because “include” would be misleading for both C and +because the contents of HTML files under inc are +not really included by the web server or the browser. Content of HTML +files is processed by tools the bin +directory. Processing can include substitution of strings of the form +%%CURDS%% with some command line supplied value by the tool in +question.
+ + + + + + + +
-
-Please visit -www.ioccc.org -for the official IOCCC web. -
-Please do NOT bookmark nor link to this >experimental web site: -
-https://ioccc-src.github.io/temp-test-ioccc/ --
-When this experiment is finished, this site will go away! -
-This test web tree is part of the temp-test-ioccc GitHub repo: -
-https://github.com/ioccc-src/temp-test-ioccc --
-This web site will be undergoing major changes, so expect many broken links, typos and other problems. -If you wish to recommend changes (understanding that things may be rapidly changing out from under your copy), -then consider making pull requests against the -temp-test-ioccc GitHub repo. -
-
The IOCCC is currently CLOSED.
+
+ Right now, you CANNOT register as a contestant with the IOCCC,
-nor can you submit an entry because the IOCCC is yet NOT open.
+
+
-
Please see the watch the IOCCC news below for information on the next IOCCC. +
You may also check on the status.json for the current status of the IOCCC. + + - -
-
| © Copyright 1984-2023,
-Landon Curt Noll and Leonid A. Broukhis. - All rights reserved. -This work is licensed under the -Creative -Commons CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International License. -If you do use this work in some form, the -IOCCC judges would appreciate (but does not require) -if you were to send us a note about your use. |
-
IMPORTANT: This is NOT the official IOCCC web +site!
+Please visit www.ioccc.org for the +official IOCCC web.
+Please do NOT bookmark nor link to this experimental web +site!
+When this experiment is finished, this site will go +away!
+This test web tree is part of the temp-test-ioccc +GitHub repo.
+This web site will be undergoing major changes, so expect many broken +links, typos and other problems. If you wish to recommend changes +(understanding that things may be rapidly changing out from under your +copy), then consider making pull requests against the temp-test-ioccc +GitHub repo.
+Explore the Winning Entries sorted by year, +or sort by People who have won.
+tr.v. -cated, -cating, -cates.
1a. To
+render obscure.
1b. To darken.
+2. To confuse: his emotions obfuscated his
+judgment.
[LLat. obfuscare, to darken : ob(intensive) + Lat.
+fuscare,
to darken < fuscus, dark.] -obfuscation
+n. obfuscatory adj.
The goals of the IOCCC:
+Right now, you CANNOT register as a contestant with
+the IOCCC,
nor can you submit an entry because the
+IOCCC is yet NOT open.
Please see
+the watch the IOCCC news below for
+information on the next IOCCC.
You may also check
+on the status.json for the current status of
+the IOCCC.

-
Leonid A. Broukhis -- http://www.mailcom.com/main.shtml
-Landon Curt Noll -- http://www.isthe.com/chongo/
+
+ If you want to contact the IOCCC judges, please see Contacting the IOCCC.
+| © Copyright 1984-2023,
-Landon Curt Noll and Leonid A. Broukhis. - All rights reserved. -This work is licensed under the -Creative -Commons CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International License. -If you do use this work in some form, the -IOCCC judges would appreciate (but does not require) -if you were to send us a note about your use. |
-

-
-Please visit -www.ioccc.org -for the official IOCCC web. -
-Please do NOT bookmark or link to this -experimental web site: -
-https://ioccc-src.github.io/temp-test-ioccc/ --
-When this experiment is finished, this site will go away! -
-This test web tree is part of the -temp-test-ioccc GitHub repo: -
-https://github.com/ioccc-src/temp-test-ioccc --
-This web site will be undergoing major changes, so expect many broken links, typos and other problems. -If you wish to recommend changes (understanding that things may be rapidly changing out from under your copy), -then consider making pull requests against the -temp-test-ioccc GitHub repo. -
-
+ -While you are free to look at the temp-test-ioccc GitHub repo, -please do not link to it as this repo and related web site will disappear once the main -IOCCC winner repo has been updated. --Also be aware that the temp-test-ioccc GitHub repo + + + +
+ + + + ++ + + + ++ + + + ++ Jump to contents ++
+ +
+ +
++ Bugs & (mis)features + Fixing IOCCC entries + Fixing the web site + Fixing author info + Thanks for the help ++
+ +
++ Jump to top ++ + + + ++ + + + + + + + + +-2023-02-29
+We continue to make good progress on web site. In the temp-test-ioccc +GitHub repo we have made nearly 4600 changes to date!
+All web pages, including this one, are now constructed from markdown +files and/or JSON data files using tools found in the bin directory.
+2023-05-22
+We have been busy preparing for an important / significant update to +this web site. In the temp-test-ioccc +GitHub repo we have made nearly 2645 changes to date.
++While you are free to look at the [temp-test-ioccc GitHub repo](https://github.com/ioccc-src/temp-test-ioccc), +please **do not link to it** as this repo and related web site will disappear once the main +[IOCCC winner repo](https://github.com/ioccc-src/winner) has been updated. + +Also be aware that the [temp-test-ioccc GitHub repo](https://github.com/ioccc-src/temp-test-ioccc) is undergoing rapid changes. There are broken links and other things in mid-change. --Once we are ready to update the IOCCC winner repo -and its associated www.ioccc.org web site, -we will post a news article warning of the pending change that is about to arrive. - -These 2645+ changes in the temp-test-ioccc GitHub repo -include diverse things such as: -
-
-
-- Moving IOCCC entries into their own separate directories -
- Fixing lots and lots of typos -
- Fixing Makefiles and code to allow for nearly all winners to be compiled on modern systems -
- Reworking the Makefiles to use a consistent set of rules -
- Reworking the Makefiles to compile under gcc and clang -
- Replacing the various hint files with a README.md markdown that is more consistent across IOCCC years -
- Setting up a system whereby authors of IOCCC entries may update their own contact information via a GitHub pull request -
- Setting up to generate the top level years.html file via a tool -
- Setting up to generate the top level authors.html file via a tool -
- etc. -
-We have lots more to do. Our work is not finished. We just wanted to let you know that we are making good progress. -
-In regards to the next IOCCC. We do plan to hold a 28th IOCCC. However before we do that, we plan -to hold what will be called IOCCCMOCK, a beta-test IOCCC where we plan to test the new -mkiocccentry tool, a tool that will package -submissions to the IOCCC. -
-We are working on an improved IOCCC submit server -that will allow those who submit entires to be informed about the status of their submission. -This IOCCC submit server will be beta tested in the IOCCCMOCK. -
-We are working on a method to rapidly post the winners of an IOCCC. No longer will winners -be subject to a long delay between announcing that they have won and their code being made available. -No longer will procrastination delay the public seeing the winning code. Instead the -announcement of the winners of an IOCCC will be done by posting the winning code via a GitHub commit. -Any corrections, improvement, typo fixes and other fixes will be applied to the winners via GitHub pull requests: -by the authors and/or other interested 3rd parties. -
-All the above represent one of the most significant (and useful) changes to the IOCCC since it started back in 1984. -While we are doing lots of testing, we are sure that issues, mis-features and even bugs will be uncovered -when we go live. For this reason, we plan to beta-test the process by holding an IOCCCMOCK. -The IOCCCMOCK will be like a regular IOCCC except that the judges will not judge the code. -Instead, people will be invited to submit a simple "Hello, world!" style program. -Awards will be given to those who: -
-
-
-- submit the best pull requests that fix a bug -
- submit the best pull requests that fix a typo -
- make the best suggestions for improvements -
- have the most fun / make us laugh -
- etc. -
-The IOCCCMOCK will allow is to restart the beta-test contest should a major problem be discovered -that needs urgent fixing. -The IOCCCMOCK will us to beta-test the new IOCCC process without putting the hard work of those -who submit real IOCCC entries at risk. -
-Stay tuned! - - -
-
- -- 2023-01-30 -
-
- -We added to the -status.json page, -a "status_date" JSON member whose value is the date -of the most recent status.json modification, -in date(1) format. -
-We also added to the -status.json page, -a "latest_news" JSON member whose value is the date -of the most recent news item. -
-For example: -
-- "status_date" : "Mon Jan 30 02:28:44 PST 2023", - "latest_news" : "Mon Jan 30 02:28:44 PST 2023" --
- -- 2022-12-18 -
-
- -As per the suggestion of Toni -Mikkola (@Virtaava@home.social) we now maintain a -status.json page on this web site. -
-In addition to the IOCCC-style easter egg, you may count on -the JSON status page having a JSON member with name of "contest" -that will have a value of either "closed" or "open". -When a future IOCCC is announced or the IOCCC is currently open, -the JSON member with name of "contest" will change from -"closed" to "open". -
-Additional JSON members be added describing the contest such as -the IOCCC contest number, open date, close date, timezone, etc. -The details of such additional JSON members are TBD. -
-When an open IOCCC closes, we won't instantaneously update the -status.json page. -Instead you will have to rely on the additional JSON information -and/or read the IOCCC news, -and/or follow us on Mastodon via @ioccc@fosstodon.org. -
-
- -- 2022-11-29 -
-
- -We are plan to abandon our -IOCCC Twitter feed -in favor of our new -IOCCC Mastodon feed. -
-Our Mastodon username is: @ioccc@fosstodon.org. -
-Please note: As of the date of this posting, our account was just setup, -so there isn't much to read there, yet. ---In the future we plan to use Mastodon as our official announcement platform. -This will include announcing: -
-
-- IOCCC news updates -
- Start of a new IOCCC -
- Updates on the IOCCC judging process -
- Who won the IOCCC -
- etC. :-) -
-When registering for a new IOCCC, we will no longer ask for an optional twitter handle. -Instead, you will be asked if you wish to provide a Mastodon username when you submit your IOCCC entry. -Use of Mastodon is NOT required to enter the IOCCC, but nevertheless is encouraged. -Proving a Mastodon username will be entirely optional. -
-Non-mastodon users can follow the IOCCC postings via: -fosstodon.org/@ioccc. -
-If you do not yet have a Mastodon account, you may obtain a free mastodon account via: -joinmastodon.org. -
-If you do have / obtain a Mastodon account, please do us a favor and -follow the IOCCC at: -
-@ioccc@fosstodon.org --The IOCCC wishes to thank the good folk running the -fosstodon.org -Mastodon hub. -Their technology focused -Fosstodon Hub -is made possible by volunteers, -and those who voluntarily -support the cost of their server. --Stay tuned in Mastodon as we update you on our progress towards the next IOCCC! -
-
- 2022-11-19 -
- -Source code has been released for version 0.8.1 2022-11-19 of the -mkiocccentry repo, -a GitHub repo that includes the official iocccsize tool, -and a tool will form a compressed tarball of their entry. -
-We are working on a submit server that will allow a registered IOCCC contestant -to upload the above mentioned compressed tarball: when the contest is open of course. -
-Once we reach version 1.0, we plan to invite the public to test and comment. -
-We plan to hold in 2023, what we will call IOCCCMOCK, a trial IOCCC contest where the -judges will go through the motions (without judging the content) of an IOCCC: -testing the above mentioned tools and testing the submit server. -
-We are working on complete rebuild of this web site as well. -
- -- 2022-01-15 -
- -Source code has been released for version 0.24 2022-01-15 of the -mkiocccentry tool, +Once we are ready to update the [IOCCC winner repo](https://github.com/ioccc-src/winner) +and its associated [www.ioccc.org](index.html) web site, +we will post a news article warning of the pending change that is about to arrive.
These 2645+ changes in the temp-test-ioccc +GitHub repo include diverse things such as:
++
+- Moving IOCCC entries into their own separate directories
+- Fixing lots and lots of typos
+- Fixing Makefiles and code to allow for nearly all winners to be +compiled on modern systems
+- Reworking the Makefiles to use a consistent set of rules
+- Reworking the Makefiles to compile under gcc and clang
+- Replacing the various hint files with a README.md markdown that is +more consistent across IOCCC years
+- Setting up a system whereby authors of IOCCC entries may update +their own contact information via a GitHub pull request
+- Setting up to generate the top level years.html file via a tool
+- Setting up to generate the top level authors.html file via a tool
+- etc.
+We have lots more to do. Our work is not finished. We just wanted to +let you know that we are making good progress.
+In regards to the next IOCCC. We do plan to hold a 28th +IOCCC. However before we do that, we plan to hold what will be +called IOCCCMOCK, a beta-test IOCCC where we plan to +test the new mkiocccentry tool, +a tool that will package submissions to the IOCCC.
+We are working on an improved IOCCC submit server +that will allow those who submit entires to be informed about the status +of their submission. This IOCCC submit server will be +beta tested in the IOCCCMOCK.
+We are working on a method to rapidly post the winners of an IOCCC. +No longer will winners be subject to a long delay between announcing +that they have won and their code being made available. No longer will +procrastination delay the public seeing the winning code. Instead the +announcement of the winners of an IOCCC will be done by posting +the winning code via a GitHub commit. Any corrections, +improvement, typo fixes and other fixes will be applied to the winners +via GitHub pull requests: by the authors and/or other interested 3rd +parties.
+All the above represent one of the most significant (and useful) +changes to the IOCCC since it started back in 1984. While we are doing +lots of testing, we are sure that issues, mis-features and even bugs +will be uncovered when we go live. For this reason, we +plan to beta-test the process by holding an IOCCCMOCK. +The IOCCCMOCK will be like a regular IOCCC except that +the judges will not judge the code. Instead, people +will be invited to submit a simple “Hello, world!” style +program. Awards will be given to those who:
++
+- submit the best pull requests that fix a bug
+- submit the best pull requests that fix a typo
+- make the best suggestions for improvements
+- have the most fun / make us laugh
+- etc.
+The IOCCCMOCK will allow is to restart the beta-test +contest should a major problem be discovered that needs urgent fixing. +The IOCCCMOCK will us to beta-test the new IOCCC +process without putting the hard work of those who submit real IOCCC +entries at risk.
+Stay tuned!
+2023-01-30
+We added to the status.json page, a +“status_date” JSON member whose value is the date of the most +recent status.json modification, in +date(1) format.
+We also added to the status.json page, a +“latest_news” JSON member whose value is the date of the most +recent news item.
++"status_date" : "Mon Jan 30 02:28:44 PST 2023", +"latest_news" : "Mon Jan 30 02:28:44 PST 2023"2022-12-18
+As per the suggestion of Toni Mikkola +(_@Virtaava@home.social_) we now +maintain a status.json page on this web +site.
+In addition to the IOCCC-style easter egg, you may count on +the JSON status page having a JSON member with name of +“contest” that will have a value of either +“closed” or “open”. When a future +IOCCC is announced or the IOCCC is currently open, the +JSON member with name of “contest” will change from +“closed” to “open”.
+Additional JSON members be added describing the contest such as the +IOCCC contest number, open date, close date, timezone, etc. The details +of such additional JSON members are TBD.
+When an open IOCCC closes, we won’t instantaneously update the status.json page. Instead you will have to rely +on the additional JSON information and/or read the IOCCC +news, and/or follow us on Mastodon via @ioccc@fosstodon.org.
+2022-11-29
+We are plan to abandon our IOCCC +Twitter feed in favor of our new IOCCC Mastodon feed.
+Our Mastodon username is: @ioccc@fosstodon.org.
++Please note: As of the date of this posting, our account was just setup, +so there isn't much to read there, yet.In the future we plan to use Mastodon as our official announcement +platform. This will include announcing:
++
+- IOCCC news updates
+- Start of a new IOCCC
+- Updates on the IOCCC judging process
+- Who won the IOCCC
+- etC. :-)
+When registering for a new IOCCC, we will no longer ask for an +optional twitter handle. Instead, you will be asked if you wish to +provide a Mastodon username when you submit your IOCCC entry. Use of +Mastodon is NOT required to enter the IOCCC, but +nevertheless is encouraged. Proving a Mastodon username will be entirely +optional.
+Non-mastodon users can follow the IOCCC postings via: fosstodon.org/@ioccc.
+If you do not yet have a Mastodon account, you may obtain a +free mastodon account via: joinmastodon.org.
+If you do have / obtain a Mastodon account, please do us a +favor and follow the IOCCC at:
++**@ioccc@fosstodon.org**The IOCCC wishes to thank the good folk running the fosstodon.org Mastodon hub. +Their technology focused Fosstodon +Hub is made possible by volunteers, and those who voluntarily support the cost of their +server.
+Stay tuned in Mastodon as we update you on our progress towards the +next IOCCC!
+2022-11-19
+Source code has been released for version 0.8.1 +2022-11-19 of the mkiocccentry repo, +a GitHub repo that includes the official iocccsize tool, and a tool will +form a compressed tarball of their entry.
+We are working on a submit server that will allow a registered IOCCC +contestant to upload the above mentioned compressed tarball: when the +contest is open of course.
+Once we reach version 1.0, we plan to invite the public to test and +comment.
+We plan to hold in 2023, what we will call +IOCCCMOCK, a trial IOCCC contest where the judges will +go through the motions (without judging the content) of an IOCCC: +testing the above mentioned tools and testing the submit server.
+We are working on complete rebuild of this web site as well.
+2022-01-15
+Source code has been released for version 0.24 +2022-01-15 of the mkiocccentry tool, a tool that is based on, and is containing, the official iocccsize tool, -will form a compressed tarball that a registered IOCCC contestant -will upload to the submit server (when the contest is open of course). -
+
+will form a compressed tarball that a registered IOCCC contestant will +upload to the submit server (when the contest is open of course).2021-12-27
+The Judges are continuing to work on +re-tooling how we run the IOCCC. We are writing tools under various +repositories our IOCCC GitHub +organization site.
+We plan to hold IOCCC28 in 2023. Sorry for the +delay, but we think you will appreciate the re-tooling when it is +completed. Stay tuned!
+2021-10-21
+The Judges are re-tooling how we run the +IOCCC. Our goal is to build a smoother, more rapid process centered +around GitHub.
+For example, when we announce the winners, we will do so by +committing their code to the Winning entries +of the IOCCC repo, so that people will be able immediately view the +winning source.
+We plan to refactor and modernize the IOCCC web site. We also plan to +build a new and improved way to submit entries the next IOCCC. As a +result of all this work we need to do, we plan to hold IOCCC28 +in 2023 instead of 2021. Sorry for the delay, but we think you +will appreciate the re-tooling when it is completed.
+Stay tuned for how you may be able to help in the IOCCC +redesign for IOCCC28!
-- 2021-12-27 -
- -The Judges -are continuing to work on re-tooling how we run the IOCCC. -We are writing tools under various repositories our -IOCCC GitHub organization site. -
-We plan to hold IOCCC28 in 2023. -Sorry for the delay, but we think you will appreciate the re-tooling -when it is completed. -Stay tuned! -
+ + - -- 2021-10-21 -
- -The Judges -are re-tooling how we run the IOCCC. -Our goal is to build a smoother, more rapid process centered around -GitHub. -
-For example, when we announce the winners, -we will do so by committing their code to the -Winning entries -of the IOCCC repo, so that people will be able immediately -view the winning source. -
-We plan to refactor and modernize the IOCCC web site. -We also plan to build a new and improved way to submit entries the next IOCCC. -As a result of all this work we need to do, -we plan to hold IOCCC28 in 2023 instead of 2021. -Sorry for the delay, but we think you will appreciate the re-tooling -when it is completed. -
-Stay tuned for how you may be able to help in the IOCCC redesign for IOCCC28! -
+ + - + -- 2020-12-31 -
- Released the -winners of the 27th IOCCC. -
- Moved the IOCCC source tree and web site to -GitHub. -
+- 2020-07-25 -
- The winners of the 27th IOCCC have been announced. Congratulations! -
+ + -- 2020-03-22 -
- Due to current world events, we are extending the 27th IOCCC until 2020-May-15 06:26:49 UTC -
- The submission tool will now be active until 2020-May-15 06:26:49 UTC -
+ -- 2019-10-13 -
- The source code for the winners of the 26th IOCCC has been released. -
- The 27th IOCCC will be open from 2019-Dec-26 06:01:41 UTC (Boxing Day)
to 2020-Mar-15 06:26:49 UTC (Ides of March). -- The submission tool will be available around 2020-Jan-15 15:15:15 UTC. -
- Draft Rules, Guidelines and IOCCC size tool for the 27th IOCCC are available. -
+ + -- 2019-06-16 -
- Due to some delays, we now plan to publish source and annotations in early July 2019. -
+ + -- 2019-05-11 -
- The winners of the 26th IOCCC have been announced. Congratulations! -
- -- 2019-03-16 -
- The 26th IOCCC is now closed and Judging has commenced. -
- -- 2018-12-26 -
- The 26th IOCCC will be open from 2018-Dec-26 16:06:69 to 2019-Mar-15 00:86:07. -
- The submission tool will be available around 2019-Jan-15 15:15:15 UTC. -
- Draft Rules, Guidelines and IOCCC size tool are available. -
- -- 2018-05-06 -
- The source code for the winners of the 25th IOCCC has been released. -
- -- 2018-04-01 -
- The winners of the 25th IOCCC have been announced. Congratulations! -
- We plan to publish source and annotations in the next 30 days -
- -- 2018-02-16 -
- Due to a scheduling conflict with one of the IOCCC judges, the 25th IOCCC end date is now the Ides of March. -
- Please submit your entries by 2018-Mar-15 03:08:07 UTC. -
- Updated: The 25th IOCCC will be open from 2017-Dec-29 05:38:51 UTC to 2018-Mar-15 03:08:07 UTC. -
- -- 2018-01-19 -
- There is a delay in making the submission tool available. Please retry on 2018-Jan-21 23:09:09 UTC. -
---> - - -Older news has been archived, but is not currently available.
- -
- -- - - + diff --git a/news.md b/news.md new file mode 100644 index 000000000..53c1fc9a1 --- /dev/null +++ b/news.md @@ -0,0 +1,232 @@ +# 2023-02-29 + +We continue to make good progress on web site. In the [temp-test-ioccc GitHub repo](https://github.com/ioccc-src/temp-test-ioccc) we have made nearly 4600 changes to date! + +All web pages, including this one, are now constructed from markdown files and/or JSON data files using tools found in the [bin](bin/index.html) directory. + + +# 2023-05-22 + +We have been busy preparing for an important / significant update to this web site. In the [temp-test-ioccc GitHub repo](https://github.com/ioccc-src/temp-test-ioccc) we have made nearly 2645 changes to date. + +``` +While you are free to look at the [temp-test-ioccc GitHub repo](https://github.com/ioccc-src/temp-test-ioccc), +please **do not link to it** as this repo and related web site will disappear once the main +[IOCCC winner repo](https://github.com/ioccc-src/winner) has been updated. + +Also be aware that the [temp-test-ioccc GitHub repo](https://github.com/ioccc-src/temp-test-ioccc) +is undergoing rapid changes. There are broken links and other things in mid-change. + +Once we are ready to update the [IOCCC winner repo](https://github.com/ioccc-src/winner) +and its associated [www.ioccc.org](index.html) web site, +we will post a news article warning of the pending change that is about to arrive. +``` + +These 2645+ changes in the [temp-test-ioccc GitHub repo](https://github.com/ioccc-src/temp-test-ioccc) +include diverse things such as: + +* Moving IOCCC entries into their own separate directories +* Fixing lots and lots of typos +* Fixing Makefiles and code to allow for nearly all winners to be compiled on modern systems +* Reworking the Makefiles to use a consistent set of rules +* Reworking the Makefiles to compile under gcc and clang +* Replacing the various hint files with a README.md markdown that is more consistent across IOCCC years +* Setting up a system whereby authors of IOCCC entries may update their own contact information via a GitHub pull request +* Setting up to generate the top level [years.html](years.html) file via a tool +* Setting up to generate the top level [authors.html](authors.html) file via a tool +* etc. + +We have lots more to do. Our work is not finished. We just wanted to let you know that we are making good progress. + +In regards to the next IOCCC. We **do plan to hold a 28th IOCCC**. However before we do that, we plan +to hold what will be called **IOCCCMOCK**, a beta-test IOCCC where we plan to test the new +[mkiocccentry tool](https://github.com/ioccc-src/mkiocccentry), a tool that will package +submissions to the IOCCC. + +We are working on an improved **IOCCC submit server** +that will allow those who submit entires to be informed about the status of their submission. +This **IOCCC submit server** will be beta tested in the **IOCCCMOCK**. + +We are working on a method to rapidly post the winners of an IOCCC. No longer will winners +be subject to a long delay between announcing that they have won and their code being made available. +No longer will procrastination delay the public seeing the winning code. Instead the +**announcement of the winners of an IOCCC will be done by posting the winning code via a GitHub commit.** +Any corrections, improvement, typo fixes and other fixes will be applied to the winners via GitHub pull requests: +by the authors and/or other interested 3rd parties. + +All the above represent one of the most significant (and useful) changes to the IOCCC since it started back in 1984. +While we are doing lots of testing, we are sure that issues, mis-features and even bugs will be uncovered +when we **go live**. For this reason, we plan to beta-test the process by holding an **IOCCCMOCK**. +The **IOCCCMOCK** will be like a regular IOCCC except that the judges **will not** judge the code. +Instead, people will be invited to submit a simple _"Hello, world!"_ style program. +Awards will be given to those who: + +* submit the best pull requests that fix a bug +* submit the best pull requests that fix a typo +* make the best suggestions for improvements +* have the most fun / make us laugh +* etc. + +The **IOCCCMOCK** will allow is to restart the beta-test contest should a major problem be discovered +that needs urgent fixing. +The **IOCCCMOCK** will us to beta-test the new IOCCC process without putting the hard work of those +who submit real IOCCC entries at risk. + +Stay tuned! + + +# 2023-01-30 + +We added to the +[status.json](status.json) page, +a _"status_date"_ JSON member whose value is the date +of the most recent [status.json](status.json) modification, +in _date(1)_ format. + +We also added to the +[status.json](status.json) page, +a _"latest_news"_ JSON member whose value is the date +of the most recent news item. + +```json +"status_date" : "Mon Jan 30 02:28:44 PST 2023", +"latest_news" : "Mon Jan 30 02:28:44 PST 2023" +``` + + +# 2022-12-18 + +As per the suggestion of [Toni Mikkola](https://fosstodon.org/@Virtaava@home.social) +(_@Virtaava@home.social_) we now maintain a +[status.json](status.json) page on this web site. + +In addition to the IOCCC-style _easter egg_, you may count on +the JSON status page having a JSON member with name of **"contest"** +that will have a value of either **"closed"** or **"open"**. +When a future **IOCCC** is announced or the IOCCC is currently open, +the JSON member with name of **"contest"** will change from +**"closed"** to **"open"**. + +Additional JSON members be added describing the contest such as +the IOCCC contest number, open date, close date, timezone, etc. +The details of such additional JSON members are _TBD_. + +When an open IOCCC closes, we won't instantaneously update the +[status.json](status.json) page. +Instead you will have to rely on the additional JSON information +and/or read the [IOCCC news](#news), +and/or follow us on Mastodon via **@ioccc@fosstodon.org**. + + +# 2022-11-29 + +We are plan to abandon our +[IOCCC Twitter feed](https://twitter.com/ioccc) +in favor of our new [IOCCC Mastodon](https://fosstodon.org/@ioccc) feed. + +Our Mastodon username is: **@ioccc@fosstodon.org**. + +``` +Please note: As of the date of this posting, our account was just setup, +so there isn't much to read there, yet. +``` + +In the future we plan to use Mastodon as our official announcement platform. +This will include announcing: + +* IOCCC news updates +* Start of a new IOCCC +* Updates on the IOCCC judging process +* Who won the IOCCC +* et**C**. :-) + +When registering for a new IOCCC, we will no longer ask for an optional twitter handle. +Instead, you will be asked if you wish to provide a Mastodon username when you submit your IOCCC entry. +Use of Mastodon is **NOT** required to enter the IOCCC, but nevertheless is encouraged. +Proving a Mastodon username will be entirely **optional**. + +Non-mastodon users can follow the IOCCC postings via: +[fosstodon.org/@ioccc](https://fosstodon.org/@ioccc). + +If you do not yet have a Mastodon account, you may obtain a **free mastodon account via**: +[joinmastodon.org](https://joinmastodon.org). + +If you do have / obtain a Mastodon account, **please do us a favor and follow the IOCCC at**: + +``` +**@ioccc@fosstodon.org** +``` + +The IOCCC wishes to thank the good folk running the +[fosstodon.org](https://hub.fosstodon.org/about/) +Mastodon hub. +Their technology focused +[Fosstodon Hub](https://hub.fosstodon.org) +is made possible by volunteers, +and those who voluntarily +[support](https://hub.fosstodon.org/support/) the cost of their server. + +Stay tuned in Mastodon as we update you on our progress towards the next IOCCC! + + +# 2022-11-19 + +Source code has been released for version **0.8.1 2022-11-19** of the +[mkiocccentry repo](https://github.com/ioccc-src/mkiocccentry), +a GitHub repo that includes the official iocccsize tool, +and a tool will form a compressed tarball of their entry. + +We are working on a submit server that will allow a registered IOCCC contestant +to upload the above mentioned compressed tarball: when the contest is open of course. + +Once we reach version 1.0, we plan to invite the public to test and comment. + +We plan to hold in 2023, what we will call **IOCCCMOCK**, a trial IOCCC contest where the +judges will go through the motions (without judging the content) of an IOCCC: +testing the above mentioned tools and testing the submit server. + +We are working on complete rebuild of this web site as well. + + +# 2022-01-15 + +Source code has been released for version **0.24 2022-01-15** of the +[mkiocccentry tool](https://github.com/ioccc-src/mkiocccentry), +a tool that is based on, and is containing, the official iocccsize tool, +will form a compressed tarball that a registered IOCCC contestant +will upload to the submit server (when the contest is open of course). + +# 2021-12-27 + +[The Judges](/judges.html) +are continuing to work on re-tooling how we run the IOCCC. +We are writing tools under various repositories our +[IOCCC GitHub organization site](https://github.com/ioccc-src). + +**We plan to hold IOCCC28 in 2023.** +Sorry for the delay, but we think you will appreciate the re-tooling +when it is completed. +Stay tuned! + + +# 2021-10-21 + +[The Judges](/judges.html) +are re-tooling how we run the IOCCC. +Our goal is to build a smoother, more rapid process centered around +[GitHub](https://github.com/ioccc-src/winner). + +For example, when we announce the winners, +we will do so by committing their code to the +[Winning entries](/years.html) +of the IOCCC repo, so that people will be able immediately +view the winning source. + +We plan to refactor and modernize the IOCCC web site. +We also plan to build a new and improved way to submit entries the next IOCCC. +As a result of all this work we need to do, +**we plan to hold IOCCC28 in 2023 instead of 2021**. +Sorry for the delay, but we think you will appreciate the re-tooling +when it is completed. + +**Stay tuned for how you may be able to help in the IOCCC redesign for IOCCC28!**
- - © Copyright 1984-2023, -Landon Curt Noll and Leonid A. Broukhis. - All rights reserved. -
-This work is licensed under the -Creative -Commons CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International License.
-If you do use this work in some form, the -IOCCC judges would appreciate (but does not require) -if you were to send us a note about your use.