diff --git a/1984/anonymous/.entry.json b/1984/anonymous/.entry.json index 2fb63d4e2..1a0962d1c 100644 --- a/1984/anonymous/.entry.json +++ b/1984/anonymous/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "1984_anonymous.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1984/anonymous/index.html b/1984/anonymous/index.html index b1e681b82..976096d44 100644 --- a/1984/anonymous/index.html +++ b/1984/anonymous/index.html @@ -88,6 +88,7 @@
IOCCC News Contest status + Rules and Guidelines How to enter the IOCCC FAQ
@@ -141,19 +142,19 @@ Location: US - United States of America

To build:

-
    make all
+
    make all

To use:

-
    ./anonymous
+
    ./anonymous

Alternate code:

The original version of this entry was added, by request, in order to show the code that was turned into the tattoo, as the alternate code. See below for the tattoo side-by-side with the code.

Alternate build:

-
    make alt
+
    make alt

Alternate use:

NOTE: this version might not work on some systems like macOS.

-
    ./anonymous.alt
+
    ./anonymous.alt

Judges’ remarks:

The author was too embarrassed that they could write such trash, so I promised to protect their identity. I will say that the author of this @@ -221,10 +222,10 @@ ends in a smily face: ;}.

  • anonymous.alt.c - alternative source
  • anonymous.orig.c - original source
  • 1984-anonymous-tattoo.jpg - source code tattoo
  • -
  • 1984_anonymous.tar.bz2 - download entry tarball
  • Secondary files

    Secondary files

      +
    • 1984_laman.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1984/mullender/.entry.json b/1984/mullender/.entry.json index d7cb81025..5af11a0ac 100644 --- a/1984/mullender/.entry.json +++ b/1984/mullender/.entry.json @@ -60,7 +60,7 @@ }, { "file_path" : "1984_mullender.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1984/mullender/index.html b/1984/mullender/index.html index 4156bc2e0..09f428b17 100644 --- a/1984/mullender/index.html +++ b/1984/mullender/index.html @@ -88,6 +88,7 @@ @@ -144,7 +145,7 @@ Location: NL - Kingdom of the Netherlan

      To build:

      -
          make alt
      +
          make alt

      NOTE: the original code will not work on any system other than VAX-11 and PDP-11 and this is why we encourage you @@ -155,7 +156,7 @@ the original version.

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 1984 mullender bugs.

      To use:

      -
          ./mullender.alt [microseconds]
      +
          ./mullender.alt [microseconds]

      Hit ctrl-c/intr to exit the program.

      The default microseconds is 190000 as this is approximately how long it slept in the original entry but it can be no lower than 5000 as any lower doesn’t work @@ -169,7 +170,7 @@ overflow!

      BTW: is there such a thing as too fast a CPU ? :-) Actually yes for certain code which is probably not as uncommon as you think :-).

      Try:

      -
          ./mullender.alt
      +
          ./mullender.alt
       
           ./mullender.alt 5000        # wait for 5000 microseconds and see what happens
       
      @@ -184,9 +185,9 @@ happens after some time of waiting?

      PDP-11. In the following years, 1985 on, machine dependent code was discouraged.

      Original build:

      -
          make all
      +
          make all

      Original use:

      -
          ./mullender
      +
          ./mullender

      Judges’ remarks:

      Without question, this C program is the one of the most obfuscated C program that has ever been received! Like all great contest entries, it resulted in a @@ -225,11 +226,11 @@ in the fabulous gentab build:

      gentab.c can be built like:

      -
          make gentab
      +
          make gentab

      gentab use:

      -
          ./gentab file
      +
          ./gentab file

      gentab try:

      -
          ./gentab gentab > g.c
      +
          ./gentab gentab > g.c

      NOTE: it is highly unlikely that you will be able to run the output of gentab but it should at least compile.

      Author’s remarks:

      @@ -312,7 +313,7 @@ that branches over the VAX code. The PDP and VAX codes are thus completely separate.

      The PDP and VAX codes implement the same algorithm:

      -
          for (;;) {
      +
          for (;;) {
               write(1, "  :-)\b\b\b\b", 9);
               delay();
           }
      @@ -333,7 +334,7 @@ simple.

      PDP code in assembly. We both knew PDP-11 assembly so that was no problem. The assembly code we came up with is as follows:

      -
          pdp:
      +
          pdp:
               mov pc,r4
               tst -(r4)
               sub $9, r4
      @@ -373,7 +374,7 @@ VAX assembly, we w
       VAX code in C and massaged the
       compiler output. The VAX assembly
       program that we came up with is as follows:

      -
          vax: .word 0400 + (pdp - vax) / 2 - 1
      +
          vax: .word 0400 + (pdp - vax) / 2 - 1
           1:
               pushl $9
               pushal str
      @@ -426,7 +427,7 @@ extracted the machine code from the object file.

      NOTE from judges: see gentab.c for a copy of this file that can be compiled in modern systems.

      -
          #include <stdio.h>
      +
          #include <stdio.h>
           #include <a.out.h>
       
           main(argc, argv) char **argv;
      @@ -522,10 +523,10 @@ the comment to &&.

    • mullender.orig.c - original source
    • gentab.c - author tool to generate code
    • a.out.h - header file for gentab.c for compatibility with 1984 systems
    • -
    • 1984_mullender.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1984_mullender.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1985/applin/.entry.json b/1985/applin/.entry.json index d01195e1e..ce6d816f8 100644 --- a/1985/applin/.entry.json +++ b/1985/applin/.entry.json @@ -36,7 +36,7 @@ }, { "file_path" : "1985_applin.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1985/applin/index.html b/1985/applin/index.html index b28092246..efa907cd5 100644 --- a/1985/applin/index.html +++ b/1985/applin/index.html @@ -88,6 +88,7 @@ @@ -144,9 +145,9 @@ Location: US - United States of America

      To build:

      -
          make all
      +
          make all

      Try:

      -
          ./applin
      +
          ./applin

      Judges’ remarks:

      One liner programs are short but twisted. This “Hello, world!” version certainly takes its time saying hello.

      @@ -178,10 +179,10 @@ certainly takes its time saying hello.

    • applin.c - entry source
    • Makefile - entry Makefile
    • applin.orig.c - original source
    • -
    • 1985_applin.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1985_applin.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1985/august/.entry.json b/1985/august/.entry.json index 34b29148b..58da84644 100644 --- a/1985/august/.entry.json +++ b/1985/august/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "1985_august.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1985/august/index.html b/1985/august/index.html index 69bcad8f7..e40dca027 100644 --- a/1985/august/index.html +++ b/1985/august/index.html @@ -88,6 +88,7 @@ @@ -141,15 +142,15 @@ Location: SE - Kingdom of Sweden (

      To build:

      -
          make all
      +
          make all

      To use:

      -
          ./august
      +
          ./august

      Try:

      -
          ./try.sh
      +
          ./try.sh

      If you have the primes(6) tool (sometimes part of BSD Games) you can see what of the output in the first N (say 15 or 25) lines are primes:

      -
          ./primes.sh # 15
      +
          ./primes.sh # 15
           ./primes.sh 25

      Note that try.sh will run this script anyway, telling you where to get primes(6) if you don’t have it installed, but it will only run with the @@ -193,10 +194,10 @@ anything funny going on with the output?

    • august.orig.c - original source
    • primes.sh - how to run if you have the primes utility
    • try.sh - how to run
    • -
    • 1985_august.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1985_august.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1985/index.html b/1985/index.html index b5600136c..e061011f1 100644 --- a/1985/index.html +++ b/1985/index.html @@ -86,6 +86,7 @@ diff --git a/1985/lycklama/.entry.json b/1985/lycklama/.entry.json index ed08e155c..cdba2c04e 100644 --- a/1985/lycklama/.entry.json +++ b/1985/lycklama/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "1985_lycklama.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1985/lycklama/index.html b/1985/lycklama/index.html index 9f0a4bcc5..49c9c23c6 100644 --- a/1985/lycklama/index.html +++ b/1985/lycklama/index.html @@ -88,6 +88,7 @@ @@ -141,9 +142,9 @@ Location: ZZ - Unknown location

      To build:

      -
          make alt
      +
          make alt

      To use:

      -
          ./lycklama.alt < some_file
      +
          ./lycklama.alt < some_file

      To see why we recommend the alternate version instead of the original version, see below and the Original code section.

      Try:

      @@ -152,20 +153,20 @@ original, slows down the output so that you can see what it looked like back in This will be more enjoyable. It is slowed down by the usleep(3) library call with a configurable time to sleep. The default is 500 microseconds but you can reconfigure it like:

      -
          make SLEEP=700 clobber alt
      +
          make SLEEP=700 clobber alt

      which would set it at 700. Then, whether you use the default value or not, try:

      -
          ./try.alt.sh
      +
          ./try.alt.sh

      Original code:

      As explained above, because modern systems run this entry way too fast to fully appreciate what it does, we encourage you to first try the alternate version. After this, however, you might wish to try the original version, fixed for modern systems.

      Original build:

      -
          make all
      +
          make all

      Original use:

      -
          ./lycklama < some_file
      +
          ./lycklama < some_file

      Original try:

      -
          ./lycklama < lycklama.c
      +
          ./lycklama < lycklama.c
           ./lycklama < lycklama.alt.c
           ./lycklama < lycklama.orig.c
           ./lycklama < Makefile
      @@ -202,10 +203,10 @@ The program itself looks like tty noise.

    • lycklama.alt.c - alternative source
    • lycklama.orig.c - original source
    • try.alt.sh - how to run alternative code
    • -
    • 1985_lycklama.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1985_lycklama.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1985/shapiro/.entry.json b/1985/shapiro/.entry.json index 8868e17d5..b39db83ab 100644 --- a/1985/shapiro/.entry.json +++ b/1985/shapiro/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "1985_shapiro.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1985/shapiro/index.html b/1985/shapiro/index.html index 159c1e961..e8ea3d441 100644 --- a/1985/shapiro/index.html +++ b/1985/shapiro/index.html @@ -88,6 +88,7 @@ @@ -141,23 +142,23 @@ Location: US - United States of America

      To build:

      -
          make all
      +
          make all

      There is alternate code which allows one to change the size of the maze. See Alternate code below.

      To run:

      -
          ./shapiro
      +
          ./shapiro

      Alternate code:

      The code has a define C set to 39 but this can be modified to change the size of the maze. The alt code allows one to easily do this.

      Alternate build:

      -
          make alt
      +
          make alt

      Alternate try:

      If you wish to change the value you can do it like:

      -
          make clobber SIZE=5 alt
      +
          make clobber SIZE=5 alt

      Note that if it is not a number then obviously there will be a compilation error. If it’s <= 0 || >= 5000 then it is set to 39, the default.

      You might also wish to try:

      -
          ./try.alt.sh
      +
          ./try.alt.sh

      This script will compile the program five times with a random value and then prompt you in an infinite loop for values to try, exiting only if non-digits are in the input.

      @@ -199,10 +200,10 @@ arguments and notice the output.

    • shapiro.alt.c - alternative source
    • shapiro.orig.c - original source
    • try.alt.sh - how to run alternative code
    • -
    • 1985_shapiro.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1985_shapiro.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1985/sicherman/.entry.json b/1985/sicherman/.entry.json index 7b1d0cc61..7e0773997 100644 --- a/1985/sicherman/.entry.json +++ b/1985/sicherman/.entry.json @@ -59,7 +59,7 @@ }, { "file_path" : "1985_sicherman.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1985/sicherman/index.html b/1985/sicherman/index.html index e833d2c94..b44f97b1a 100644 --- a/1985/sicherman/index.html +++ b/1985/sicherman/index.html @@ -88,6 +88,7 @@ @@ -141,19 +142,19 @@ Location: US - United States of America

      To build:

      -
          make all
      +
          make all

      There is another version that will be compiled in case the first fails. This should happen automatically. See Alternate code below for more details on it.

      To use:

      -
          ./sicherman < file
      +
          ./sicherman < file
       
           echo foo | ./sicherman
       
           ./sicherman
           # type or paste some text, making sure to hit enter after each line typed

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Alternate code:

      The sicherman.alt.c is a slight change in the fixed version (fixed so it does not require -traditional-cpp) in that it has two args to @@ -164,12 +165,12 @@ audience.

      Alternate build:

      Although this will be built if the original fails to compile you can do it manually like:

      -
          make alt
      +
          make alt

      In this case it will be built as sicherman.alt.

      Alternate use:

      -
          ./sicherman.alt < file
      +
          ./sicherman.alt < file

      Alternate try:

      -
          ./try.alt.sh
      +
          ./try.alt.sh

      Judges’ remarks:

      This program abuses the C preprocessor so much that some cpps fail to strip out all of the comments on the first pass! If you were able to understand @@ -182,7 +183,7 @@ Like the program says, what’s that mean?

      on a line. Now enter the letters ‘n’ through ‘z’. But to borrow a quote from Richard Stallman: If you think you understand what this code does, then you don’t, so read it again! Explain why:

      -
          ./sicherman < sicherman.c | ./sicherman | diff - ./sicherman.c
      +
          ./sicherman < sicherman.c | ./sicherman | diff - ./sicherman.c

      results in diff reporting a difference on some machines.

      Author’s remarks:

      No remarks were provided by the author.

      @@ -215,10 +216,10 @@ does, then you don’t, so read it again! Explain why:

    • sicherman.orig.c - original source
    • try.alt.sh - how to run alternative code
    • try.sh - how to run
    • -
    • 1985_sicherman.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1985_sicherman.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1986/applin/.entry.json b/1986/applin/.entry.json index ae463e248..5fa247512 100644 --- a/1986/applin/.entry.json +++ b/1986/applin/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "1986_applin.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1986/applin/index.html b/1986/applin/index.html index d9d415206..f6d545e28 100644 --- a/1986/applin/index.html +++ b/1986/applin/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: US - United States of America

      To build:

      -
          make all
      +
          make all

      To use:

      -
          ./applin
      +
          ./applin

      Try:

      -
          ./applin.c
      +
          ./applin.c

      Judges’ remarks:

      The judges were so amused by this little program that we created an award just for it. This program is portable to the C and Fortran 77 @@ -178,10 +179,10 @@ compilers as well as executable by the Bourne shell!

    • applin.c - entry source
    • Makefile - entry Makefile
    • applin.orig.c - original source
    • -
    • 1986_applin.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1986_applin.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1986/august/.entry.json b/1986/august/.entry.json index 09d90ae68..472c9762a 100644 --- a/1986/august/.entry.json +++ b/1986/august/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "1986_august.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1986/august/index.html b/1986/august/index.html index 71d5ea5c2..d6075ec5b 100644 --- a/1986/august/index.html +++ b/1986/august/index.html @@ -88,6 +88,7 @@ @@ -141,13 +142,13 @@ Location: SE - Kingdom of Sweden (

      To build:

      -
          make all
      +
          make all

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 1986 august bugs.

      Try:

      -
          ./august
      +
          ./august

      Judges’ remarks:

      This program computes a specific mathematical value. Simply compile and give it an infinite amount of stack space and CPU time. Otherwise @@ -183,10 +184,10 @@ enough to try and parse it correctly.

    • august.c - entry source
    • Makefile - entry Makefile
    • august.orig.c - original source
    • -
    • 1986_august.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1986_august.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1986/bright/.entry.json b/1986/bright/.entry.json index 1783421b2..c100e4fb2 100644 --- a/1986/bright/.entry.json +++ b/1986/bright/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1986_bright.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1986/bright/index.html b/1986/bright/index.html index f5bea5108..5bee9a091 100644 --- a/1986/bright/index.html +++ b/1986/bright/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: US - United States of America

      To build:

      -
          make all
      +
          make all

      To use:

      -
          ./bright some_file
      +
          ./bright some_file

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      Compile this program and give a filename as an argument.

      Mr. Bright exploits the C pre-processor, similar variables and @@ -181,10 +182,10 @@ maintain the Bourne shell! :-}

    • Makefile - entry Makefile
    • bright.orig.c - original source
    • try.sh - how to run
    • -
    • 1986_bright.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1986_bright.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1986/hague/.entry.json b/1986/hague/.entry.json index 29c75c7d4..4f95af444 100644 --- a/1986/hague/.entry.json +++ b/1986/hague/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "1986_hague.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1986/hague/index.html b/1986/hague/index.html index 8f682d311..38a04cf3f 100644 --- a/1986/hague/index.html +++ b/1986/hague/index.html @@ -88,6 +88,7 @@ @@ -141,12 +142,12 @@ Location: GB - United Kingdom of Great

      To build:

      -
          make all
      +
          make all

      To use:

      -
          ./hague 2>/dev/null
      +
          ./hague 2>/dev/null
           # enter some text

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Note that you can run the program without feeding it anything and then type in a message and line by line it will show the right output. Notice also how certain characters will print a ?.

      @@ -189,10 +190,10 @@ credit, what Morse message does the program spell out?

    • hague.orig.c - original source
    • input.txt - sample input
    • try.sh - how to run
    • -
    • 1986_hague.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1986_hague.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1986/holloway/.entry.json b/1986/holloway/.entry.json index 2ff3eb290..72f239a59 100644 --- a/1986/holloway/.entry.json +++ b/1986/holloway/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "1986_holloway.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1986/holloway/index.html b/1986/holloway/index.html index 9d2cac8ba..16bd578af 100644 --- a/1986/holloway/index.html +++ b/1986/holloway/index.html @@ -88,6 +88,7 @@ @@ -141,9 +142,9 @@ Location: US - United States of America

      To build:

      -
          make all
      +
          make all

      Try:

      -
          ./holloway
      +
          ./holloway

      Judges’ remarks:

      Believe it or not, this is the old standard “Hello, world” program performed in a very complex way. The judges and the author defy you @@ -177,10 +178,10 @@ this version as the first C program!

    • holloway.c - entry source
    • Makefile - entry Makefile
    • holloway.orig.c - original source
    • -
    • 1986_holloway.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1986_holloway.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1986/index.html b/1986/index.html index ce984491f..528a4f6fb 100644 --- a/1986/index.html +++ b/1986/index.html @@ -86,6 +86,7 @@ diff --git a/1986/marshall/.entry.json b/1986/marshall/.entry.json index fdc9cfa2a..5c104c22f 100644 --- a/1986/marshall/.entry.json +++ b/1986/marshall/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "1986_marshall.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1986/marshall/compilers.html b/1986/marshall/compilers.html index 8f5b4373f..3b13f8498 100644 --- a/1986/marshall/compilers.html +++ b/1986/marshall/compilers.html @@ -83,6 +83,7 @@ @@ -162,7 +163,7 @@ because of the call to _exit() (see below).

      enable the optimiser clang will generate code that prints the string twice and dumps core just like before! What about the call to _exit()?

      The call was:

      -
          _exit(argv[(int)*argc-2/cc[1*(int)*argc]|-1<<4]);
      +
          _exit(argv[(int)*argc-2/cc[1*(int)*argc]|-1<<4]);

      Changing it to not refer to these variables and just exit 1 and the problems disappear!

      macOS

      @@ -172,7 +173,7 @@ it works fine but if it’s disabled it prints out the string and then enters an infinite loop!

      After we fix the infinite loop if we change the _exit() call in macOS and disable the optimiser we might get something like:

      -
          $ ./marshall
      +
          $ ./marshall
                 choo choo
           Segmentation fault: 11

      Observe how it doesn’t print it twice. But of course it segfaults so it’s not diff --git a/1986/marshall/index.html b/1986/marshall/index.html index 08d816359..641df2f2a 100644 --- a/1986/marshall/index.html +++ b/1986/marshall/index.html @@ -88,6 +88,7 @@

      @@ -141,7 +142,7 @@ Location: US - United States of America

      To build:

      -
          make all
      +
          make all

      NOTE: we FORCE disable the optimiser due to a funny problem with different compilers and systems. See below and compilers.html for details.

      There is an alternate version. The reason is a funny problem: @@ -152,7 +153,7 @@ might work but the other one would not. We describe this in more detail in compilers.html and we encourage you to read it for entertainment if nothing else.

      To use:

      -
          ./marshall
      +
          ./marshall

      Alternate code:

      Due to the different conflicting problems with gcc and clang, we instead offer the problematic code as an alternate version whereas @@ -160,9 +161,9 @@ instead offer the problematic code as an alternate version whereas _exit() commented out, changing the value passed into _exit() to 1.

      Alternate build:

      To see if your compiler has the problems noted:

      -
          make alt
      +
          make alt

      Alternate use:

      -
          ./marshall.alt
      +
          ./marshall.alt

      Does it work in your system? That is does it not segfault, does it print it only once and does it not enter an infinite loop? Or more generally does it print the text exactly once and then exit?

      @@ -201,10 +202,10 @@ from printing a program!

    • marshall.alt.c - alternative source
    • marshall.orig.c - original source
    • compilers.html - about compilers and optimizers that broke this entry
    • -
    • 1986_marshall.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1986_marshall.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • compilers.md - markdown source for compilers.html
    • diff --git a/1986/pawka/.entry.json b/1986/pawka/.entry.json index 8199dff1f..7dc7ab0fe 100644 --- a/1986/pawka/.entry.json +++ b/1986/pawka/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "1986_pawka.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1986/pawka/index.html b/1986/pawka/index.html index 71ef9e9c8..eed9cf60f 100644 --- a/1986/pawka/index.html +++ b/1986/pawka/index.html @@ -88,6 +88,7 @@ @@ -141,9 +142,9 @@ Location: ZZ - Unknown location

      To build:

      -
          make all
      +
          make all

      Try:

      -
          ./pawka
      +
          ./pawka

      Judges’ remarks:

      The judges found this entry to be one of hardest to read without the aid of /lib/cpp and a good editor. When run, the program asks if it @@ -176,10 +177,10 @@ is obfuscated, of all things!

    • pawka.c - entry source
    • Makefile - entry Makefile
    • pawka.orig.c - original source
    • -
    • 1986_pawka.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1986_pawka.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1986/stein/.entry.json b/1986/stein/.entry.json index 0debe5997..eb64df35c 100644 --- a/1986/stein/.entry.json +++ b/1986/stein/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1986_stein.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1986/stein/index.html b/1986/stein/index.html index 8d3b4f108..59d520b3d 100644 --- a/1986/stein/index.html +++ b/1986/stein/index.html @@ -88,6 +88,7 @@ @@ -141,9 +142,9 @@ Location: ZZ - Unknown location

      To build:

      -
          make all
      +
          make all

      To use:

      -
          ./stein $(printf "\015\015"); echo
      +
          ./stein $(printf "\015\015"); echo

      Judges’ remarks:

      NOTE: to avoid problems with news and mail, the single line was split into 3 lines. Join all lines into a single line to recreate @@ -151,7 +152,7 @@ the original file.

      The \015 in the above printf(1) command produces a control-N.

      One some machines, a control-M control-N arg is needed to get the command to output cleanly:

      -
          ./stein $(printf "\014\015"); echo
      +
          ./stein $(printf "\014\015"); echo

      Your system may require another set of characters. In time, you will figure out what it does. :-)

      Author’s remarks:

      @@ -183,10 +184,10 @@ In time, you will figure out what it does. :-)

    • Makefile - entry Makefile
    • stein.orig.c - original source
    • stein.sh - demonstrate this IOCCC entry
    • -
    • 1986_stein.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1986_stein.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1986/wall/.entry.json b/1986/wall/.entry.json index 26b8ea665..9db71a58c 100644 --- a/1986/wall/.entry.json +++ b/1986/wall/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "1986_wall.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1986/wall/index.html b/1986/wall/index.html index f681d70d3..0015c20dd 100644 --- a/1986/wall/index.html +++ b/1986/wall/index.html @@ -88,6 +88,7 @@ @@ -141,9 +142,9 @@ Location: US - United States of America

      To build:

      -
          make all
      +
          make all

      To use:

      -
          ./wall
      +
          ./wall

      Judges’ remarks:

      The original version did not have a ‘;’ character in the first line. This caused a number of System V C pre-preprocessors to gripe about a @@ -182,10 +183,10 @@ compiler documents the program.

    • wall.c - entry source
    • Makefile - entry Makefile
    • wall.orig.c - original source
    • -
    • 1986_wall.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1986_wall.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1987/biggar/.entry.json b/1987/biggar/.entry.json index f7b4340dc..8d68123ad 100644 --- a/1987/biggar/.entry.json +++ b/1987/biggar/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1987_biggar.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1987/biggar/index.html b/1987/biggar/index.html index 097c52901..d14befc88 100644 --- a/1987/biggar/index.html +++ b/1987/biggar/index.html @@ -88,6 +88,7 @@ @@ -141,13 +142,13 @@ Location: ZZ - Unknown location

      To build:

      -
          make all
      +
          make all

      To use:

      -
          some_command | ./biggar | od -c
      +
          some_command | ./biggar | od -c
       
           ./biggar < file | od -c

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      By changing the compile line you can make this program do anything you want. This is a very efficient way to transfer source, though it @@ -193,10 +194,10 @@ an infinite loop by this entry.

    • Makefile - entry Makefile
    • biggar.orig.c - original source
    • try.sh - how to run
    • -
    • 1987_biggar.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1987_biggar.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1987/heckbert/.entry.json b/1987/heckbert/.entry.json index 9001c7f74..4bc8867aa 100644 --- a/1987/heckbert/.entry.json +++ b/1987/heckbert/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1987_heckbert.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1987/heckbert/index.html b/1987/heckbert/index.html index 7d0d120f0..412b12eb3 100644 --- a/1987/heckbert/index.html +++ b/1987/heckbert/index.html @@ -88,6 +88,7 @@ @@ -141,17 +142,17 @@ Location: US - United States of America

      To build:

      -
          make all
      +
          make all

      On System V systems, we had to compile with -Dindex=strchr. To compile on a 16 bit machine, change 300000 to 30000.

      To use:

      -
          ./heckbert col < file
      +
          ./heckbert col < file

      where col is the number of columns to fold at and file is the file to fold.

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      Folding at the wrong length may be equivalent to a “Spindle or Mutilate” operation. For example:

      -
          ./heckbert 40 < heckbert.c > ph.c ; make ph ; ./ph 20 < heckbert.c > bar.c ; make bar
      +
          ./heckbert 40 < heckbert.c > ph.c ; make ph ; ./ph 20 < heckbert.c > bar.c ; make bar

      Try not to Fold, Spindle or Mutilate files. :-)

      @@ -188,10 +189,10 @@ been added to the contest tool chest.

    • Makefile - entry Makefile
    • heckbert.orig.c - original source
    • try.sh - how to run
    • -
    • 1987_heckbert.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1987_heckbert.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1987/hines/.entry.json b/1987/hines/.entry.json index 78ec56799..128587847 100644 --- a/1987/hines/.entry.json +++ b/1987/hines/.entry.json @@ -59,7 +59,7 @@ }, { "file_path" : "1987_hines.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1987/hines/index.html b/1987/hines/index.html index 830ee368d..f97f3974a 100644 --- a/1987/hines/index.html +++ b/1987/hines/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: ZZ - Unknown location

      To build:

      -
          make all
      +
          make all

      To use:

      -
          ./hines file.c
      +
          ./hines file.c

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      This program was designed to maximize the bother function for structured programmers. This program takes goto statements to their @@ -185,10 +186,10 @@ See the Communications of the ACM, March 1987, Page 195-196.

    • goto.c - sample source full of goto statements
    • goto.txt - a file to goto and see
    • try.sh - how to run
    • -
    • 1987_hines.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1987_hines.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1987/index.html b/1987/index.html index 49e84ace8..1a58d280e 100644 --- a/1987/index.html +++ b/1987/index.html @@ -86,6 +86,7 @@ diff --git a/1987/korn/.entry.json b/1987/korn/.entry.json index 480a8fcee..405fd60de 100644 --- a/1987/korn/.entry.json +++ b/1987/korn/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "1987_korn.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1987/korn/index.html b/1987/korn/index.html index e58610178..dcbf7de5c 100644 --- a/1987/korn/index.html +++ b/1987/korn/index.html @@ -88,6 +88,7 @@ @@ -141,9 +142,9 @@ Location: US - United States of America

      To build:

      -
          make all
      +
          make all

      To use:

      -
          ./korn
      +
          ./korn

      Judges’ remarks:

      The Judges believe that this is the best one line entry ever received. Compile on a UNIX system, or at least one using a C implementation that @@ -158,17 +159,17 @@ section right now and see if you are one of the few people who can.

    • What is the value of the symbol "have"? (hint: the value is NOT 4 characters, or 'h', or a string) Consider the fact that:

    • -
          char *x;
      +
          char *x;

      defines a pointer to a char (i.e. an address), and that the = assigns things of compatible types. Since:

      -
          x = "have";
      +
          x = "have";

      is legal C, what type of value is "have"?

      1. Note that the following expressions yield the same value:
      -
          x[3]        *(x+3)    *(3+x)
      +
          x[3]        *(x+3)    *(3+x)

      since addition is commutative. What can be said about this value?

      -
          3[x]
      +
          3[x]

      David Korn’s /bin/ksh provides us with a greatly @@ -203,10 +204,10 @@ greatly inspired this contest.

    • korn.c - entry source
    • Makefile - entry Makefile
    • korn.orig.c - original source
    • -
    • 1987_korn.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1987_korn.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1987/lievaart/.entry.json b/1987/lievaart/.entry.json index eb2cacc5e..4c258b4a2 100644 --- a/1987/lievaart/.entry.json +++ b/1987/lievaart/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1987_lievaart.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1987/lievaart/index.html b/1987/lievaart/index.html index a34826ff1..9a684d012 100644 --- a/1987/lievaart/index.html +++ b/1987/lievaart/index.html @@ -88,6 +88,7 @@ @@ -141,13 +142,13 @@ Location: NL - Kingdom of the Netherlan

      To build:

      -
          make all
      +
          make all

      To use:

      -
          ./lievaart
      +
          ./lievaart
           # enter a level and start playing as described below

      Try:

      To see what it would have looked like without the size restrictions:

      -
          ./lievaart2
      +
          ./lievaart2
           # enter a level and start playing as described below

      Judges’ remarks:

      We believe that you too will be amazed at just how much power Mr. Lievaart @@ -198,10 +199,10 @@ logic and displays the board after each move! See above for how to use this.

    • Makefile - entry Makefile
    • lievaart.orig.c - original source
    • lievaart2.c - source without size restriction
    • -
    • 1987_lievaart.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1987_lievaart.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1987/wall/.entry.json b/1987/wall/.entry.json index 68a4ab2ed..50ca01dbb 100644 --- a/1987/wall/.entry.json +++ b/1987/wall/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1987_wall.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1987/wall/index.html b/1987/wall/index.html index ab14170fd..929e1c892 100644 --- a/1987/wall/index.html +++ b/1987/wall/index.html @@ -88,6 +88,7 @@ @@ -141,18 +142,18 @@ Location: US - United States of America

      To build:

      -
          make all
      +
          make all

      To use:

      -
          ./wall
      +
          ./wall
           # enter some numbers
       
           ./wall | some_command
           # enter some strings or numbers, depending on command

      Try:

      -
          ./try.sh
      +
          ./try.sh

      You may of course run the commands manually and enter text as you wish. For instance you might try one or both of:

      -
          ./wall | bc
      +
          ./wall | bc
       
           ./wall | cat

      and enter some input like:

      @@ -198,10 +199,10 @@ why this is being done and how it is being exploited?

    • Makefile - entry Makefile
    • wall.orig.c - original source
    • try.sh - how to run
    • -
    • 1987_wall.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1987_wall.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1987/westley/.entry.json b/1987/westley/.entry.json index 993220740..65a227fe2 100644 --- a/1987/westley/.entry.json +++ b/1987/westley/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "1987_westley.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1987/westley/index.html b/1987/westley/index.html index 4e0be7898..923cc1aff 100644 --- a/1987/westley/index.html +++ b/1987/westley/index.html @@ -88,6 +88,7 @@ @@ -141,9 +142,9 @@ Location: US - United States of America

      To build:

      -
          make all
      +
          make all

      To use:

      -
          ./westley
      +
          ./westley

      Judges’ remarks:

      putchar() must exist in the C library and not just as a macro. If it fails to compile, bug your OS/compiler vendor.

      @@ -177,10 +178,10 @@ of if it as a C ink blot. :-)

    • westley.c - entry source
    • Makefile - entry Makefile
    • westley.orig.c - original source
    • -
    • 1987_westley.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1987_westley.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1988/applin/.entry.json b/1988/applin/.entry.json index 8e80d10b8..2b8fd9cec 100644 --- a/1988/applin/.entry.json +++ b/1988/applin/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1988_applin.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1988/applin/index.html b/1988/applin/index.html index 62cf023f3..5e45e14f0 100644 --- a/1988/applin/index.html +++ b/1988/applin/index.html @@ -88,6 +88,7 @@ @@ -141,18 +142,18 @@ Location: US - United States of America

      To build:

      -
          make all
      +
          make all

      A smaller version, originally called zsmall.c (and still exists as such, as the source of the alt code), of applin.c, can be found in applin.alt.c. Your machine may have an easier time with this program. See the Alternate code section below for details.

      Try:

      -
          ./applin
      +
          ./applin

      Alternate code:

      As noted above a smaller version can be used in case your cpp has a hard time with this entry.

      Alternate build:

      -
          make alt
      +
          make alt

      Use applin.alt as you would applin above.

      History about the smaller version:

      Way back in 1988 ..

      @@ -205,10 +206,10 @@ Clearly the GNU C preprocessor is faster.

    • Makefile - entry Makefile
    • applin.alt.c - alternative source
    • applin.orig.c - original source
    • -
    • 1988_applin.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1988_applin.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1988/dale/.entry.json b/1988/dale/.entry.json index 8e54e4e2b..522a2d00a 100644 --- a/1988/dale/.entry.json +++ b/1988/dale/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1988_dale.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1988/dale/index.html b/1988/dale/index.html index 1a8894f88..607be3e98 100644 --- a/1988/dale/index.html +++ b/1988/dale/index.html @@ -88,6 +88,7 @@ @@ -141,15 +142,15 @@ Location: AU - Commonwealth of Australi

      To build:

      -
          make all
      +
          make all

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 1988 dale bugs.

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Observe that three of the commands in the script are:

      -
          ./dale these files are in this directory: *
      +
          ./dale these files are in this directory: *
           ./dale $(printf "the following files exist in this directory:\n%s\n" *)
           ./dale "$(printf "the following files exist in this directory:\n%s\n" *)"

      As the script asks what do the last two do and why do they do it? Why do they @@ -189,10 +190,10 @@ system calls.

    • Makefile - entry Makefile
    • dale.orig.c - original source
    • try.sh - how to run
    • -
    • 1988_dale.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1988_dale.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1988/index.html b/1988/index.html index 66e7e643f..862ae6ad6 100644 --- a/1988/index.html +++ b/1988/index.html @@ -86,6 +86,7 @@ diff --git a/1988/isaak/.entry.json b/1988/isaak/.entry.json index 51b72905f..1c7b46ce6 100644 --- a/1988/isaak/.entry.json +++ b/1988/isaak/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "1988_isaak.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1988/isaak/index.html b/1988/isaak/index.html index aed17c019..640e3854a 100644 --- a/1988/isaak/index.html +++ b/1988/isaak/index.html @@ -88,6 +88,7 @@ @@ -141,16 +142,16 @@ Location: ZZ - Unknown location

      To build:

      -
          make all
      +
          make all

      There is an alternate version, the original, that can’t be compiled in modern systems but can be if you have an old enough compiler. See Alternate code below.

      To use:

      -
          ./isaak
      +
          ./isaak

      Alternate code:

      The original version of this code is in isaak.alt.c. The original entry starts with the line:

      -
          main(){};
      +
          main(){};

      This works on some systems. Why? Note that #include <stdio.h> is given on the last line. Why is this needed? Note the unusual calls to sprintf(3).

      This version also relied on being able to define #define to something else and @@ -158,7 +159,7 @@ using that macro for #define.

      This version will not likely work on modern systems if you can even get it to compile.

      Alternate build:

      -
          make alt
      +
          make alt

      Use isaak.alt as you would isaak above.

      Judges’ remarks:

      The program relies heavily on ASCII. Don’t even think of running it on @@ -173,7 +174,7 @@ from a single macro (e.g., "O/**/O" creates either ++

      NOTE: Most System V machines were not be able to execute this program correctly due to the fact that BSD style systems have an sprintf(3) that returns a char *. Due to the above problems, we placed the output of this program in the file: isaak.encode. To read this file do.

      -
          uudecode < isaak.encode
      +
          uudecode < isaak.encode
           cat isaak.output

      Since this was fixed, this file is not strictly necessary. See the isaak.alt.c for the original source.

      @@ -208,10 +209,10 @@ file: isaak.encode. To read this file do.

    • isaak.alt.c - alternative source
    • isaak.orig.c - original source
    • isaak.encode - uuencoded sample output
    • -
    • 1988_isaak.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1988_isaak.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1988/litmaath/.entry.json b/1988/litmaath/.entry.json index 4ae9a9f9f..8bfc48d85 100644 --- a/1988/litmaath/.entry.json +++ b/1988/litmaath/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1988_litmaath.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1988/litmaath/index.html b/1988/litmaath/index.html index 19943de31..129b43023 100644 --- a/1988/litmaath/index.html +++ b/1988/litmaath/index.html @@ -88,6 +88,7 @@ @@ -141,25 +142,25 @@ Location: CH - Swiss Confederation

      To build:

      -
          make
      +
          make

      To use:

      -
          ./litmaath some text
      +
          ./litmaath some text

      There is an alternate version provided. See the Alternate code section below.

      Try:

      -
          ./litmaath eschew obfuscation
      +
          ./litmaath eschew obfuscation

      Alternate code:

      This alternate code, added to help understand the entry and for fun, is code that we suggested at the time of the entry publication but which we never put in a file.

      Alternate build:

      -
          make alt
      +
          make alt

      Use litmaath.alt as you would litmaath above.

      Alternate try:

      -
          ./litmaath.alt six was afraid of seven because seven eight nine
      +
          ./litmaath.alt six was afraid of seven because seven eight nine

      Judges’ remarks:

      Note the unusual structure:

      -
          while (<condition>)
      +
          while (<condition>)
                    ;

      Did you notice that the body is empty?

      Furthermore, it’s interesting to note that only two variables are @@ -168,7 +169,7 @@ used to achieve everything.

      two small strings as arguments, and follow the program closely. One could make the body of the while loop an fprintf with interesting variables like:

      -
          fprintf(stderr,
      +
          fprintf(stderr,
                "argv=%lo *argv=%lo **argv=%c argv[1]=%lo *argv[1]=%c argc=%d\n",
                (long) argv, (long) *argv, *argv && **argv ? **argv : '@',
                (long) argv[1], argv[1] && *argv[1] ? *argv[1] : '@', argc);
      @@ -202,10 +203,10 @@ variables like:

    • Makefile - entry Makefile
    • litmaath.alt.c - alternative source
    • litmaath.orig.c - original source
    • -
    • 1988_litmaath.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1988_litmaath.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1988/phillipps/.entry.json b/1988/phillipps/.entry.json index 9e2ea6551..9c8eb9ab3 100644 --- a/1988/phillipps/.entry.json +++ b/1988/phillipps/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "1988_phillipps.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1988/phillipps/index.html b/1988/phillipps/index.html index 29953f690..c962de2d5 100644 --- a/1988/phillipps/index.html +++ b/1988/phillipps/index.html @@ -88,6 +88,7 @@ @@ -141,7 +142,7 @@ Location: ZZ - Unknown location

      To build:

      -
          make all
      +
          make all

      Judges’ remarks:

      Compile and run without parameters.

      The program is smaller than even the ‘compressed’ form of its output, @@ -176,10 +177,10 @@ by pounding on the keys of an old typewriter at random.

    • phillipps.c - entry source
    • Makefile - entry Makefile
    • phillipps.orig.c - original source
    • -
    • 1988_phillipps.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1988_phillipps.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1988/reddy/.entry.json b/1988/reddy/.entry.json index 244f39aeb..3f89c7f90 100644 --- a/1988/reddy/.entry.json +++ b/1988/reddy/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "1988_reddy.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1988/reddy/index.html b/1988/reddy/index.html index 410cda71e..3f471a37c 100644 --- a/1988/reddy/index.html +++ b/1988/reddy/index.html @@ -88,6 +88,7 @@ @@ -141,13 +142,13 @@ Location: ZZ - Unknown location

      To build:

      -
          make all
      +
          make all

      Try:

      -
          ./reddy
      +
          ./reddy
           char *(*(fun[16])();
           char *(*(*(*(*(*fun[32])))))();

      What happens if you input, and what you do about it?

      -
          char *(*(*(*(*(*fun[32])))))());
      +
          char *(*(*(*(*(*fun[32])))))());

      Judges’ remarks:

      This is a somewhat restricted version of a useful program that has been posted to Usenet. What is unusual is what it is able to do so much @@ -180,10 +181,10 @@ in such little space.

    • reddy.c - entry source
    • Makefile - entry Makefile
    • reddy.orig.c - original source
    • -
    • 1988_reddy.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1988_reddy.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1988/robison/.entry.json b/1988/robison/.entry.json index 4bde89d2c..86993eaa8 100644 --- a/1988/robison/.entry.json +++ b/1988/robison/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "1988_robison.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1988/robison/index.html b/1988/robison/index.html index 52d41a330..6cd7ba802 100644 --- a/1988/robison/index.html +++ b/1988/robison/index.html @@ -88,6 +88,7 @@ @@ -141,16 +142,16 @@ Location: US - United States of America

      To build:

      -
          make all
      +
          make all

      Try:

      -
          ./robison 80 10
      +
          ./robison 80 10
           ./robison 40 16

      The first and second parameters are optional. You might also try:

      -
          ./robison 80 2   # <--- can you find the bug?
      +
          ./robison 80 2   # <--- can you find the bug?
           ./robison 80 -246

      Judges’ remarks:

      The following might make an interesting benchmark:

      -
          ./robison 100
      +
          ./robison 100

      [Amdahl 5890-300E with System V cc: 8.40 seconds]

      We suggest that you C pre-process and perhaps C-beautify this program. All is not what it may appear to be in this program. Why does a whi1e @@ -188,10 +189,10 @@ ANSI committee should look into this practical simplification of C.

    • robison.c - entry source
    • Makefile - entry Makefile
    • robison.orig.c - original source
    • -
    • 1988_robison.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1988_robison.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1988/spinellis/.entry.json b/1988/spinellis/.entry.json index 24a662c53..5c3914039 100644 --- a/1988/spinellis/.entry.json +++ b/1988/spinellis/.entry.json @@ -59,7 +59,7 @@ }, { "file_path" : "1988_spinellis.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1988/spinellis/index.html b/1988/spinellis/index.html index 3799eeabc..bb0dec750 100644 --- a/1988/spinellis/index.html +++ b/1988/spinellis/index.html @@ -88,6 +88,7 @@ @@ -141,27 +142,27 @@ Location: GR - Hellenic Republic (

      To build:

      -
          make clobber all
      +
          make clobber all

      and follow the instructions this will give you.

      If your compiler will not read from /dev/tty see the Alternate code section below.

      To use:

      -
          ./spinellis
      +
          ./spinellis

      Type in or copy paste some C code, perhaps from input.txt, and send EOF (typically ctrl-d).

      Now run again:

      -
          ./spinellis
      +
          ./spinellis

      Alternate code:

      For clang or compilers that won’t read from /dev/tty, we provide this version.

      Alternate build:

      -
          make clobber alt
      +
          make clobber alt

      and follow the instructions.

      Alternate use:

      -
          ./spinellis.alt
      +
          ./spinellis.alt

      Type in or copy paste some C code, perhaps from input.txt, and send EOF (typically ctrl-d).

      Now run again:

      -
          ./spinellis.alt
      +
          ./spinellis.alt

      Judges’ remarks:

      We enjoyed this entry this year; however in the future programs must be able to be compiled from within a Makefile without the need of human intervention.

      @@ -200,10 +201,10 @@ skills.

    • spinellis.orig.c - original source
    • input2.txt - example input
    • input.txt - example input
    • -
    • 1988_spinellis.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1988_spinellis.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1988/westley/.entry.json b/1988/westley/.entry.json index a761a6410..a55fcf384 100644 --- a/1988/westley/.entry.json +++ b/1988/westley/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "1988_westley.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1988/westley/index.html b/1988/westley/index.html index ae27f70d8..b09c22f3a 100644 --- a/1988/westley/index.html +++ b/1988/westley/index.html @@ -88,6 +88,7 @@ @@ -141,37 +142,37 @@ Location: US - United States of America

      To build:

      -
          make all
      +
          make all

      NOTE: this version is a fixed version for modern C compilers. See the Alternate code section below for how to use the original and why one might wish to do so.

      Try:

      -
          ./westley
      +
          ./westley

      Also try:

      -
          ./try.sh
      +
          ./try.sh

      to show the code with followed by the result so you can truly see the magic.

      Alternate code:

      This version is the original which might not work as you expect nowadays.

      Alternate build:

      -
          make alt
      +
          make alt

      Alternate use:

      To see if your compiler has the problem described in the Judges’ remarks below, try:

      -
          ./westley.alt
      +
          ./westley.alt

      Does it show the same output as westley?

      Judges’ remarks:

      Your compiler must parse

      -
          #define _ -a
      +
          #define _ -a
           -_

      as --a and not -(-a) or some other tokenized form. Some strictly conforming ANSI C Preprocessors may object to this: for such compilers, you can elide the non-standard token-pasting requirement by changing the #define line to:

      -
          #define _ F-->00||F-OO--;
      +
          #define _ F-->00||F-OO--;

      This is what the modified code in westley.c does whereas the alt code is the original.

      You might enjoy looking at the output of:

      -
          cc -E westley.alt.c
      +
          cc -E westley.alt.c

      Author’s remarks:

      No remarks were provided by the author.

      To build:

      -
          make all
      +
          make all

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: known bug - please help us fix

      For more detailed information see 1989 fubar bugs.

      To use:

      -
          ./fubar <number>
      +
          ./fubar <number>

      Try:

      -
          ./try.sh # run on 1 - 7
      +
          ./try.sh # run on 1 - 7
       
           ./fubar.sh 2 # run via script
           ./fubar 2 # run directly
      @@ -199,10 +200,10 @@ much more so.

    • fubar.orig.c - original source
    • fubar.sh - how to run fubar
    • try.sh - how to run
    • -
    • 1989_fubar.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1989_fubar.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1989/index.html b/1989/index.html index e996b85b3..b8e1a25fc 100644 --- a/1989/index.html +++ b/1989/index.html @@ -86,6 +86,7 @@ diff --git a/1989/jar.1/.entry.json b/1989/jar.1/.entry.json index 46490a8f1..e63fd8991 100644 --- a/1989/jar.1/.entry.json +++ b/1989/jar.1/.entry.json @@ -59,7 +59,7 @@ }, { "file_path" : "1989_jar.1.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1989/jar.1/index.html b/1989/jar.1/index.html index 5b46afb1e..583886c3b 100644 --- a/1989/jar.1/index.html +++ b/1989/jar.1/index.html @@ -88,6 +88,7 @@ @@ -142,22 +143,22 @@ Location: SE - Kingdom of Sweden (

      To build:

      NOTE: this will run the program itself.

      -
          make clobber all
      +
          make clobber all

      There is an alternate version with a slight difference that you may wish to try. See the Alternate code section below for more details.

      To use:

      -
          ./jar.1
      +
          ./jar.1

      Alternate code:

      This alternate code, which prints something slightly different, is provided as well.

      Alternate build:

      NOTE: this will run the program itself.

      -
          make clobber alt
      +
          make clobber alt

      Alternate use:

      -
          ./jar.1.alt
      +
          ./jar.1.alt

      Judges’ remarks:

      On many systems the compiler will not allow you to send the object file to /dev/tty. The author suggested:

      -
          cc -c -o /dev/tty jar.1.c
      +
          cc -c -o /dev/tty jar.1.c

      As a last resort the jar.1.sh script provided simulates writing the raw binary of the .o file to the terminal.

      Abuse of the rules winning entry usually result in a change of the rules. @@ -220,10 +221,10 @@ need not be actually run.

    • jar.1.orig.c - original source
    • jar.1.alt.sh - a method to compile
    • jar.1.sh - a method to compile the alternative source
    • -
    • 1989_jar.1.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1989_jar.1.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1989/jar.2/.entry.json b/1989/jar.2/.entry.json index c43ab377a..d72c9430d 100644 --- a/1989/jar.2/.entry.json +++ b/1989/jar.2/.entry.json @@ -69,7 +69,7 @@ }, { "file_path" : "1989_jar.2.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1989/jar.2/index.html b/1989/jar.2/index.html index 8442d9d13..658b73d32 100644 --- a/1989/jar.2/index.html +++ b/1989/jar.2/index.html @@ -88,6 +88,7 @@ @@ -147,15 +148,15 @@ Location: US - United States of America

      To build:

      -
          make all
      +
          make all

      To use:

      -
          ./jar.2
      +
          ./jar.2
           [enter some lisp]
       
           ./jar.2 < some_lisp_file

      NOTE: this entry will likely segfault on invalid input.

      Try:

      -
          ./try.sh
      +
          ./try.sh
       
           ./try.sh chocolate_cake.lisp
       
      @@ -192,7 +193,7 @@ The program implements a conventional lisp listener, i.e. you type in
       lisp expressions (followed by CR), the program evaluates them and
       prints out the return values. End execution by typing an end-of-file
       character.

      -
          (+ 2.5 3.1)
      +
          (+ 2.5 3.1)
           (defun fib (n)
              (if (< n 2)
                  1
      @@ -252,10 +253,10 @@ poor performance!

    • fib.lisp - input file
    • try.sh - how to run
    • try.txt - input file
    • -
    • 1989_jar.2.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1989_jar.2.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1989/ovdluhe/.entry.json b/1989/ovdluhe/.entry.json index 56a89f0b9..b3ad707a1 100644 --- a/1989/ovdluhe/.entry.json +++ b/1989/ovdluhe/.entry.json @@ -59,7 +59,7 @@ }, { "file_path" : "1989_ovdluhe.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1989/ovdluhe/index.html b/1989/ovdluhe/index.html index 6ec22cf85..80845cebf 100644 --- a/1989/ovdluhe/index.html +++ b/1989/ovdluhe/index.html @@ -88,6 +88,7 @@ @@ -141,28 +142,28 @@ Location: ZZ - Unknown location

      To build:

      -
          make all
      +
          make all

      To get this to compile with a modern CPP, we had to replace #D with #define.

      To use:

      Run the program this way:

      -
          ./ovdluhe < textfile
      +
          ./ovdluhe < textfile

      The program stops when it reaches the end of the template buffer by chance or is killed.

      Try:

      -
          ./try.sh ; sleep 2 ; ./try.sh
      +
          ./try.sh ; sleep 2 ; ./try.sh

      Alternate code:

      The author suggested that one varies the definition of P from 2 through 10. As it’s a #define it’s easy to set up.

      Alternate build:

      -
          make P=9 clobber alt
      +
          make P=9 clobber alt

      You do not have to define P but if you do you can replace the value with whatever you wish, as long as it’s a positive int (or evaluates to a positive int like the default (A<<AP) does). Too high a value will likely cause the program to fail and a negative value will cause a compilation error.

      Alternate use:

      -
          ./ovdluhe.alt
      +
          ./ovdluhe.alt

      Alternate try:

      -
          ./try.alt.sh
      +
          ./try.alt.sh
       
           P=5 ./try.alt.sh

      NOTE: if you specify too high a value for P the program might fail. If you @@ -216,10 +217,10 @@ observe the result.

    • ovdluhe.orig.c - original source
    • try.alt.sh - how to run alternative code
    • try.sh - how to run
    • -
    • 1989_ovdluhe.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1989_ovdluhe.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1989/paul/.entry.json b/1989/paul/.entry.json index 489fbb836..1b2041e02 100644 --- a/1989/paul/.entry.json +++ b/1989/paul/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1989_paul.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1989/paul/index.html b/1989/paul/index.html index 86bd6f2e8..ba1909ae6 100644 --- a/1989/paul/index.html +++ b/1989/paul/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: US - United States of America

      To build:

      -
          make all
      +
          make all

      There is an alternate version with a trace routine that the author had commented out. See alternate code below for more details.

      Try:

      -
          ./paul
      +
          ./paul

      Alternate code:

      This version was described by the author like:

      @@ -156,9 +157,9 @@ and forth as the program runs. A much better debugger or trace could easily be added.

      Alternate build:

      -
          make alt
      +
          make alt

      Alternate use:

      -
          ./paul.alt
      +
          ./paul.alt

      Judges’ remarks:

      The author’s comments is a detailed program explanation and spoiler. If you want a real challenge, don’t read any further and try to understand the program @@ -268,10 +269,10 @@ could easily be added.

    • Makefile - entry Makefile
    • paul.alt.c - alternative source
    • paul.orig.c - original source
    • -
    • 1989_paul.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1989_paul.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1989/robison/.entry.json b/1989/robison/.entry.json index fa5384ffd..42176d7ae 100644 --- a/1989/robison/.entry.json +++ b/1989/robison/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1989_robison.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1989/robison/index.html b/1989/robison/index.html index 3671017f4..319378df9 100644 --- a/1989/robison/index.html +++ b/1989/robison/index.html @@ -88,6 +88,7 @@ @@ -141,16 +142,16 @@ Location: US - United States of America

      To build:

      -
          make all
      +
          make all

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 1989 robison bugs.

      To use:

      -
          ./robison
      +
          ./robison
           # enter valid expressions

      Try:

      -
          ./robison
      +
          ./robison
           11x10
           # enter other expressions
       
      @@ -217,10 +218,10 @@ out the irrelevant bytes from your cc compiler.

    • Makefile - entry Makefile
    • robison.orig.c - original source
    • try.sh - how to run
    • -
    • 1989_robison.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1989_robison.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1989/roemer/.entry.json b/1989/roemer/.entry.json index 0a2692734..b84060a20 100644 --- a/1989/roemer/.entry.json +++ b/1989/roemer/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "1989_roemer.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1989/roemer/index.html b/1989/roemer/index.html index a2ec5e003..8061155f8 100644 --- a/1989/roemer/index.html +++ b/1989/roemer/index.html @@ -88,6 +88,7 @@ @@ -141,9 +142,9 @@ Location: NL - Kingdom of the Netherlan

      To build:

      -
          make all
      +
          make all

      Try:

      -
          ./roemer
      +
          ./roemer

      Judges’ remarks:

      Do you know what this program does? If you do, look again, there is more here than meets the PI.

      @@ -180,10 +181,10 @@ strip newlines and tabs, if your cb can’t do that).

    • roemer.c - entry source
    • Makefile - entry Makefile
    • roemer.orig.c - original source
    • -
    • 1989_roemer.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1989_roemer.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1989/tromp/.entry.json b/1989/tromp/.entry.json index a4e611cca..3af10ae53 100644 --- a/1989/tromp/.entry.json +++ b/1989/tromp/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1989_tromp.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1989/tromp/index.html b/1989/tromp/index.html index 582b0b51b..ff873599e 100644 --- a/1989/tromp/index.html +++ b/1989/tromp/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: US - United States of America

      To build:

      -
          make all
      +
          make all

      To use:

      -
          ./tromp [drops_per_sec  [cmd_string]]
      +
          ./tromp [drops_per_sec  [cmd_string]]

      Try:

      -
          ./tromp 5
      +
          ./tromp 5
       
           ./tromp 10 "hkl jq"

      The second command, ./tromp 10 "hkl jq", will set up the keys kind of like @@ -171,7 +172,7 @@ loser :-)

      The author provided an alternate version of the code with some improvements. See the judges’ additional remarks in the author’s remarks, for more details.

      Alternate build:

      -
          make alt
      +
          make alt

      Alternate use:

      Use tromp.alt as you would tromp above.

      NOTE: testing more than one user updating the high score file, one of the @@ -231,7 +232,7 @@ temporary file.

      at the start and -raw at the end. This further reduces the size of the program, but has the possible disadvantage that the program can only by stopped by ‘q’ or by the `kill -9’ command.

      -
          long h[4];t(){h[3]-=h[3]/3000;setitimer(0,h,0);}c,d,l,v[]={(int)t,0,2},w,s,I,K
      +
          long h[4];t(){h[3]-=h[3]/3000;setitimer(0,h,0);}c,d,l,v[]={(int)t,0,2},w,s,I,K
           =0,i=276,j,k,q[276],Q[276],*n=q,*m,x=17,f[]={7,-13,-12,1,8,-11,-12,-1,9,-1,1,
           12,3,-13,-12,-1,12,-1,11,1,15,-1,13,1,18,-1,1,2,0,-12,-1,11,1,-12,1,13,10,-12,
           1,12,11,-12,-1,1,2,-12,-1,12,13,-12,12,13,14,-11,-1,1,4,-13,-12,12,16,-11,-12,
      @@ -278,10 +279,10 @@ can only by stopped by ‘q’ or by the `kill -9’ command.

    • Makefile - entry Makefile
    • tromp.alt.c - alternative source
    • tromp.orig.c - original source
    • -
    • 1989_tromp.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1989_tromp.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1989/vanb/.entry.json b/1989/vanb/.entry.json index 9c603f041..62a011edd 100644 --- a/1989/vanb/.entry.json +++ b/1989/vanb/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1989_vanb.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1989/vanb/index.html b/1989/vanb/index.html index 9e3795862..e233f797d 100644 --- a/1989/vanb/index.html +++ b/1989/vanb/index.html @@ -88,6 +88,7 @@ @@ -141,9 +142,9 @@ Location: ZZ - Unknown location

      To build:

      -
          make all
      +
          make all

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      This program computes all proper subsets of the set of arguments passed to it. Each subset is printed with one @@ -185,10 +186,10 @@ value is negative.

    • Makefile - entry Makefile
    • vanb.orig.c - original source
    • try.sh - how to run
    • -
    • 1989_vanb.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1989_vanb.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1989/westley/.entry.json b/1989/westley/.entry.json index a0ec85812..7d9b9b3f5 100644 --- a/1989/westley/.entry.json +++ b/1989/westley/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "1989_westley.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1989/westley/index.html b/1989/westley/index.html index 87ed51c3a..e411040cc 100644 --- a/1989/westley/index.html +++ b/1989/westley/index.html @@ -88,6 +88,7 @@ @@ -141,21 +142,21 @@ Location: US - United States of America

      To build:

      -
          make all
      +
          make all

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: known bug - please help us fix

      For more detailed information see 1989 westley bugs.

      Try:

      Try compiling and running the 4 resulting programs like:

      -
          ./compile.sh
      +
          ./compile.sh

      If you need to specify an alternate compiler path, say because your default compiler is clang (or in the case of macOS gcc is clang) you can do so like:

      -
          CC=/opt/local/bin/gcc-mp-12 ./compile.sh
      +
          CC=/opt/local/bin/gcc-mp-12 ./compile.sh

      If you wish to delay the script or remove the delay you can do so like:

      -
          DELAY=2 ./compile.sh
      +
          DELAY=2 ./compile.sh

      Finally try:

      -
          ./westley
      +
          ./westley
           # input some lines of text, sending EOF (usually ctrl-d) to end
       
           ./try.sh # demo of some input
      @@ -175,7 +176,7 @@ different algorithm for each version (hereafter referred to as (ROT13 and reversed)).

      When compiling these versions, one needs to define trgpune in the compile line (which the Makefile now has). Example:

      -
          cc -Dtrgpune=putchar ver3.c -o ver3
      +
          cc -Dtrgpune=putchar ver3.c -o ver3

      trgpune is the ROT13 of getchar(), so getchar() and putchar() are exchanged in the ROT13 counterpart. It is easy to see that this is unavoidable. I must have a #define for a library @@ -207,14 +208,14 @@ first argument (argc) must be at least one).

      function vs() to define in the ROT13 version. But a function called vs() turns into a function called if() in the original, so it can’t be done. Therefore, I do:

      -
          expr1 && expr2 && (expr3=etc);
      +
          expr1 && expr2 && (expr3=etc);

      which is the same as:

      -
          if (expr1 && expr2) expr3=etc;
      +
          if (expr1 && expr2) expr3=etc;

      A/UX on the Macintosh doesn’t get this right; it evaluates ALL expressions if they aren’t in an assignment or conditional statement. This might warrant a warning, since other compilers may do this. I found MANY compilers botched:

      -
          expr1 && (expr2,expr3);
      +
          expr1 && (expr2,expr3);

      expr2 was OFTEN evaluated even if expr1 was false. I removed such statements to make it more portable.

      Variable names worth noting

      @@ -224,11 +225,11 @@ such statements to make it more portable.

      tang and gnat are both ROT13 and palindrome pairs!

      –

      Normally (!), a reversible C program is done thus:

      -
          /**/ forward code /*/ edoc drawkcab /**/
      +
          /**/ forward code /*/ edoc drawkcab /**/

      If your compiler nests comments, it will get this wrong. However, I have made some bits of the code palindromic, (or different, but reversible) so it is more like:

      -
          /**/forward/*//**/ palindromic /**//*/drawkcab/**/
      +
          /**/forward/*//**/ palindromic /**//*/drawkcab/**/

      The code can therefore be interlaced. There are eight such palindromic bits. You can find them within the /*//**/ /**//*/ pairs.

      @@ -266,10 +267,10 @@ will lack a terminating newline.

    • westley.orig.c - original source
    • compile.sh - generate and compile versions
    • try.sh - how to run
    • -
    • 1989_westley.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1989_westley.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1990/baruch/.entry.json b/1990/baruch/.entry.json index 3dad833c9..e7f441788 100644 --- a/1990/baruch/.entry.json +++ b/1990/baruch/.entry.json @@ -52,7 +52,7 @@ }, { "file_path" : "1990_baruch.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1990/baruch/index.html b/1990/baruch/index.html index f82dcb3fe..46e5c5a3b 100644 --- a/1990/baruch/index.html +++ b/1990/baruch/index.html @@ -88,6 +88,7 @@ @@ -144,7 +145,7 @@ Location: IL - State of Israel (

      To build:

      -
          make all
      +
          make all

      There is an alternate version for those using Turbo-C or MSC. See alternate code below for details.

      Bugs and (Mis)features:

      @@ -152,10 +153,10 @@ code below for details.

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 1990 baruch bugs.

      To use:

      -
          echo 4 | ./baruch
      +
          echo 4 | ./baruch
           echo 7 | ./baruch

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Alternate code:

      This alternate code is for the very few users @@ -165,7 +166,7 @@ the " #Q" string was not changed as that showed worse looking outpu of improved output though admittedly we have no way to test the compilers in question. YMMV.

      Alternate build:

      -
          make alt
      +
          make alt

      Alternate use:

      Use baruch.alt as you would baruch.

      Judges’ remarks:

      @@ -227,10 +228,10 @@ to replace the " #Q" string with " \261\2".

    • baruch.alt.c - alternative source
    • baruch.orig.c - original source
    • try.sh - how to run
    • -
    • 1990_baruch.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1990_baruch.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1990/cmills/.entry.json b/1990/cmills/.entry.json index fb973f197..59dae1d3d 100644 --- a/1990/cmills/.entry.json +++ b/1990/cmills/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "1990_cmills.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1990/cmills/index.html b/1990/cmills/index.html index 53d852787..f6a8f5628 100644 --- a/1990/cmills/index.html +++ b/1990/cmills/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: US - United States of America

      To build:

      -
          make all
      +
          make all

      To use:

      -
          ./cmills [starting_cash]
      +
          ./cmills [starting_cash]

      Try:

      -
          ./cmills 5000
      +
          ./cmills 5000

      Judges’ remarks:

      The Makefile uses several -D defines. The following is is a list of the macros that may be changed:

      @@ -194,10 +195,10 @@ times, and it will show all hands as they are played.

    • cmills.c - entry source
    • Makefile - entry Makefile
    • cmills.orig.c - original source
    • -
    • 1990_cmills.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1990_cmills.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1990/dds/.entry.json b/1990/dds/.entry.json index a47a4bae8..8ce3f98aa 100644 --- a/1990/dds/.entry.json +++ b/1990/dds/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1990_dds.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1990/dds/index.html b/1990/dds/index.html index 06f534e4a..b4f50e5fa 100644 --- a/1990/dds/index.html +++ b/1990/dds/index.html @@ -88,6 +88,7 @@ @@ -141,12 +142,12 @@ Location: GR - Hellenic Republic (

      To build:

      -
          make all
      +
          make all

      To use:

      -
          ./dds
      +
          ./dds

      Try:

      Give the following lines as input:

      -
          OLD LANDER.BAS
      +
          OLD LANDER.BAS
           RUN

      NOTE: this entry is probably one of the only times CAPS LOCK might be worth having (though still not useful enough to enable :-) ) as all input has to be @@ -256,10 +257,10 @@ fits in an 80*25 screen).

    • Makefile - entry Makefile
    • dds.orig.c - original source
    • LANDER.BAS - BASIC source code
    • -
    • 1990_dds.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1990_dds.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1990/dg/.entry.json b/1990/dg/.entry.json index 4ab795116..b384a3724 100644 --- a/1990/dg/.entry.json +++ b/1990/dg/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1990_dg.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1990/dg/index.html b/1990/dg/index.html index d7209a747..b416eb832 100644 --- a/1990/dg/index.html +++ b/1990/dg/index.html @@ -88,6 +88,7 @@ @@ -141,17 +142,17 @@ Location: ZZ - Unknown location

      To build:

      -
          make all
      +
          make all

      To use:

      -
          echo foo bar | ./dg
      +
          echo foo bar | ./dg

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      Some C preprocessors got confused about single quotes in certain cases. In particular, the following source line:

      -
          b12(ase(bco(acp(bi(acp(bcp(acp(bpl(aqu(bqu(A))))))))))))))))))))))))))))))
      +
          b12(ase(bco(acp(bi(acp(bcp(acp(bpl(aqu(bqu(A))))))))))))))))))))))))))))))

      sometimes has to be changed to:

      -
          b12(ase(bco(acp(bi(acp(bcp(acp(bpl('A'))))))))))))))))))))))))))))
      +
          b12(ase(bco(acp(bi(acp(bcp(acp(bpl('A'))))))))))))))))))))))))))))

      particularly if the C preprocessor botches single quotes in cpp expansions, which we have done for the wider audience.

      Author’s remarks:

      @@ -167,7 +168,7 @@ source. The axx() #defines do the same, but add tokens

      As for the rot13 algorithm, it relies on index(3) to find if the character is in the set A-Za-z. l[] is an array that gets filled with:

      -
          "nopqrstuvwxyzzzzabcdefghijklmmmmNOPQRSTUVWXYZZZZABCDEFGHIJKLMMMM"
      +
          "nopqrstuvwxyzzzzabcdefghijklmmmmNOPQRSTUVWXYZZZZABCDEFGHIJKLMMMM"

      If index(3) says the char is in the alphabet, then XOR the offset with 16 to translate, and output, otherwise pass it unchanged.

      To build:

      -
          make all
      +
          make all

      Try:

      To test the official C entry, one might try:

      -
          echo "Quartz glyph jocks vend, fix, BMW." | compress | ./btoa | ./jaw
      +
          echo "Quartz glyph jocks vend, fix, BMW." | compress | ./btoa | ./jaw

      which should apply the identity transformation to a minimal holoalphabetic sentence.

      Also try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      The program, in its base form, implements two useful utilities:

        @@ -165,10 +166,10 @@ sentence.

        it to 1530 bytes) which implements the complete shark utility. The script, shark.sh, contains a jaw.c embedded within it!

        The sender must have compress and btoa. To send, try:

        -
            ./shark.sh jaw.* README.md > receive
        +
            ./shark.sh jaw.* README.md > receive

        The resulting file, receive, unpacks the input files even if the receiver lacks uncompress and btoa:

        -
            mkdir -p test
        +
            mkdir -p test
             cd test
             sh ../receive
             cmp ../jaw.c jaw.c
        @@ -262,7 +263,7 @@ left, and source-to-source transformations galore.

        Construct sharkmail, to auto-split sharkives into mailable segments and mail them. Here’s a simple one, which could be extended to enable auto-reassembly with one shell cmd at the far end.

        -
            #!/bin/sh
        +
            #!/bin/sh
             m=$1; shift
             shark $* | split -800 - /tmp/shark$$
             n=`ls /tmp/shark$$* | wc -l | sed 's/ *//'`
        @@ -329,10 +330,10 @@ Dan Bernstein’s high-compression ‘squeeze’.

      • try.sh - how to run
      • btoa - bota utility
      • shark.sh - shark utility with embedded source
      • -
      • 1990_jaw.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1990_jaw.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1990/pjr/.entry.json b/1990/pjr/.entry.json index f3b644143..e1af7cac5 100644 --- a/1990/pjr/.entry.json +++ b/1990/pjr/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1990_pjr.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1990/pjr/index.html b/1990/pjr/index.html index cba6f2cf8..625363940 100644 --- a/1990/pjr/index.html +++ b/1990/pjr/index.html @@ -88,6 +88,7 @@ @@ -141,24 +142,24 @@ Location: GB - United Kingdom of Great

        To build:

        -
            make all
        +
            make all

        There is an alternate version that does something different that can be used if your compiler is incapable of compiling X=g()... in main(). It can be used for another purpose too.

        To use:

        -
            ./pjr
        +
            ./pjr

        Alternate code:

        Note that some compilers will be unable to compile the expression X=g()... in main() due to lack of temporary stack space. One might want to try replacing main() with:

        -
            main(){X=s().v().o().o().l().S().d().l().i().o().w().N();}
        +
            main(){X=s().v().o().o().l().S().d().l().i().o().w().N();}

        if this is a problem, which is what this alternate code is.

        NOTE: it prints something else and it is what the author suggested one try as well.

        Alternate build:

        -
            make alt
        +
            make alt

        Alternate use:

        -
            ./pjr.alt
        +
            ./pjr.alt

        Judges’ remarks:

        This program prints out a string. Can you figure out how it is done?

        @@ -175,7 +176,7 @@ alphabetical character from a to z is printed out as its opposite:

            a->z b->y c->x etc

        To encode a new string input the string as it is meant to come out:

        -
            X=s().v().o().o().l().S().d().l().i().o().w().N();
        +
            X=s().v().o().o().l().S().d().l().i().o().w().N();

        Note: S() represents a space and N() a newline. This will now produce…

            hello world
        @@ -209,10 +210,10 @@ to the reader to find out what it is.

      • Makefile - entry Makefile
      • pjr.alt.c - alternative source
      • pjr.orig.c - original source
      • -
      • 1990_pjr.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1990_pjr.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1990/scjones/.entry.json b/1990/scjones/.entry.json index 2b66c3c44..1be300074 100644 --- a/1990/scjones/.entry.json +++ b/1990/scjones/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1990_scjones.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1990/scjones/index.html b/1990/scjones/index.html index 505dfdd90..08128e50e 100644 --- a/1990/scjones/index.html +++ b/1990/scjones/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: ZZ - Unknown location

        To build:

        -
            make all
        +
            make all

        To use:

        -
            ./scjones
        +
            ./scjones

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Judges’ remarks:

        The addition of trigraphs has made it easier to make programs hard to read. It was a dark and stormy night for C when the ANSI C committee added trigraphs to @@ -199,10 +200,10 @@ would allow for sequence numbers to be punched in columns 73-80 :-).

      • Makefile - entry Makefile
      • scjones.orig.c - original source
      • try.sh - how to run
      • -
      • 1990_scjones.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1990_scjones.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1990/stig/.entry.json b/1990/stig/.entry.json index e231f0495..abd202305 100644 --- a/1990/stig/.entry.json +++ b/1990/stig/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1990_stig.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1990/stig/index.html b/1990/stig/index.html index 77bd98169..9dd1edbf0 100644 --- a/1990/stig/index.html +++ b/1990/stig/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: NO - Kingdom of Norway (

        To build:

        -
            make all
        +
            make all

        To use:

        -
            make all
        +
            make all

        NOTE: that’s not a typo or mistake but one can also do:

        -
            ./o
        +
            ./o

        Judges’ remarks:

        We changed the alias that the author’s suggested alias from a C-shell alias to a Bourne-like shell alias.

        @@ -192,10 +193,10 @@ K&R support nested comments when properly implemented, but what the heck.

        Makefile - entry Makefile
      • stig.orig.c - original source
      • stig.sh - how to compile
      • -
      • 1990_stig.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1990_stig.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1990/tbr/.entry.json b/1990/tbr/.entry.json index d6dd55f2f..eab23b8ad 100644 --- a/1990/tbr/.entry.json +++ b/1990/tbr/.entry.json @@ -44,7 +44,7 @@ }, { "file_path" : "1990_tbr.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1990/tbr/index.html b/1990/tbr/index.html index 9a17ee043..ec6824789 100644 --- a/1990/tbr/index.html +++ b/1990/tbr/index.html @@ -88,6 +88,7 @@ @@ -144,7 +145,7 @@ Location: ZZ - Unknown location

        To build:

        -
            make all
        +
            make all

        The authors provided another version of this program. See the alternate version section below.

        Bugs and (Mis)features:

        @@ -155,7 +156,7 @@ version section below.

        In 2023 it was noticed that in some systems like macOS there was confusing output due to a warning at runtime that was interspersed with the output of the program. For instance it would show:

        -
            ./tbr
        +
            ./tbr
             $ warning: this program uses gets(), which is unsafe.

        which kind of hid the prompt. Thus the entry was changed to use fgets(3) which is referred to later in this file.

        @@ -163,14 +164,14 @@ is referred to later in this file.

        this entry would not compile in modern systems. This fix is also referred to below, in the alternate version section.

        To use:

        -
            ./tbr
        +
            ./tbr
             $ enter some shell commands

        NOTE: globs do not work with this entry. Why?

        NOTE: exit does not work and neither does logout. To exit try sending ctrl-d or ctrl-c (or kill it from another terminal :-) ). But why does it not work with just exit or logout? Hint: see the authors’ remarks.

        Try:

        -
            ./tbr
        +
            ./tbr
             $ ls -l tbr tbr.c
         
             # notice how the following does not work:
        @@ -187,7 +188,7 @@ documented, are not considered bugs as such in the context of the contest.

        Alternate code:

        The authors supplied us with a slightly smaller unformatted version of the program which we include below:

        -
            #define D ,close(
        +
            #define D ,close(
             char*c,q[512],m[256],*v[99],**u,*i[3];int f[2],p;main(){for(m[m[60]=m[62]=
             32]=m[*m=124[m]=9]=6;e(-8),gets(1+(c=q))||(exit(0),0);r(0,0))for(;*++c;);}
             r(t,o){*i=i[2]=0;for(u=v+98;m[*--c]^9;m[*c]&32?i[*c&2]=
        @@ -201,9 +202,9 @@ of the program which we include below:

        as well as the gets() to fgets() fix applied to it to make it functionally equivalent like the authors intended.

        Alternate build:

        -
            make alt
        +
            make alt

        Alternate use:

        -
            ./tbr.alt
        +
            ./tbr.alt

        Judges’ remarks:

        This program touches on a well known Unix utility, the 6th edition Bourne Shell (/bin/sh), whose original source was considered to be extremely obfuscated by @@ -245,9 +246,9 @@ is parsed; a pointer to the stack of arguments is assigned and an argument is stolen every time a > or < is encountered. The shell flags an error if no arguments are on the stack. Thus, for example:

        -
            cat > foo > bar
        +
            cat > foo > bar

        cats to foo, since it was pushed last, but

        -
            cat > > foo bar
        +
            cat > > foo bar

        cats to bar, since bar was pushed under foo (remember we’re parsing right-left).

        Depending on your flavor of Unix, cd without an argument will @@ -281,10 +282,10 @@ all ed(1) does too.

      • Makefile - entry Makefile
      • tbr.alt.c - alternative source
      • tbr.orig.c - original source
      • -
      • 1990_tbr.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1990_tbr.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1990/theorem/.entry.json b/1990/theorem/.entry.json index 91e33e7ff..40be60cad 100644 --- a/1990/theorem/.entry.json +++ b/1990/theorem/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1990_theorem.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1990/theorem/index.html b/1990/theorem/index.html index cc4e1ce2e..cfbf51160 100644 --- a/1990/theorem/index.html +++ b/1990/theorem/index.html @@ -88,6 +88,7 @@ @@ -141,13 +142,13 @@ Location: US - United States of America

        To build:

        -
            make all
        +
            make all

        Bugs and (Mis)features:

        The current status of this entry is:

            STATUS: INABIAF - please **DO NOT** fix

        For more detailed information see 1990 theorem bugs.

        To use:

        -
            ./theorem expression x1 x2 h y1
        +
            ./theorem expression x1 x2 h y1

        where:

            expression - function f(x,y)  (see below)
             x1 - start of interval
        @@ -155,7 +156,7 @@ Location: US - United States of America
             h - step size
             y1 - initial value  (y(x1) == y1)

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Judges’ remarks:

        The program’s source implements four functions, all from the same source file!

        @@ -169,23 +170,23 @@ operators:

        integer powers. Also note that all expressions are evaluated strictly left to right. (i.e., parenthesis aren’t supported).

        Try running the program with the following args:

        -
            ./theorem y 0 1 0.1 1
        +
            ./theorem y 0 1 0.1 1
             ./theorem 1/x 1 2 0.1 0
             ./theorem 'x^2/y+x' 0 1 0.1 6

        But wait, there is more! You also get, free of charge, a reversing filter! Try:

        -
            ./theorem -r 0 0 0 0 < theorem.c > sorter.c
        +
            ./theorem -r 0 0 0 0 < theorem.c > sorter.c

        Still not impressed? The author throws in for free, a sort program! Try:

        -
            make sorter
        +
            make sorter
             ls | ./sorter

        This program is safe for home use as well. The author has included a safety feature in case you misplace the original program source:

        -
            ./sorter -r 0 0 0 0 < sorter.c > theorem_bkp.c
        +
            ./sorter -r 0 0 0 0 < sorter.c > theorem_bkp.c

        And finally, as a special offer to users of this entry, the author provides a Fibonacci sequence generator! Try:

        -
            ./sorter 0 0 0 0 < theorem.c > fibonacci.c
        +
            ./sorter 0 0 0 0 < theorem.c > fibonacci.c
             make fibonacci
             ./fibonacci 1 1
             ./fibonacci 2 1
        @@ -233,10 +234,10 @@ lines, each less than 99 characters long.

      • Makefile - entry Makefile
      • theorem.orig.c - original source
      • try.sh - how to run
      • -
      • 1990_theorem.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1990_theorem.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1990/westley/.entry.json b/1990/westley/.entry.json index bf2e76be2..5de099bc5 100644 --- a/1990/westley/.entry.json +++ b/1990/westley/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "1990_westley.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1990/westley/index.html b/1990/westley/index.html index ddac0017c..07bff2f2a 100644 --- a/1990/westley/index.html +++ b/1990/westley/index.html @@ -88,6 +88,7 @@ @@ -141,19 +142,19 @@ Location: US - United States of America

        To build:

        -
            make all
        +
            make all

        To use:

        -
            ./westley <number>
        +
            ./westley <number>

        The number should be greater than 0.

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Alternate code:

        The alternate code is provided to show how C changed.

        Alternate build:

        If you have an old enough compiler try and to see how C has changed over the years:

        -
            make alt
        +
            make alt

        Alternate use:

        -
            ./westley.alt <number>
        +
            ./westley.alt <number>

        Judges’ remarks:

        If you would rather “Daisy” someone other than Westley, rename the program as needed. :-)

        @@ -206,10 +207,10 @@ on some systems. My personal favorite lint complaint is

      • westley.alt.c - alternative source
      • westley.orig.c - original source
      • try.sh - how to run
      • -
      • 1990_westley.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1990_westley.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1991/ant/.entry.json b/1991/ant/.entry.json index ba5d68b2f..756cccd13 100644 --- a/1991/ant/.entry.json +++ b/1991/ant/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1991_ant.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1991/ant/index.html b/1991/ant/index.html index ca81acb1b..48376614b 100644 --- a/1991/ant/index.html +++ b/1991/ant/index.html @@ -88,6 +88,7 @@ @@ -141,17 +142,17 @@ Location: CA - Canada

        To build:

        -
            make all
        +
            make all

        There is an alternate version that might feel a bit more familiar to vi(m) users.

        To use:

        -
            ./ant some_file
        +
            ./ant some_file

        NOTE: the file must already exist and not specifying any arg will make the program exit without doing anything.

        Try:

        -
            make hill
        +
            make hill
             ./ant hill
        -
            make mole
        +
            make mole
             ./ant mole

        Alternate code:

        This version changes the commands slightly so that to go to the first column you @@ -163,7 +164,7 @@ ESC (\x1b).

        These will make it slightly less unwieldy for those familiar with vi(m); the rest was unchanged.

        Alternate build:

        -
            make alt
        +
            make alt

        Alternate use:

        Use ant.alt as you would ant above with the changes in the input keys. See the author’s remarks for the remaining keys.

        @@ -268,10 +269,10 @@ ISBN 0-13-822305-X, chapter 5

      • Makefile - entry Makefile
      • ant.alt.c - alternative source
      • ant.orig.c - original source
      • -
      • 1991_ant.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1991_ant.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1991/brnstnd/.entry.json b/1991/brnstnd/.entry.json index 9eee5d30f..b4513654f 100644 --- a/1991/brnstnd/.entry.json +++ b/1991/brnstnd/.entry.json @@ -163,7 +163,7 @@ }, { "file_path" : "1991_brnstnd.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1991/brnstnd/index.html b/1991/brnstnd/index.html index e0092b5e0..e3119fe4a 100644 --- a/1991/brnstnd/index.html +++ b/1991/brnstnd/index.html @@ -88,6 +88,7 @@ @@ -141,9 +142,9 @@ Location: US - United States of America

        To build:

        -
            make all
        +
            make all

        Try:

        -
            ./try.sh
        +
            ./try.sh
         
             ./sorta < sorta.itailrec

        Judges’ remarks:

        @@ -325,10 +326,10 @@ the size limit, unfortunately.

      • sorta.isleep - SORTA source
      • sorta.itailrec - SORTA source
      • sorta.iwhosort - SORTA source
      • -
      • 1991_brnstnd.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1991_brnstnd.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1991/brnstnd/sorta.README.html b/1991/brnstnd/sorta.README.html index 6824bfbe1..a6d2f05e8 100644 --- a/1991/brnstnd/sorta.README.html +++ b/1991/brnstnd/sorta.README.html @@ -83,6 +83,7 @@ diff --git a/1991/buzzard/.entry.json b/1991/buzzard/.entry.json index da2215ce9..2508500e1 100644 --- a/1991/buzzard/.entry.json +++ b/1991/buzzard/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1991_buzzard.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1991/buzzard/index.html b/1991/buzzard/index.html index 9a24349ec..2ce848550 100644 --- a/1991/buzzard/index.html +++ b/1991/buzzard/index.html @@ -88,6 +88,7 @@ @@ -141,7 +142,7 @@ Location: ZZ - Unknown location

        To build:

        -
            make all
        +
            make all

        There is an alternate version which might feel more at home for vi(m) users in navigation.

        Bugs and (Mis)features:

        @@ -149,7 +150,7 @@ for vi(m) users in navigation.

            STATUS: INABIAF - please **DO NOT** fix

        For more detailed information see 1991 buzzard bugs.

        To use:

        -
            ./buzzard
        +
            ./buzzard

        Alternate code:

        This version changes the keys f for forward, l for left and r for right by default to k for forward, l for right and h for left, which is more @@ -157,9 +158,9 @@ natural for those who use vi(m). Also one can just hit q followed b quit the maze. It is problematic to reconfigure the keys except by modifying the code directly so the keys are not made a -D at the compiler.

        Alternate build:

        -
            make alt
        +
            make alt

        Alternate use:

        -
            ./buzzard.alt
        +
            ./buzzard.alt

        Judges’ remarks:

        You will be A-mazed.

        You are invited to try to cheat, … if you can figure out how! :-)

        @@ -186,7 +187,7 @@ separate physical rows in the maze; a space indicates a corridor, and any other character is a wall. Tabs are also considered walls, so make sure to convert tabs to spaces before using it.

        Usage:

        -
            ./buzzard [filename [escape-char [start-x start-yNNN
        +
            ./buzzard [filename [escape-char [start-x start-yNNN

        Filename is the name of the file containing the maze. This defaults to buzzard.c or rather __FILE__.

        Escape-char is the character in the maze that represents the exit. @@ -236,10 +237,10 @@ to reach into arbitrary parcels of memory.

      • Makefile - entry Makefile
      • buzzard.alt.c - alternative source
      • buzzard.orig.c - original source
      • -
      • 1991_buzzard.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1991_buzzard.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1991/cdupont/.entry.json b/1991/cdupont/.entry.json index deea0b16e..0e8038d15 100644 --- a/1991/cdupont/.entry.json +++ b/1991/cdupont/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "1991_cdupont.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1991/cdupont/index.html b/1991/cdupont/index.html index 19430b9e1..54730bf28 100644 --- a/1991/cdupont/index.html +++ b/1991/cdupont/index.html @@ -88,6 +88,7 @@ @@ -141,12 +142,12 @@ Location: FR - French Republic (

        To build:

        -
            make all
        +
            make all

        To use:

        -
            ./cdupont
        +
            ./cdupont

        Judges’ remarks:

        Why is the following label necessary?

        -
            sorryfor_this_unused_but_very_needed_label:
        +
            sorryfor_this_unused_but_very_needed_label:

        Notice that if you C beautify (cb) or pre-process this program, it will no longer work correctly, if at all. (go ahead, try it… :-))

        NOTE: One should remove the final trailing newline to obtain the @@ -188,10 +189,10 @@ you to place the meaningful letters wherever you want.

      • cdupont.c - entry source
      • Makefile - entry Makefile
      • cdupont.orig.c - original source
      • -
      • 1991_cdupont.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1991_cdupont.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1991/davidguy/.entry.json b/1991/davidguy/.entry.json index 90e061c6d..9ac8a98f9 100644 --- a/1991/davidguy/.entry.json +++ b/1991/davidguy/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "1991_davidguy.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1991/davidguy/index.html b/1991/davidguy/index.html index 925bc952e..3926abe1a 100644 --- a/1991/davidguy/index.html +++ b/1991/davidguy/index.html @@ -88,6 +88,7 @@ @@ -141,15 +142,15 @@ Location: US - United States of America

        To build:

        -
            make all
        +
            make all

        To use:

        -
            ./davidguy ip_address:server.screen
        +
            ./davidguy ip_address:server.screen

        where ip_address in an IP address of an X server.

        Try:

        -
            ./davidguy 127.0.0.1:0.0
        +
            ./davidguy 127.0.0.1:0.0

        Of course, you may need to supply a more reasonable address. :-)

        Also try:

        -
            cp -f davidguy guydavid
        +
            cp -f davidguy guydavid
             ./guydavid 127.0.0.1:0.0

        Can you determine why this makes a difference?

        Judges’ remarks:

        @@ -249,10 +250,10 @@ on the screen, dominates the time to compute the next generation.

      • davidguy.c - entry source
      • Makefile - entry Makefile
      • davidguy.orig.c - original source
      • -
      • 1991_davidguy.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1991_davidguy.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1991/dds/.entry.json b/1991/dds/.entry.json index 70a01e811..a4b50cd2d 100644 --- a/1991/dds/.entry.json +++ b/1991/dds/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1991_dds.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1991/dds/index.html b/1991/dds/index.html index 1a3d48dff..216b29073 100644 --- a/1991/dds/index.html +++ b/1991/dds/index.html @@ -88,6 +88,7 @@ @@ -141,18 +142,18 @@ Location: GR - Hellenic Republic (

        To build:

        -
            make all
        +
            make all

        To use:

        -
            ./dds basic_program
        +
            ./dds basic_program
             ./a.out 2>/dev/null

        Try:

        The author suggests trying:

        -
            ./dds LANDER.BAS
        +
            ./dds LANDER.BAS
             ./a.out

        Notice that a file a.c has been generated. Can you tell how a.c was produced? How does a.c relate to LANDER.BAS?

        What happens if you give the program a C program like itself? Try:

        -
            ./dds dds.c
        +
            ./dds dds.c

        You’ll get errors yes but what does the generated file look like? What about other types of files?

        Judges’ remarks:

        @@ -232,10 +233,10 @@ encoded by adding one to every character of it just to confuse you).

      • Makefile - entry Makefile
      • dds.orig.c - original source
      • LANDER.BAS - BASIC source code
      • -
      • 1991_dds.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1991_dds.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1991/fine/.entry.json b/1991/fine/.entry.json index e5d7d8f83..6d4f38d5a 100644 --- a/1991/fine/.entry.json +++ b/1991/fine/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1991_fine.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1991/fine/index.html b/1991/fine/index.html index 327b90d3c..6007a99f1 100644 --- a/1991/fine/index.html +++ b/1991/fine/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: US - United States of America

        To build:

        -
            make all
        +
            make all

        To use:

        -
            echo text | ./fine
        +
            echo text | ./fine

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Make sure that you read the last line backwards! Credit goes to Merlyn LeRoy (Brian Westley) for that. See his 22 August 1992 rec.puzzles @@ -239,10 +240,10 @@ for the student.

      • Makefile - entry Makefile
      • fine.orig.c - original source
      • try.sh - how to run
      • -
      • 1991_fine.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1991_fine.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1991/index.html b/1991/index.html index 0438b6893..c61e875b6 100644 --- a/1991/index.html +++ b/1991/index.html @@ -86,6 +86,7 @@ @@ -155,7 +156,7 @@ a winning entry for the past 5 years!

        would deny awards to more deserving entries. These categories have not been eliminated, and will likely be considered in future years.

        A number of entries made use of the following C pre-processor feature:

        -
            #define X define
        +
            #define X define
             #X foo bar

        This is not permitted under ANSI C. Some ANSI C compilers do allow this. In the future, we do not want programs to use this feature. Because this request diff --git a/1991/rince/.entry.json b/1991/rince/.entry.json index ab5df1051..4baeb247c 100644 --- a/1991/rince/.entry.json +++ b/1991/rince/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "1991_rince.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1991/rince/index.html b/1991/rince/index.html index 38da79c3e..3ad21c505 100644 --- a/1991/rince/index.html +++ b/1991/rince/index.html @@ -88,6 +88,7 @@

        @@ -141,12 +142,12 @@ Location: GB - United Kingdom of Great

        To build:

        -
            make all
        +
            make all

        There are two alternate versions which allow one to not be restricted in movements or to change the maximum number of movements, even if that’s fewer than the original program.

        To use:

        -
            ./rince
        +
            ./rince

        Alternate code:

        The first alternate version, rince.alt.c, disables a maximum move count so that anyone with enough patience and time can complete the puzzle, @@ -156,18 +157,18 @@ reconfigure at compilation the maximum number of moves, even if that is lowering the count.

        The author set the maximum number of moves to 484.

        Alternate build:

        -
            make alt
        +
            make alt

        This will build both alt versions where the first one, rince.alt, has no restrictions in the number of movements and the second one, rince.alt2, has a configurable maximum number of moves allowed, defaulting to the entry’s max, 484.

        To reconfigure the maximum number of moves to 700:

        -
            make clobber MAXMOVES=700 alt
        +
            make clobber MAXMOVES=700 alt

        Alternate use:

        To run the first alt version:

        -
            ./rince.alt
        +
            ./rince.alt

        To run the second alt version:

        -
            ./rince.alt2
        +
            ./rince.alt2

        Can you figure out how to make the two alternate versions equivalent in functionality without modifying the code? That is can you make the second alt version end up allowing any number of movements?

        @@ -237,10 +238,10 @@ Take care that it’s facing in the correct direction.

      • rince.alt2.c - alternate alternative source
      • rince.alt.c - alternative source
      • rince.orig.c - original source
      • -
      • 1991_rince.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1991_rince.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1991/westley/.entry.json b/1991/westley/.entry.json index 46f58571b..483351feb 100644 --- a/1991/westley/.entry.json +++ b/1991/westley/.entry.json @@ -59,7 +59,7 @@ }, { "file_path" : "1991_westley.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1991/westley/index.html b/1991/westley/index.html index d936d09ba..59577fae2 100644 --- a/1991/westley/index.html +++ b/1991/westley/index.html @@ -88,6 +88,7 @@ @@ -141,7 +142,7 @@ Location: US - United States of America

        To build:

        -
            make all
        +
            make all

        There is an alternate version that is supposed to win all the time.

        Bugs and (Mis)features:

        @@ -152,7 +153,7 @@ time.

        NOTE: we have provided a script to perform the below procedure which we include for the interested. See the try section if you just want to play.

        Make and then run as follows:

        -
            ./westley [move_location] | tee nextmove.c
        +
            ./westley [move_location] | tee nextmove.c

        where the move_location is a digit from 1 to 9 that represents a move on a tic-tac-toe board:

            1 2 3
        @@ -160,25 +161,25 @@ a move on a tic-tac-toe board:

        7 8 9

        If you omit move_location, then the computer moves first. For your next move, recompile nextmove.c and play it again:

        -
            make nextmove
        +
            make nextmove
             ./nextmove move_location | tee nextmove.c

        Try:

        We have provided the shell script, ttt, to make it easier to play the game:

        -
            make ttt
        +
            make ttt
             ./ttt [first_move]  # <- omit first arg to have it move first
             ./ttt next_move

        The shell script determines when the game is over, and automatically replaces merlyn.c (copied from westley.c with an improved version after a loss). The ttt script has two other modes:

        -
            ./ttt quitgame      # cancel any game in progress, revert to merlyn.c
        +
            ./ttt quitgame      # cancel any game in progress, revert to merlyn.c
             ./ttt clobber       # remove all game files, revert to original source

        For example here is a potentially losing game:

        -
            ./ttt 1
        +
            ./ttt 1
             ./ttt 4
             ./ttt 6

        The final might look like:

        -
                            a(X){/*/X=-         a(X){/*/X=-
        +
                            a(X){/*/X=-         a(X){/*/X=-
                     X   -1;F;X=-                -1;F;X=-
                             -1;F;}/*/           -1;F;}/*/
             char z[][100]={"char z[][100]={","a(X){/*/X=-","-1;F;X=-","-1;F;}/*/","1999999999  :-) ",
        @@ -212,7 +213,7 @@ loss). The ttt script has two other modes:

        This version is based on the author’s remarks. It is not supposed to lose but it can lose if you cheat. That’s supposed to happen. Can you win any other time?

        Alternate build:

        -
            make alt
        +
            make alt

        Alternate use:

        Rather than use ttt try the script ttt.alt instead.

        Judges’ remarks:

        @@ -259,7 +260,7 @@ longer loses games.

        function as a(), b(), or c(). After each function is called, the global variables X and O contain bitmasks of where all the Xs and Os are placed. The statement:

        -
            X=-   <char>   -1;
        +
            X=-   <char>   -1;

        evaluates to 1, -1, or -2 when X is 1 and <char> is one of "X", "0", or " ". The function S(&X) sets the appropriate bits in (global vars) X and O and resets the value of &X to 1. This is how the current @@ -372,10 +373,10 @@ found. A template is scanned from bottom to top, right to left

      • westley.orig.c - original source
      • ttt.alt.sh - how to run the alternative code
      • ttt.sh - play tic-tac-toe
      • -
      • 1991_westley.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1991_westley.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1992/adrian/.entry.json b/1992/adrian/.entry.json index 94e32341a..4fd1285f1 100644 --- a/1992/adrian/.entry.json +++ b/1992/adrian/.entry.json @@ -99,7 +99,7 @@ }, { "file_path" : "1992_adrian.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1992/adrian/index.html b/1992/adrian/index.html index 8e1493fb6..7ef27dd2c 100644 --- a/1992/adrian/index.html +++ b/1992/adrian/index.html @@ -88,6 +88,7 @@ @@ -141,16 +142,16 @@ Location: US - United States of America

        To build:

        -
            make all
        +
            make all

        Bugs and (Mis)features:

        The current status of this entry is:

            STATUS: known bug - please help us fix
             STATUS: INABIAF - please **DO NOT** fix

        For more detailed information see 1992 adrian bugs.

        Try:

        -
            ./try.sh
        +
            ./try.sh

        For the slow minded, try:

        -
            ./adsleep 32767
        +
            ./adsleep 32767

        Judges’ remarks:

        Once you get past the obfuscation, you have an opportunity to learn about regular expressions and state machines.

        @@ -214,7 +215,7 @@ character list.

        [q5]

        With the automaton specification in filename, invoke the program by typing

        -
            ./adrian filename
        +
            ./adrian filename

        It will read the file and print out all the lines which the automaton accepts. If the file cannot be opened, a system error message will be printed. If the input contains errors, then an error message along @@ -225,7 +226,7 @@ being processed is printed. Error no_destination occurs if you spec set of characters, but no destination state, and error too_many_states occurs if your automaton has more than 257 states.

        Running:

        -
            ./adrian from < your_mailbox
        +
            ./adrian from < your_mailbox

        will perform a function similar to that of the unix from command.

        If no filename is specified on the command line, then __FILE__ is used as the specification for the automaton. (Originally this was "adgrep.c" but the file @@ -234,23 +235,23 @@ changed to __FILE__.) In this case, the program will search for mat the regular expression:

            ^.[^|C][^w[Q]*(Q|[w[]c).*|^.[C|]$

        I suggest using adrian.c as input, and storing the output in adwc.c:

        -
            ./adrian < adrian.c > adwc.c
        +
            ./adrian < adrian.c > adwc.c

        Compiling the new file, adwc.c, yields a clone of the unix wc command. It runs on one file, defaulting to "adrian.c" if no file is given (again, this was changed to be __FILE__) and displays the number of lines, words, and bytes in the input file.

        Another possibly interesting automaton can be created by slightly adjusting the adrian.c file. Change the first line to read

        -
            /* . echo| . */
        +
            /* . echo| . */

        and repeat the process above

        -
            ./adrian <adrian.c > adecho.c
        +
            ./adrian <adrian.c > adecho.c

        The new file now contains all lines which match

            ^.[^5|m^]*[m^]([e=p,;]|[^e=+p,;].*)$

        Compile and run. This is an echo(1) clone. Note the efficient algorithm employed.

        Two other adjustments to the first line also yield useful results. By changing it to

        -
            /* . head; . */
        +
            /* . head; . */

        you can search for matches to

            ^.[^W]*W..*$

        By some freak happenstance, lines of adrian.c which match this regular @@ -258,7 +259,7 @@ expression form a unix head(1) command. It prints the first ten lin the file specified on the command line or adrian.c if no file is specified (again this was changed to __FILE__).

        By setting the first line to

        -
            /* . basename . */
        +
            /* . basename . */

        a clone of the unix basename(1) command can be unearthed. The automaton will search for

            ^.[^j]*jr.*$
        @@ -268,7 +269,7 @@ filename, and the second, an extension. All leading pathname components are removed from the filename, and the extension is removed if present. The resulting base name is printed to stdout.

        Lastly, by setting the first line to

        -
            /* . sleep . */
        +
            /* . sleep . */

        you can search for

            ^.[^(~][^s]*sl.*$

        Filtering adrian.c through this search yields a clone of the sleep(1) @@ -327,10 +328,10 @@ when compiled depending on the compiler.

      • adrian.grep.from - agrep script
      • adrian.grep.try - agrep script
      • try.sh - how to run
      • -
      • 1992_adrian.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1992_adrian.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1992/albert/.entry.json b/1992/albert/.entry.json index 1e528e20b..42b692d9d 100644 --- a/1992/albert/.entry.json +++ b/1992/albert/.entry.json @@ -59,7 +59,7 @@ }, { "file_path" : "1992_albert.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1992/albert/index.html b/1992/albert/index.html index 08ae8204f..ace515251 100644 --- a/1992/albert/index.html +++ b/1992/albert/index.html @@ -88,6 +88,7 @@ @@ -141,16 +142,16 @@ Location: NL - Kingdom of the Netherlan

        To build:

        -
            make all
        +
            make all

        An alternate version exists that fixes a bug.

        Bugs and (Mis)features:

        The current status of this entry is:

            STATUS: known bug - please help us fix

        For more detailed information see 1992 albert bugs.

        To use:

        -
            ./albert number
        +
            ./albert number

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Alternate code:

        An alternate version of this entry, albert.alt.c, is provided. Leo Broukhis, before he was an IOCCC judge, sent the IOCCC @@ -173,11 +174,11 @@ judges this Email message:

        albert.c is the file before applying Leo Broukhis’ fix.

        Alternate build:

        To compile this alternate version:

        -
            make alt
        +
            make alt

        Alternate use:

        Use albert.alt as you would albert above.

        Alternate try:

        -
            ./try.alt.sh
        +
            ./try.alt.sh

        Judges’ remarks:

        We were impressed with the speed at which it was able to factor arbitrarily large numbers consisting of factors that fit into @@ -194,10 +195,10 @@ multiplication, until the candidate factor no longer fits in a signed long.

        if you want to factor Fermat’s 4th number. Then just run it.

        Or you may type ./albert <some-number> A nice one is also (30 ones):

        -
            ./albert 111111111111111111111111111111
        +
            ./albert 111111111111111111111111111111

        Apart from the foregoing there are no special execution instructions.

        To customize the program into a factorizer of a fixed number, use

        -
            cc albert.c -o 4294967297
        +
            cc albert.c -o 4294967297

        or some such.

        There are no data files used, and it is not possible to feed input via stdin.

        @@ -259,10 +260,10 @@ Observation: “if it ends in a zero, it is divisible by ten”.
      • albert.orig.c - original source
      • try.alt.sh - how to run alternative code
      • try.sh - how to run
      • -
      • 1992_albert.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1992_albert.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1992/ant/.entry.json b/1992/ant/.entry.json index feaf82262..77aeadaa6 100644 --- a/1992/ant/.entry.json +++ b/1992/ant/.entry.json @@ -59,7 +59,7 @@ }, { "file_path" : "1992_ant.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1992/ant/index.html b/1992/ant/index.html index 5a7dfb9af..6f2527222 100644 --- a/1992/ant/index.html +++ b/1992/ant/index.html @@ -88,6 +88,7 @@ @@ -141,14 +142,14 @@ Location: CA - Canada

        To build:

        -
            make all
        +
            make all

        To use:

        -
            ./ant Makefile
        +
            ./ant Makefile
         
             ./ant Makefile rule

        where Makefile is a Makefile to use and rule is an optional rule to use.

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Judges’ remarks:

        Like much of POSIX, obfuscation has its place. Your task is to figure out where.

        @@ -186,10 +187,10 @@ P1003 subcommittee.

      • try.sh - how to run
      • ant.README - am man page
      • ant.test.mk - how to compile
      • -
      • 1992_ant.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1992_ant.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1992/buzzard.1/.entry.json b/1992/buzzard.1/.entry.json index e787fb71e..c43808afe 100644 --- a/1992/buzzard.1/.entry.json +++ b/1992/buzzard.1/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1992_buzzard.1.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1992/buzzard.1/index.html b/1992/buzzard.1/index.html index 22b8fc299..4c9fefe33 100644 --- a/1992/buzzard.1/index.html +++ b/1992/buzzard.1/index.html @@ -88,6 +88,7 @@ @@ -141,14 +142,14 @@ Location: ZZ - Unknown location

        To build:

        -
            make all
        +
            make all

        To use:

        -
            ./buzzard.1 num num
        +
            ./buzzard.1 num num

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Judges’ remarks:

        To see good C Preprocessor buzzard.1, try:

        -
            make babble.cppcb
        +
            make babble.cppcb
             cat babble.cppcb

        Notice how many statements it takes to do anything useful?

        Author’s remarks:

        @@ -162,11 +163,11 @@ short strings.

        What it does

        buzzard.1 is a simple mathematical program. It expects two numeric arguments.

        -
            ./buzzard.1 0 <num>
        +
            ./buzzard.1 0 <num>

        will print out the factorial of <num>.

        -
            ./buzzard.1 <num1> <num2>
        +
            ./buzzard.1 <num1> <num2>

        will print out the largest common factor of num1 and num2.

        -
            ./buzzard.1 1 <num2>
        +
            ./buzzard.1 1 <num2>

        will print out a factor of num2 if it’s composite, or else it will print a string informing you that num2 is prime.

        If the first argument is less than 0, it prints out an @@ -244,13 +245,13 @@ BCD, so it can be output by the hexadecimal output statement.

        programs is the conditional (given that we have loops). Since all you can do in the given operation output set is assignment, we implement “conditional assignment”:

        -
            if (x) y = z;
        +
            if (x) y = z;

        To implement this, we constrain x to be either 0 or 1, and simply compute:

        -
            y = (z * x) + (y * (1-x));
        +
            y = (z * x) + (y * (1-x));

        This is more obscured by factoring out common terms and restricting ourselves to two operand operations:

        -
            temp = z;                       (temp == z)
        +
            temp = z;                       (temp == z)
             temp -= y;                      (temp == z-y)
             temp *= x;                      (temp == (z-y)*x)
             y += temp;                      (y    == (z-y)*x + y)
        @@ -260,7 +261,7 @@ ourselves to two operand operations:

        “I’m supposed to execute statement pc next”, says our emulator. But suppose we’re not currently coming up on statement pc. To handle this, we simply make every operation conditional on the pc having the correct value:

        -
            if (pc == some_constant) y = z;
        +
            if (pc == some_constant) y = z;

        To combine this with other operations, we simply multiply by our (pc == some_constant) flag right after the above temp *= x.

        To evaluate pc == some_constant requires one more trick. We assume that @@ -310,10 +311,10 @@ dedicated to the memory of Charles Barrett.

      • Makefile - entry Makefile
      • buzzard.1.orig.c - original source
      • try.sh - how to run
      • -
      • 1992_buzzard.1.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1992_buzzard.1.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1992/buzzard.2/.entry.json b/1992/buzzard.2/.entry.json index ed4752261..4df4c9d10 100644 --- a/1992/buzzard.2/.entry.json +++ b/1992/buzzard.2/.entry.json @@ -147,7 +147,7 @@ }, { "file_path" : "1992_buzzard.2.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1992/buzzard.2/buzzard.2.README.html b/1992/buzzard.2/buzzard.2.README.html index a111cba74..cfc3bc529 100644 --- a/1992/buzzard.2/buzzard.2.README.html +++ b/1992/buzzard.2/buzzard.2.README.html @@ -83,6 +83,7 @@ diff --git a/1992/buzzard.2/buzzard.2.design.html b/1992/buzzard.2/buzzard.2.design.html index 72f3195ce..529485078 100644 --- a/1992/buzzard.2/buzzard.2.design.html +++ b/1992/buzzard.2/buzzard.2.design.html @@ -83,6 +83,7 @@ diff --git a/1992/buzzard.2/index.html b/1992/buzzard.2/index.html index 913b715e6..7f4c61ab9 100644 --- a/1992/buzzard.2/index.html +++ b/1992/buzzard.2/index.html @@ -88,6 +88,7 @@ @@ -141,37 +142,37 @@ Location: ZZ - Unknown location

        To build:

        -
            make all
        +
            make all

        There is an alternate version of this program. See Alternate code below for details.

        To use:

        First, you must make sure that first is made first (even though make all should make first first :-) ):

        -
            make first
        +
            make first

        Second:

        -
            # get help:
        +
            # get help:
             echo help | cat third help.th - | ./first
         
             # try out a demo:
             cat third demo5.th | ./first

        Third:

        -
            cat third help.th - | ./first
        +
            cat third help.th - | ./first

        NOTE: Wait until ‘Ok’ is printed and the type:

            2 3 + . cr

        Yes you should really type the 2 letters: cr.

        Fourth:

            Sorry, this is third!

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Alternate code:

        This alternate version, buzzard.2.alt.c, does not contain a fix that the author notes in their remarks.

        Alternate build:

        -
            make alt
        +
            make alt

        Alternate use:

        Use buzzard.2.alt as you would buzzard.2 above.

        Alternate try:

        -
            ./try.alt.sh
        +
            ./try.alt.sh

        Judges’ remarks:

        Have fun!

        Author’s remarks:

        @@ -204,7 +205,7 @@ included, but it only works on ASCII systems.

        Do not expect to be able to do anything interesting with first.

        To do something interesting, you need to feed first the file third first. In unix, you can do

        -
            cat third help.th - | ./first
        +
            cat third help.th - | ./first

        to do this. Hopefully most operating systems will provide a way to do this. It may take some time for this to complete (I seem to remember it taking several minutes on an 8086 PC); THIRD will prompt you when it is finished. The file @@ -283,7 +284,7 @@ take a significant amount of time in THIRD.

        FORTH code (first has no way of knowing if keyboard input is waiting, so it can’t actually prompt you in a normal way. It only prints 'Ok.' after you define a word).

        -
            2 3 + . cr
        +
            2 3 + . cr

        (which adds 2 and 3, and print the result and a newline.)

        THIRD responds:

            5
        @@ -349,10 +350,10 @@ and thus indirectly inspiring me to write this program.

      • demo6.th - FORTH source
      • help.th - FORTH source
      • third - the third source
      • -
      • 1992_buzzard.2.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1992_buzzard.2.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • buzzard.2.README.md - markdown source for buzzard.2.README.html
      • diff --git a/1992/gson/.entry.json b/1992/gson/.entry.json index 099a82431..490ff7d41 100644 --- a/1992/gson/.entry.json +++ b/1992/gson/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "1992_gson.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1992/gson/index.html b/1992/gson/index.html index 5371f6ecb..27a07afea 100644 --- a/1992/gson/index.html +++ b/1992/gson/index.html @@ -88,6 +88,7 @@ @@ -141,7 +142,7 @@ Location: FI - Republic of Finland

        To build:

        -
            make all
        +
            make all

        NOTE: we DISABLE the optimiser because having it enabled causes some invocations to crash in some systems.

        Bugs and (Mis)features:

        @@ -149,9 +150,9 @@ to crash in some systems.

            STATUS: uses gets() - change to fgets() if possible

        For more detailed information see 1992 gson bugs.

        To use:

        -
            ./ag word word2 word3 < /path/to/dictionary
        +
            ./ag word word2 word3 < /path/to/dictionary

        Try:

        -
            ./try.sh
        +
            ./try.sh

        This script will determine (or try and determine) where your system dictionary is located and assuming that it can find one it’ll use that. It checks the following locations though the last one is more ironic:

        @@ -160,7 +161,7 @@ following locations though the last one is more ironic:

        /usr/ucblib/dict/words /dev/null # <-- for machines with nothing to say

        Then using the proper dictionary file it does:

        -
            ./ag free software foundation       < /usr/share/dict/words
        +
            ./ag free software foundation       < /usr/share/dict/words
             ./ag obfuscated c contest   < /usr/share/dict/words
             ./ag unix international             < /usr/share/dict/words
             ./ag george bush            < /usr/share/dict/words
        @@ -179,7 +180,7 @@ names listed above. Run this program to find the anagrams they
         weren’t allowed to print!

        The author provided an obfuscated script that can be used to construct dictionaries which has been put in as mkdict.sh. To use try:

        -
            cat README.md | ./mkdict.sh > words
        +
            cat README.md | ./mkdict.sh > words

        Then try using the program as shown above with the file words.

        Author’s remarks:

        The name of the game:

        @@ -195,7 +196,7 @@ natural language of your choice, one word on each line. If your machine doesn’ have one already, you can make your own dictionary by concatenating a few hundred of your favourite Usenet articles and piping them through the following obfuscated shell script:

        -
            #!/bin/sh
        +
            #!/bin/sh
             z=a-z];tr [A-Z\] \[$z|sed s/[\^$z[\^$z*/_/g|tr _ \\012|grep ..|sort -u

        Using articles from alt.folklore.computers is likely to make a more professional-looking dictionary than rec.arts.erotica.

        @@ -323,7 +324,7 @@ the carries generated in incrementing i propagate straight across those bits that should remain zero. For example, the following program prints all those 16-bit integers that contain zeroes in all even bit positions:

        -
            main(){int i=0,s=0xAAAA;do{printf("%04x\t",i);}while(i=((i|~s)+1)&s);}
        +
            main(){int i=0,s=0xAAAA;do{printf("%04x\t",i);}while(i=((i|~s)+1)&s);}

        AG uses a similar method but works in the opposite direction, finding the next lower value with zeroes in given bit positions by propagating borrows across those bits. Some additional adjustments are made @@ -362,10 +363,10 @@ the word directly from standard input to standard output.

      • gson.orig.c - original source
      • try.sh - how to run
      • mkdict.sh - tool to make the dictionary
      • -
      • 1992_gson.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1992_gson.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1992/imc/.entry.json b/1992/imc/.entry.json index ba8dfd642..5b90744af 100644 --- a/1992/imc/.entry.json +++ b/1992/imc/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1992_imc.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1992/imc/index.html b/1992/imc/index.html index 715552a5c..05fa9ee86 100644 --- a/1992/imc/index.html +++ b/1992/imc/index.html @@ -88,6 +88,7 @@ @@ -141,15 +142,15 @@ Location: GB - United Kingdom of Great

        To build:

        -
            make all
        +
            make all

        To use:

        -
            # text mode
        +
            # text mode
             ./imc -text
         
             ./imc

        Try:

        To see a number of options and configurations:

        -
            ./try.sh
        +
            ./try.sh

        Judges’ remarks:

        The program is more interesting to run on workstations that can make use of a Sun raster file. Others can make use of the -text flag for character oriented @@ -263,7 +264,7 @@ bits (e.g. 8).

        standard error to indicate its progress (one dot per pixel line).

        Example pictures to try

        Here are a couple of good pictures to draw:

        -
            ./imc -s 512,512 -f 600000 -l 512 -m 16 -c.00805,.74274 > screen1.ras
        +
            ./imc -s 512,512 -f 600000 -l 512 -m 16 -c.00805,.74274 > screen1.ras
             ./imc -s512,512 -j-.523,-.535 > screen2.ras

        To build:

        -
            make all
        +
            make all

        Bugs and (Mis)features:

        The current status of this entry is:

            STATUS: doesn't work with some compilers - please provide alternative code or fix for more compilers

        For more detailed information see 1992 lush bugs.

        To use:

        -
            ./lush.sh
        +
            ./lush.sh

        Judges’ remarks:

        The program uses error messages issued by the C Preprocessor to generate its message to the world. One program’s error is another @@ -183,10 +184,10 @@ generates when compiling the source.

      • Makefile - entry Makefile
      • lush.orig.c - original source
      • lush.sh - how to run
      • -
      • 1992_lush.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1992_lush.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1992/marangon/.entry.json b/1992/marangon/.entry.json index 96ec5f20f..703f53c4e 100644 --- a/1992/marangon/.entry.json +++ b/1992/marangon/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "1992_marangon.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1992/marangon/index.html b/1992/marangon/index.html index f62c42455..d3eab5fc4 100644 --- a/1992/marangon/index.html +++ b/1992/marangon/index.html @@ -88,6 +88,7 @@ @@ -141,9 +142,9 @@ Location: IT - Italian Republic (<

        To build:

        -
            make all
        +
            make all

        To use:

        -
            ./marangon
        +
            ./marangon

        Judges’ remarks:

        The object is to refill the table with 5’s, by incrementing or decrementing numbers as needed. It is the side effects that get you into trouble. If you @@ -184,10 +185,10 @@ number, all the other eight numbers next to it decrease and vice-versa.

      • marangon.c - entry source
      • Makefile - entry Makefile
      • marangon.orig.c - original source
      • -
      • 1992_marangon.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1992_marangon.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1992/nathan/.entry.json b/1992/nathan/.entry.json index 11569d2bd..1b7e9c2a8 100644 --- a/1992/nathan/.entry.json +++ b/1992/nathan/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1992_nathan.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1992/nathan/index.html b/1992/nathan/index.html index c16ecb9d1..7c1652bbc 100644 --- a/1992/nathan/index.html +++ b/1992/nathan/index.html @@ -88,6 +88,7 @@ @@ -141,13 +142,13 @@ Location: GB - United Kingdom of Great

        To build:

        -
            make all
        +
            make all

        To use:

        -
            ./nathan
        +
            ./nathan
             # enter some text

        Try:

        To see some other fun uses:

        -
            ./try.sh
        +
            ./try.sh

        Judges’ remarks:

        WARNING:

        The judges make no claim as to the strength or security @@ -173,7 +174,7 @@ fall under this restricted category, the judges originally were not able to distribute some winning entries outside of the US.

        Nathan Sidwell stated that he was willing to distribute the winning source. To read HIS instructions of how to obtain his winning program one was able to run:

        -
            make nathan
        +
            make nathan
             ./nathan

        to learn how to get a copy of the code.

        See the 1992/nathan.c file in the @@ -247,10 +248,10 @@ operator, or argument separator?).

      • Makefile - entry Makefile
      • nathan.orig.c - original source
      • try.sh - how to run
      • -
      • 1992_nathan.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1992_nathan.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1992/vern/.entry.json b/1992/vern/.entry.json index 149a58ac8..bee0be59d 100644 --- a/1992/vern/.entry.json +++ b/1992/vern/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "1992_vern.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1992/vern/index.html b/1992/vern/index.html index b50c01377..19e885ac7 100644 --- a/1992/vern/index.html +++ b/1992/vern/index.html @@ -88,6 +88,7 @@ @@ -141,13 +142,13 @@ Location: US - United States of America

        To build:

        -
            make all
        +
            make all

        Bugs and (Mis)features:

        The current status of this entry is:

            STATUS: INABIAF - please **DO NOT** fix

        For more detailed information see 1992 vern bugs.

        To use:

        -
            ./vern 3    # <-- default is 2
        +
            ./vern 3    # <-- default is 2

        Try:

        You might start off by giving the following input:

            63 43
        @@ -158,7 +159,7 @@ Location: US - United States of America
         

        The judges assume no responsibility for the obfuscated opening suggested above. :-)

        For a real quick game try:

        -
            ./vern
        +
            ./vern
         
             65 55
             66 46
        @@ -225,7 +226,7 @@ at build time into much-needed text. Without this hack the program wouldn’t pass the character limit. A nice side effect is that the initial source is gloriously difficult to peruse. In particular, the Makefile does:

        -
            sed <vern.c 's/{ /(/g;s/} /)/g;s/;       /#define /' | \
        +
            sed <vern.c 's/{ /(/g;s/} /)/g;s/;       /#define /' | \
                 sed 's/}      /=/g;s/{        /i/g' >vern.tmp.c

        and compiles vern.tmp.c.

        Second, the rather ho-hum step has been taking of naming each variable @@ -281,10 +282,10 @@ nearest multiple of 4, and then the other constants are derived fro

      • vern.c - entry source
      • Makefile - entry Makefile
      • vern.orig.c - original source
      • -
      • 1992_vern.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1992_vern.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1992/westley/.entry.json b/1992/westley/.entry.json index e882b0dc0..e50ea942a 100644 --- a/1992/westley/.entry.json +++ b/1992/westley/.entry.json @@ -83,7 +83,7 @@ }, { "file_path" : "1992_westley.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1992/westley/index.html b/1992/westley/index.html index 32582a4a5..ab17a6414 100644 --- a/1992/westley/index.html +++ b/1992/westley/index.html @@ -88,6 +88,7 @@ @@ -141,7 +142,7 @@ Location: US - United States of America

        To build:

        -
            make all
        +
            make all

        Bugs and (Mis)features:

        The current status of this entry is:

            STATUS: INABIAF - please **DO NOT** fix
        @@ -149,28 +150,28 @@ Location: US - United States of America
         

        For more detailed information see 1992 westley bugs.

        To use:

        If lost:

        -
            ./whereami.sh lat long
        +
            ./whereami.sh lat long

        Where lat and long correspond to your latitude and longitude.

        NOTE: you MUST have a terminal that is at least 80 columns for this to show properly. The whereami and whereami.alt code checks this but it is not prohibitive if it cannot be compiled and linked (it uses curses); instead one should just use the westley and westley.alt programs directly.

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Alternate code:

        The author provided a version for the US which we added. To build:

        Alternate build:

        -
            make alt
        +
            make alt

        Alternate use:

        -
            ./whereami.alt.sh lat long
        +
            ./whereami.alt.sh lat long

        NOTE: this alternative version also needs a terminal with at least 80 columns.

        Alternate try:

        The try.sh script uses both the original entry and the alternate code so one can try the same script for both:

        -
            ./try.sh
        +
            ./try.sh

        Judges’ remarks:

        To find the approximate place where this entry was judged, type:

        -
            ./whereami 37 -122  # NOTE: - means west of meridian
        +
            ./whereami 37 -122  # NOTE: - means west of meridian
         
             # or if you don't have curses installed:
             ./westley 37 -122   # NOTE: - means west of meridian
        @@ -243,12 +244,12 @@ is reasonably accurate.

      • Tokyo 36 140

      For a domestic (US) version with higher resolution, try:

      -
          main(l,a,n,d)char**a;{for(d=atoi(a[1])/2*80-atoi(a[2])-2043;
      +
          main(l,a,n,d)char**a;{for(d=atoi(a[1])/2*80-atoi(a[2])-2043;
           n="bnaBCOCXdBBHGYdAP[A M E R I C A].AqandkmavX|ELC}BOCd"
           [l++-3];)for(;n-->64;)putchar(!d+++33^l&1);}

      The code will test the 80-column wrap and document itself if it is joined together as one 160-character line and listed. You should see:

      -
          main(l,a,n,d)...
      +
          main(l,a,n,d)...
           [A M E R I C A]...

      …going down the left edge if your terminal auto-wraps at 80 characters.

      To build:

      -
          make all
      +
          make all

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: missing file - please provide it

      For more detailed information see 1993 ant bugs.

      To use:

      -
          ./ant 'ERE' [file ...]
      +
          ./ant 'ERE' [file ...]

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      See the author’s POSIX P1003.2-like documentation file ant.txt for more information.

      @@ -197,10 +198,10 @@ more information.

    • try.sh - how to run
    • ants.txt - lots of ASCII ants
    • ant.test.mk - test suite
    • -
    • 1993_ant.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1993_ant.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1993/cmills/.entry.json b/1993/cmills/.entry.json index fbb84eed1..7c839c8ed 100644 --- a/1993/cmills/.entry.json +++ b/1993/cmills/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1993_cmills.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1993/cmills/index.html b/1993/cmills/index.html index e0cf5d4de..01ecd5768 100644 --- a/1993/cmills/index.html +++ b/1993/cmills/index.html @@ -88,6 +88,7 @@ @@ -144,19 +145,19 @@ Location: US - United States of America

      We recommend you try the alt version first so you can get a better idea of what this entry was like back in 1993. See the original code section below to run the original.

      -
          make alt
      +
          make alt

      NOTE: this entry requires the X11/Xlib.h header file and the X11 library to compile. If you’re under macOS and do not know how to install and use X11 programs see FAQ 3.7 - How do I compile and use on macOS, an IOCCC entry that requires X11?.

      To configure how many microseconds to sleep before updates try:

      -
          make clobber SLEEP=200 alt
      +
          make clobber SLEEP=200 alt

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: known bug - please help us fix

      For more detailed information see 1993 cmills bugs.

      To use:

      -
          DISPLAY="your_X_server_display"
      +
          DISPLAY="your_X_server_display"
           export DISPLAY
           ./cmills.alt [speed]        # must be run on an X11 server

      where:

      @@ -166,7 +167,7 @@ requires X11?.

      We recommend the version that uses usleep(3) to more easily see what is going on but you can use the original without any delays if you wish.

      Original build:

      -
          make all
      +
          make all

      Original use:

      Use cmills as you would cmills.alt above.

      Judges’ remarks:

      @@ -227,10 +228,10 @@ which in turn is based on it’s area and speed. How silly!

    • Makefile - entry Makefile
    • cmills.alt.c - alternative source
    • cmills.orig.c - original source
    • -
    • 1993_cmills.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1993_cmills.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1993/dgibson/.entry.json b/1993/dgibson/.entry.json index 4d8f460b4..af20a0cd1 100644 --- a/1993/dgibson/.entry.json +++ b/1993/dgibson/.entry.json @@ -91,7 +91,7 @@ }, { "file_path" : "1993_dgibson.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1993/dgibson/index.html b/1993/dgibson/index.html index cc632100f..22bd0c431 100644 --- a/1993/dgibson/index.html +++ b/1993/dgibson/index.html @@ -88,6 +88,7 @@ @@ -141,13 +142,13 @@ Location: ZZ - Unknown location

      To build:

      -
          make all
      +
          make all

      To use:

      -
          ./dgibson.sh [datafile]
      +
          ./dgibson.sh [datafile]

      where:

      datafile is the initial pattern (default: dgibson.data1)

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      We have provided the shell script dgibson.sh to make it easier to run this entry. Run this shell script several times to @@ -219,10 +220,10 @@ necessary to recurse main() in two “directions” simultaneously.

    • dgibson.data3 - life cell layout
    • dgibson.data4 - life cell layout
    • dgibson.data5 - life cell layout
    • -
    • 1993_dgibson.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1993_dgibson.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1993/ejb/.entry.json b/1993/ejb/.entry.json index 91935f850..d384cae18 100644 --- a/1993/ejb/.entry.json +++ b/1993/ejb/.entry.json @@ -59,7 +59,7 @@ }, { "file_path" : "1993_ejb.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1993/ejb/hanoi.html b/1993/ejb/hanoi.html index 213319151..1730dedfe 100644 --- a/1993/ejb/hanoi.html +++ b/1993/ejb/hanoi.html @@ -83,6 +83,7 @@ diff --git a/1993/ejb/index.html b/1993/ejb/index.html index c823a5468..4f7c4a2e8 100644 --- a/1993/ejb/index.html +++ b/1993/ejb/index.html @@ -88,6 +88,7 @@ @@ -141,13 +142,13 @@ Location: ZZ - Unknown location

      To build:

      -
          make all
      +
          make all

      To use:

      -
          ./ejb level
      +
          ./ejb level

      where:

      -
          level   a value from -128 to 127
      +
          level   a value from -128 to 127

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      A negative argument plays the patience puzzle. An argument greater than 0 plays the Tower of Hanoi puzzle. In either case @@ -160,11 +161,11 @@ the argument 127 to this program and want to see it finish!

      Author’s remarks:

      What this program does

      Output solution to Towers of Hanoi for five rings:

      -
          ./ejb 5
      +
          ./ejb 5

      The format of the output for the Towers of Hanoi case is simply a text description of how to solve the puzzle.

      Output solution to the Patience puzzle for six rings:

      -
          ./ejb -6
      +
          ./ejb -6

      For the patience puzzle, the output is a sequence binary codes representing successive states of the puzzle. The rightmost digit represents the first ring. A 1 means the ring is on the U; a 0 means it is off the U. The program @@ -224,10 +225,10 @@ compiler since it uses signed char and ANSI-style function declarat

    • hanoi.html - about the Towers of Hanoi puzzle
    • patience.html - about the Patience puzzle
    • try.sh - how to run
    • -
    • 1993_ejb.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1993_ejb.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1993/ejb/patience.html b/1993/ejb/patience.html index 4000f0b87..ed916123d 100644 --- a/1993/ejb/patience.html +++ b/1993/ejb/patience.html @@ -83,6 +83,7 @@ diff --git a/1993/index.html b/1993/index.html index 8e6b88fd5..eac116cf5 100644 --- a/1993/index.html +++ b/1993/index.html @@ -86,6 +86,7 @@ diff --git a/1993/jonth/.entry.json b/1993/jonth/.entry.json index cb1c06bec..f57fea92c 100644 --- a/1993/jonth/.entry.json +++ b/1993/jonth/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "1993_jonth.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1993/jonth/index.html b/1993/jonth/index.html index fe2679e39..04443687f 100644 --- a/1993/jonth/index.html +++ b/1993/jonth/index.html @@ -88,6 +88,7 @@ @@ -145,9 +146,9 @@ Location: NO - Kingdom of Norway ( compile. macOS users running Mountain Lion and later will need to download and install XQuartz in order to compile and run this entry.

      -
          make all
      +
          make all

      To use:

      -
          ./jonth     # must be run on an X11 server
      +
          ./jonth     # must be run on an X11 server

      Judges’ remarks:

      Use h and l to shift objects left or right. Use k to rotate and press SPACE to drop.

      @@ -185,10 +186,10 @@ This program will not work on machines where sizeof(int)!=sizeof(void *)jonth.c - entry source
    • Makefile - entry Makefile
    • jonth.orig.c - original source
    • -
    • 1993_jonth.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1993_jonth.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1993/leo/.entry.json b/1993/leo/.entry.json index b0b9be697..5a31b4974 100644 --- a/1993/leo/.entry.json +++ b/1993/leo/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "1993_leo.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1993/leo/index.html b/1993/leo/index.html index b151e0bf0..2d0414cbc 100644 --- a/1993/leo/index.html +++ b/1993/leo/index.html @@ -88,6 +88,7 @@ @@ -141,12 +142,12 @@ Location: US - United States of America

      To build:

      -
          make all
      +
          make all

      To use:

      To have the computer guess:

      -
          ./leo [colors]
      +
          ./leo [colors]

      To guess the computer’s number:

      -
          ./mind [colors]
      +
          ./mind [colors]

      where:

      [colors] is the number of possible colors (1 to 15) (default: 6)

      Judges’ remarks:

      @@ -231,10 +232,10 @@ backspaces. Do “disable scrolling” on cmdtool or similar emulators.

    • leo.c - entry source
    • Makefile - entry Makefile
    • leo.orig.c - original source
    • -
    • 1993_leo.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1993_leo.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1993/lmfjyh/.entry.json b/1993/lmfjyh/.entry.json index fca1bbf63..c14d9b6a3 100644 --- a/1993/lmfjyh/.entry.json +++ b/1993/lmfjyh/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1993_lmfjyh.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1993/lmfjyh/index.html b/1993/lmfjyh/index.html index 7a312eefa..d1f6f50ce 100644 --- a/1993/lmfjyh/index.html +++ b/1993/lmfjyh/index.html @@ -88,6 +88,7 @@ @@ -142,7 +143,7 @@ Location: FI - Republic of Finland To build:

      If you have gcc < 2.3.3 you can build this entry like:

      -
          make all
      +
          make all

      This will try to create a file whose actual filename is literally:

          ";main(){puts("Hello World!");}char*C=".c

      When that file is compiled, it will greet the world in the @@ -166,14 +167,14 @@ section below for more details.

      For more detailed information see 1993 lmfjyh bugs.

      To use:

      If you have gcc < 2.3.3 (i.e. the entry can compile):

      -
          ./lmfjyh
      +
          ./lmfjyh

      Alternate code:

      This version does what the code did but in a way that will work with modern compilers. We’d like to say there’s something special about it but there isn’t. Nonetheless it will be compiled in case the original entry fails to compile.

      Alternate build:

      Should you wish to build this version manually:

      -
          make alt
      +
          make alt

      Alternate use:

      Use lmfjyh.alt as you would lmfjyh above. Note that other code could also be done with the bug that the entry abuses but that would have to be manually @@ -189,7 +190,7 @@ best with C-source code.

      As an example, I have taken a simple “Hello world!” program that should be familiar to all C-programmers.

      Listing 1: A simple “Hello World” program

      -
          main()
      +
          main()
           {
             puts("Hello World!");
           }
      @@ -200,9 +201,9 @@ PROGRAM. There is no need to waste valuable disk space to store source The program is embedded in the file name, only a minor portion of it is inside the file.

      Listing 2: Compressed “Hello world”

      -
          char*_=__FILE__;
      +
          char*_=__FILE__;

      Listing 3: Code embedded in the file name

      -
          ";main(){puts("Hello World!");}char*C=".c
      +
          ";main(){puts("Hello World!");}char*C=".c

      The sample program in listing 1 is 36 bytes long. By using the new compression method, the example program may be squeezed to sixteen bytes. In the example the compression ratio is 2:1. It is evident @@ -303,10 +304,10 @@ be new standard.

    • Makefile - entry Makefile
    • lmfjyh.alt.c - alternative source
    • lmfjyh.orig.c - original source
    • -
    • 1993_lmfjyh.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1993_lmfjyh.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1993/plummer/.entry.json b/1993/plummer/.entry.json index 43b6d795c..ae2567642 100644 --- a/1993/plummer/.entry.json +++ b/1993/plummer/.entry.json @@ -59,7 +59,7 @@ }, { "file_path" : "1993_plummer.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1993/plummer/index.html b/1993/plummer/index.html index 6d4461654..8baa289a2 100644 --- a/1993/plummer/index.html +++ b/1993/plummer/index.html @@ -88,6 +88,7 @@ @@ -141,19 +142,19 @@ Location: ZZ - Unknown location

      To build:

      -
          make alt
      +
          make alt

      We recommend that you try the alternate version first to get a better idea of what this entry looked like back in 1993. The alternate version sleeps (via usleep(3)) in between writes, defaulting at 1000 microseconds (but reconfigurable). If you wish to see the original entry then see original code below.

      If you wish to speed the entry up, say to 500 microseconds between writes, try:

      -
          make clobber SLEEP=500 alt
      +
          make clobber SLEEP=500 alt

      Alternatively if you wish to slow it down, say to 1500 microseconds between writes, try:

      -
          make clobber SLEEP=1500 alt
      +
          make clobber SLEEP=1500 alt

      To use:

      -
          ./plummer.alt number arg
      +
          ./plummer.alt number arg

      where:

      • number is a number (try 21701)
      • @@ -163,7 +164,7 @@ writes, try:

        Vogons build that hyperspace bypass.

        Try:

        -
            ./try.alt.sh
        +
            ./try.alt.sh
         
             ./try.alt.sh 21701
         
        @@ -183,11 +184,11 @@ bypass.

        faster (depending on the SLEEP parameter specified in the build of alt, of course).

        Original build:

        -
            make all
        +
            make all

        Original use:

        Use plummer as you would plummer.alt above.

        Original try:

        -
            ./try.sh
        +
            ./try.sh
         
             ./try.sh 21701
         
        @@ -281,10 +282,10 @@ successively larger number to the end of a string.

      • plummer.orig.c - original source
      • try.alt.sh - how to run alternative code
      • try.sh - how to run
      • -
      • 1993_plummer.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1993_plummer.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1993/rince/.entry.json b/1993/rince/.entry.json index ce706161b..da73f1e20 100644 --- a/1993/rince/.entry.json +++ b/1993/rince/.entry.json @@ -91,7 +91,7 @@ }, { "file_path" : "1993_rince.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1993/rince/design.html b/1993/rince/design.html index b285a2143..88515e0a4 100644 --- a/1993/rince/design.html +++ b/1993/rince/design.html @@ -83,6 +83,7 @@ diff --git a/1993/rince/index.html b/1993/rince/index.html index 682beed5c..1fdb20e27 100644 --- a/1993/rince/index.html +++ b/1993/rince/index.html @@ -88,6 +88,7 @@ @@ -141,7 +142,7 @@ Location: GB - United Kingdom of Great

        To build:

        -
            make all
        +
            make all

        NOTE: there are two alternate versions of this program, both allowing one to slow down the game and the second one with movements more familiar to vi users. See the Alternate code section below.

        @@ -150,22 +151,22 @@ See the Alternate code section below.

            STATUS: INABIAF - please **DO NOT** fix

        For more detailed information see bugs report with 1993/rince.

        To use:

        -
            ./rince [cabbage]
        +
            ./rince [cabbage]

        where:

        [cabbage] is a CABBAGE description file (default: rince.c)

        Alternate code:

        Some people may want to slow down the game by increasing the value 17 in the lines:

        -
            struct timeval v= {0,1<<17} ;
        +
            struct timeval v= {0,1<<17} ;

        and

        -
            refresh(),c=select(k,&y,0,0,(v.tv_usec=1<<17,&v))?getch():0;
        +
            refresh(),c=select(k,&y,0,0,(v.tv_usec=1<<17,&v))?getch():0;

        to another value like 18 or 19 which you can do with the alternate code.

        In the case of rince.alt2.c the movement keys for the default game are slightly different and will feel more familiar to vi users: h for left, l for right (that was not changed) and k for fire (that was also not changed).

        Alternate build:

        -
            make SLEEP=18 clobber alt
        +
            make SLEEP=18 clobber alt

        Replace 18 with whatever number you wish.

        Alternate use:

        Use rince.alt or rince.alt2 as you would rince above.

        @@ -194,7 +195,7 @@ with it.

        /usr/local/include/curses.h if not /usr/include/curses.h) is not compatible with the curses library (typically /lib/libcurses.a for static libraries) used. It has been suggested that the following gcc command may help:

        -
            gcc -fno-builtin -I/usr/include -o rince rince.c -lcurses -ltermcap
        +
            gcc -fno-builtin -I/usr/include -o rince rince.c -lcurses -ltermcap

        Author’s remarks:

        This is a Cellular Automata Based, Beautifully Abysmal Game Environment (or CABBAGE for short). To execute the program simply type ./rince gamefile, @@ -301,10 +302,10 @@ mechanism other than control-c.

      • rince.data2 - CABBAGE data file
      • rince.data3 - CABBAGE data file
      • rince.data4 - CABBAGE data file
      • -
      • 1993_rince.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1993_rince.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • design.md - markdown source for design.html
      • diff --git a/1993/schnitzi/.entry.json b/1993/schnitzi/.entry.json index 23620d0a8..8e6f7c070 100644 --- a/1993/schnitzi/.entry.json +++ b/1993/schnitzi/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1993_schnitzi.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1993/schnitzi/index.html b/1993/schnitzi/index.html index b36a01b86..551a0f371 100644 --- a/1993/schnitzi/index.html +++ b/1993/schnitzi/index.html @@ -88,6 +88,7 @@ @@ -141,28 +142,28 @@ Location: ZZ - Unknown location

        To build:

        -
            make all
        +
            make all

        Bugs and (Mis)features:

        The current status of this entry is:

            STATUS: INABIAF - please **DO NOT** fix

        For more detailed information see 1993 schnitzi bugs.

        To use:

        -
            ./schnitzi file
        +
            ./schnitzi file

        where

        file is a file containing some text.

        Certain input will cause the program to fail as described in 1993 schnitzi bugs.

        Try:

        -
            ./schnitzi schnitzi.info
        +
            ./schnitzi schnitzi.info
             # ask some questions suggested by the author, noted below

        We also suggest you ask the program the following questions:

        -
            Who is Mark Schnitzus?
        +
            Who is Mark Schnitzus?
         
             Who was Jack the Ripper ?

        Notice how it still manages to answer the first question despite there being an intentional spelling error there.

        Try feeding the program source to the program and ask both:

        -
            What is cat ?
        +
            What is cat ?
             What is cat?

        What happens if you ask it other questions with and without a space before the ??

        @@ -246,10 +247,10 @@ from the Weekly World News.

      • Makefile - entry Makefile
      • schnitzi.orig.c - original source
      • schnitzi.info - some interesting statements
      • -
      • 1993_schnitzi.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1993_schnitzi.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1993/vanb/.entry.json b/1993/vanb/.entry.json index 0bc075bd5..2a169dced 100644 --- a/1993/vanb/.entry.json +++ b/1993/vanb/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "1993_vanb.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1993/vanb/index.html b/1993/vanb/index.html index 1e4edfb5c..3fa22c91d 100644 --- a/1993/vanb/index.html +++ b/1993/vanb/index.html @@ -88,6 +88,7 @@ @@ -141,17 +142,17 @@ Location: ZZ - Unknown location

        To build:

        -
            make all
        +
            make all

        Bugs and (Mis)features:

        The current status of this entry is:

            STATUS: INABIAF - please **DO NOT** fix

        For more detailed information see 1993 vanb bugs.

        To use:

        -
            ./vanb 'exp'
        +
            ./vanb 'exp'

        where exp is an octal expression. See below for how it can also have hexadecimal and decimal numbers.

        Try:

        -
            ./try.sh
        +
            ./try.sh

        What happens if you use something other than valid digits?

        Judges’ remarks:

        The octal expression may contain:

        @@ -217,7 +218,7 @@ involving **O7 and octal constants are looking for certain characte

        Here’s a version of the program before it got formatted into the VIII, augmented with comments showing where each state begins. N1 and N2 are notes:

        -
            #define O5 main
        +
            #define O5 main
             O5(O2,O7,O3)char**O7;
             {
                      return
        @@ -258,9 +259,9 @@ program with no parameters, in which case it just returns 0.

        the first state it will go into. This state just invokes printf, and sends the parser to state 012 (which is <E>).

        The E and T states work like this:

        -
            int e(){ return eprime( t() ); }
        +
            int e(){ return eprime( t() ); }

        The E' and T' states work like this:

        -
            int eprime( int intermediate )
        +
            int eprime( int intermediate )
             {
                 if( ch == '+' )
                 {
        @@ -271,7 +272,7 @@ printf, and sends the parser to state 012 (which is <E>
             }

        The D, X and O states work like this (they assume that they’re initially called with 0):

        -
            int octal( int intermediate )
        +
            int octal( int intermediate )
             {
                 if( ch>='0' && ch<='7' )
                 {
        @@ -310,10 +311,10 @@ called with 0):

      • vanb.alt.c - alternative source
      • vanb.orig.c - original source
      • try.sh - how to run
      • -
      • 1993_vanb.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1993_vanb.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1994/dodsond1/.entry.json b/1994/dodsond1/.entry.json index ac917ce4d..810c49230 100644 --- a/1994/dodsond1/.entry.json +++ b/1994/dodsond1/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "1994_dodsond1.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1994/dodsond1/index.html b/1994/dodsond1/index.html index 965c700c7..d2083d4d3 100644 --- a/1994/dodsond1/index.html +++ b/1994/dodsond1/index.html @@ -88,6 +88,7 @@ @@ -141,9 +142,9 @@ Location: US - United States of America

        To build:

        -
            make all
        +
            make all

        To use:

        -
            ./dodsond1
        +
            ./dodsond1

        Try:

        At the prompt, try entering E3.

        Judges’ remarks:

        @@ -182,10 +183,10 @@ make a move, and to determine the value of a move.

      • dodsond1.c - entry source
      • Makefile - entry Makefile
      • dodsond1.orig.c - original source
      • -
      • 1994_dodsond1.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1994_dodsond1.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1994/dodsond2/.entry.json b/1994/dodsond2/.entry.json index d7e40af25..55d8e0b75 100644 --- a/1994/dodsond2/.entry.json +++ b/1994/dodsond2/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "1994_dodsond2.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1994/dodsond2/index.html b/1994/dodsond2/index.html index 44e589ecc..98c2d5e2e 100644 --- a/1994/dodsond2/index.html +++ b/1994/dodsond2/index.html @@ -88,6 +88,7 @@ @@ -141,7 +142,7 @@ Location: US - United States of America

        To build:

        -
            make all
        +
            make all

        There is an alternate version that allows you to cheat, giving you configurable amount of arrows at the start of the game. See the Alternate code section below.

        @@ -150,19 +151,19 @@ code section below.

            STATUS: INABIAF - please **DO NOT** fix

        For more detailed information see 1994 dodsond2 bugs.

        To use:

        -
            ./dodsond2
        +
            ./dodsond2

        Alternate code:

        This version allows you to choose how many arrows to start with, instead of the default 0. If one tries specifying a value < 0 it will set it to 0.

        Fun fact: this version helped uncover and fix a bug that prevented the entry from working in some cases.

        Alternate build:

        -
            make alt
        +
            make alt

        The default number of arrows in this version is 3 but if you want to change it, say to 5, try:

        -
            make clobber ARROWS=5 alt
        +
            make clobber ARROWS=5 alt

        Alternate use:

        -
            ./dodsond2.alt
        +
            ./dodsond2.alt

        Judges’ remarks:

        Each year people find new ways to squeeze more and more out of the contest rules. Next year, entries that use compression utilities @@ -235,10 +236,10 @@ of the current room again.

      • dodsond2.alt.c - alternative source
      • dodsond2.orig.c - original source
      • dodsond2.gz - original source in gzip form
      • -
      • 1994_dodsond2.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1994_dodsond2.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1994/horton/.entry.json b/1994/horton/.entry.json index b0493e141..64f3f1fd3 100644 --- a/1994/horton/.entry.json +++ b/1994/horton/.entry.json @@ -83,7 +83,7 @@ }, { "file_path" : "1994_horton.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1994/horton/index.html b/1994/horton/index.html index 6d0af2342..7502fdcae 100644 --- a/1994/horton/index.html +++ b/1994/horton/index.html @@ -88,6 +88,7 @@ @@ -141,22 +142,22 @@ Location: US - United States of America

        To build:

        -
            make all
        +
            make all

        To use:

        -
            ./horton A B C D
        +
            ./horton A B C D

        A, B, C and D are numeric arguments.

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Alternate code:

        This confuses cb greatly. See horton.alt.c for an unobfuscated/enhanced version.

        Alternate build:

        -
            make alt
        +
            make alt

        Alternate use:

        -
            ./horton.alt A B C D
        +
            ./horton.alt A B C D

        Where A, B, C and D are numbers like with horton.

        Alternate try:

        -
            ./try.alt.sh
        +
            ./try.alt.sh

        Judges’ remarks:

        Try to figure out how this program prints, for a given slope, the right character. And for extra credit, try to figure out which @@ -176,7 +177,7 @@ cogs in the wheels of the grand plot to overthrow the cubics!

        Oh, by the way, it uses a self-contained graphtab and frame buffer. It’s easily modified to graph any 96x160 bitmap on a dumb terminal.

        See the gtface program for another example. Try:

        -
            make gtface
        +
            make gtface
             ./gtface < gtface.data

        For more information, see my article

        Using GraphTab; USENIX ;login: Sept/Oct 1992, pages 28-31.

        @@ -236,10 +237,10 @@ It’s easily modified to graph any 96x160 bitmap on a dumb terminal.try.sh - how to run
      • login_sept92-pp28-31.pdf - login article on graphics for dumb terminals
      • gtface.data - data for gtfsace
      • -
      • 1994_horton.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1994_horton.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1994/imc/.entry.json b/1994/imc/.entry.json index f0db710f7..3070b0d92 100644 --- a/1994/imc/.entry.json +++ b/1994/imc/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1994_imc.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1994/imc/index.html b/1994/imc/index.html index 860c1430c..733f18928 100644 --- a/1994/imc/index.html +++ b/1994/imc/index.html @@ -88,6 +88,7 @@ @@ -141,12 +142,12 @@ Location: GB - United Kingdom of Great

        To build:

        -
            make all
        +
            make all

        To use:

        -
            ./imc [NUMBER]
        +
            ./imc [NUMBER]

        where [NUMBER] is an optional number. Default is 5.

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Judges’ remarks:

        This entry’s algorithm is as magic as its output!

        Author’s remarks:

        @@ -214,10 +215,10 @@ add up to n*(n*n+1)/2.

      • Makefile - entry Makefile
      • imc.orig.c - original source
      • try.sh - how to run
      • -
      • 1994_imc.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1994_imc.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1994/index.html b/1994/index.html index f38896323..708ffd880 100644 --- a/1994/index.html +++ b/1994/index.html @@ -86,6 +86,7 @@ diff --git a/1994/ldb/.entry.json b/1994/ldb/.entry.json index 586b1ac95..126d1ba08 100644 --- a/1994/ldb/.entry.json +++ b/1994/ldb/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1994_ldb.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1994/ldb/index.html b/1994/ldb/index.html index 533adb1ab..9d76852f8 100644 --- a/1994/ldb/index.html +++ b/1994/ldb/index.html @@ -88,6 +88,7 @@ @@ -141,17 +142,17 @@ Location: ZZ - Unknown location

        To build:

        -
            make all
        +
            make all

        Bugs and (Mis)features:

        The current status of this entry is:

            STATUS: INABIAF - please **DO NOT** fix

        For more detailed information see 1994 ldb bugs.

        To use:

        -
            ./ldb < file
        +
            ./ldb < file
         
             some_command | ./ldb

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Judges’ remarks:

        Trigraphs are natural obfuscators. Most C-beautifiers become C-uglifiers because they don’t handle them correctly.

        @@ -187,10 +188,10 @@ platform should be ASCII based.

      • Makefile - entry Makefile
      • ldb.orig.c - original source
      • try.sh - how to run
      • -
      • 1994_ldb.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1994_ldb.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1994/schnitzi/.entry.json b/1994/schnitzi/.entry.json index 3afaaac16..74417b596 100644 --- a/1994/schnitzi/.entry.json +++ b/1994/schnitzi/.entry.json @@ -75,7 +75,7 @@ }, { "file_path" : "1994_schnitzi.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1994/schnitzi/index.html b/1994/schnitzi/index.html index b5ec077b1..fda93b7e7 100644 --- a/1994/schnitzi/index.html +++ b/1994/schnitzi/index.html @@ -88,6 +88,7 @@ @@ -141,7 +142,7 @@ Location: ZZ - Unknown location

        To build:

        -
            make all
        +
            make all

        There are two alternate versions, one that has an increased buffer size and one that uses fgets(); neither are completely functional. See below section bugs and (mis)features for details and the alternate @@ -151,9 +152,9 @@ code section for how to use.

            STATUS: uses gets() - change to fgets() if possible

        For more detailed information see 1994 schnitzi bugs.

        To use:

        -
            ./schnitzi < textfile
        +
            ./schnitzi < textfile

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Alternate code:

        The first version, schnitzi.alt.c, uses fgets(3) but when fed its own code it will generate code that still uses gets(3). What’s more is it will not @@ -163,15 +164,15 @@ its own source code it will generate code that can compile but with the original buffer size. This is due to a comment which is explained in more detail in 1994/schnitzi bugs.

        Alternate build:

        -
            make alt
        +
            make alt

        Alternate use:

        Use schnitzi.alt and schnitzi.alt2 as you would schnitzi above except that feeding the source code to it will not work right.

        Alternate try:

        -
            ./try.alt.sh
        +
            ./try.alt.sh

        Judges’ remarks:

        Try:

        -
            ./schnitzi < schnitzi.c
        +
            ./schnitzi < schnitzi.c

        Compare the output of the program with its source. Sure the output is different, but there is more than meets the diff’s eye. Can you find out why?

        @@ -187,10 +188,10 @@ second row is written down the second column, etc. The program is run by redirecting a file into the executable on the command line; for instance, for the file ‘info’, the program would be run as follows:

        -
            ./schnitzi < info
        +
            ./schnitzi < info

        The program generates interesting results when its source file is used as input:

        -
            ./schnitzi < schnitzi.c
        +
            ./schnitzi < schnitzi.c

        The result of this command is a program which does the exact same thing – in other words, both the program and the “flipped” version of itself work identically (you’ll need to redirect the @@ -245,10 +246,10 @@ needed to pad it put it over the limit – it nearly filled a 79 by

      • try.alt.sh - how to run alternative code
      • try.sh - how to run
      • try.txt - input data for try.sh
      • -
      • 1994_schnitzi.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1994_schnitzi.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1994/shapiro/.entry.json b/1994/shapiro/.entry.json index 9b462c567..8957bb020 100644 --- a/1994/shapiro/.entry.json +++ b/1994/shapiro/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1994_shapiro.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1994/shapiro/index.html b/1994/shapiro/index.html index d170692cb..95656d3dd 100644 --- a/1994/shapiro/index.html +++ b/1994/shapiro/index.html @@ -88,6 +88,7 @@ @@ -141,17 +142,17 @@ Location: ZZ - Unknown location

        To build:

        -
            make all
        +
            make all

        Bugs and (Mis)features:

        The current status of this entry is:

            STATUS: missing file - please provide it
             STATUS: INABIAF - please **DO NOT** fix

        For more detailed information see 1994 shapiro bugs.

        To use:

        -
            ./shapiro &
        +
            ./shapiro &

        Now find the clock in the same terminal window (or console if at the console).

        Try:

        -
            ./shapiro
        +
            ./shapiro
             ^Z
             bg
             ps x
        @@ -224,10 +225,10 @@ test it on.)

      • Makefile - entry Makefile
      • shapiro.orig.c - original source
      • shapiro.html - author hints
      • -
      • 1994_shapiro.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1994_shapiro.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1994/shapiro/shapiro.html b/1994/shapiro/shapiro.html index e0bbbb696..27879e2d8 100644 --- a/1994/shapiro/shapiro.html +++ b/1994/shapiro/shapiro.html @@ -83,6 +83,7 @@ diff --git a/1994/smr/.entry.json b/1994/smr/.entry.json index a74035141..33fe93198 100644 --- a/1994/smr/.entry.json +++ b/1994/smr/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1994_smr.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1994/smr/index.html b/1994/smr/index.html index 85d26f8f0..4088e68c1 100644 --- a/1994/smr/index.html +++ b/1994/smr/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: US - United States of America

        To build:

        -
            make all
        +
            make all

        To use:

        -
            ./smr
        +
            ./smr

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Judges’ remarks:

        Nearly every year, one or more people would submit what they claimed was the world’s smallest self reproducing program. While the sizes @@ -190,10 +191,10 @@ Produces a listing of itself on stdout.

      • Makefile - entry Makefile
      • smr.orig.c - original source
      • try.sh - how to run
      • -
      • 1994_smr.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1994_smr.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1994/tvr/.entry.json b/1994/tvr/.entry.json index c1a0e62d0..7656cdfb9 100644 --- a/1994/tvr/.entry.json +++ b/1994/tvr/.entry.json @@ -91,7 +91,7 @@ }, { "file_path" : "1994_tvr.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1994/tvr/index.html b/1994/tvr/index.html index b2be5cd19..afa84521c 100644 --- a/1994/tvr/index.html +++ b/1994/tvr/index.html @@ -88,6 +88,7 @@ @@ -141,7 +142,7 @@ Location: FI - Republic of Finland

        To build:

        -
            make all
        +
            make all

        The author provided a spoiler version as alt code. See Alternate code below.

        Bugs and (Mis)features:

        @@ -149,21 +150,21 @@ code below.

            STATUS: known bug - please help us fix

        For more detailed information see 1994 tvr bugs.

        To use:

        -
            ./tvr mode screensize/2 < colormapfile
        +
            ./tvr mode screensize/2 < colormapfile

        Mode may be a value from 0 to 12.

        Try:

        -
            ./try.color.sh                      # for colour displays
        +
            ./try.color.sh                      # for colour displays
             ./try.bw.sh                 # for Black & White displays

        Alternate code:

        The author provided us a spoiler version that might be of interest to some.

        Alternate build:

        -
            make alt
        +
            make alt

        Alternate use:

        -
            ./tvr.alt altmode screensize/2 < colormapfile
        +
            ./tvr.alt altmode screensize/2 < colormapfile

        where altmode 1 - 4 correspond to mode 0 - 3 in the original entry and altmode 0 calculates Mandelbrot/Julian sets correctly.

        Alternate try:

        -
            ./try.alt.color.sh                  # for colour displays
        +
            ./try.alt.color.sh                  # for colour displays
             ./try.alt.bw.sh                     # for Black & White displays

        Judges’ remarks:

        This entry requires the use of X11. It will form two windows (hopefully your @@ -208,7 +209,7 @@ noise.

        second is a variation of that. The third makes nice 3D-look-a-like effects and the fourth is a variation of that with more nice effects.

        Usage:

        -
            ./tvr mode screensize/2 < colormapfile
        +
            ./tvr mode screensize/2 < colormapfile

        The first parameter is the operating-mode of the program. There are 4 fractal pairs and 3 display modes, making total of 12 modes. screensize is half of the actual screenlength/width. I.e. if you use 128 as a second parameter, you will @@ -326,10 +327,10 @@ mono).

      • try.color.sh - demonstrate alt code in colour mode
      • tvr.bw - black and white
      • tvr.color - RGB values
      • -
      • 1994_tvr.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1994_tvr.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1994/weisberg/.entry.json b/1994/weisberg/.entry.json index 7ed4ed1bc..f75aed44c 100644 --- a/1994/weisberg/.entry.json +++ b/1994/weisberg/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "1994_weisberg.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1994/weisberg/index.html b/1994/weisberg/index.html index a9decfa2d..eddea2232 100644 --- a/1994/weisberg/index.html +++ b/1994/weisberg/index.html @@ -88,6 +88,7 @@ @@ -141,15 +142,15 @@ Location: ZZ - Unknown location

        To build:

        -
            make all
        +
            make all

        There is an alternate version that uses more memory. See alternate code below for more details.

        To use:

        -
            ./weisberg
        +
            ./weisberg

        Try:

        -
            ./try.sh
        +
            ./try.sh

        If you have primes(1) installed you might also wish to try:

        -
            ./primes.sh number
        +
            ./primes.sh number

        where number is a positive number, defaulting to 15. The try.sh script will also do this.

        Alternate code:

        @@ -157,9 +158,9 @@ script will also do this.

        have some 512 Megabytes of virtual memory lying around with to do something with you might try this version.

        Alternate build:

        -
            make alt
        +
            make alt

        Alternate use:

        -
            ./weisberg.alt
        +
            ./weisberg.alt

        Lesser systems will find this alternative version a good way to create a core file. :-)

        Judges’ remarks:

        @@ -218,10 +219,10 @@ a bonus, the understandability of the code was reduced to zero.

      • weisberg.orig.c - original source
      • primes.sh - feed primes to the program
      • try.sh - how to run
      • -
      • 1994_weisberg.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1994_weisberg.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1994/westley/.entry.json b/1994/westley/.entry.json index 6999c7a78..b473d4243 100644 --- a/1994/westley/.entry.json +++ b/1994/westley/.entry.json @@ -59,7 +59,7 @@ }, { "file_path" : "1994_westley.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1994/westley/index.html b/1994/westley/index.html index e946b2c24..38046976b 100644 --- a/1994/westley/index.html +++ b/1994/westley/index.html @@ -88,6 +88,7 @@ @@ -141,7 +142,7 @@ Location: US - United States of America

        To build:

        -
            make alt
        +
            make alt

        We recommend that you try the alternate version first as the original entry requires (for better display) 80 columns and 8 character tabs with wraparound.

        The alt code uses the same logic as the original code except that the original @@ -149,7 +150,7 @@ code used #includes of files that do not exist to generate the mess compiler errors) whereas the alt code uses printf(3). For the original entry see Original code below.

        To use:

        -
            ./westley.alt
        +
            ./westley.alt

        The purpose of the game is to escape the dungeon. Depending on the compiler line you will get a different message when you run the program. One compiler line will make you win the game (escape the dungeon) and others will show something @@ -164,10 +165,10 @@ from start to finish.

        Try:

        For something more interesting try compiling it with different cc -D arguments and then run the program each time. For example:

        -
            cc -Describe -Door westley.alt.c -o westley.alt && ./westley.alt
        +
            cc -Describe -Door westley.alt.c -o westley.alt && ./westley.alt
             cc -Describe -Drain westley.alt.c -o westley.alt && ./westley.alt

        To see the game from start to finish, try:

        -
            ./try.alt.sh
        +
            ./try.alt.sh

        Original code:

        The purpose of the game is to escape the dungeon via the compiler line where you get messages as compiler errors. Depending on the compiler line you @@ -177,7 +178,7 @@ game!

        wraparound. The alternate code does not have this limitation and it is for this reason that we recommend you try it first.

        Original build:

        -
            make all
        +
            make all

        There are a variety of different -D flags you can give to cc that change the message you get. You might wish to look at the source code to get a better idea or see below in the Original try section for @@ -196,15 +197,15 @@ error messages; there is no running the program.

        Original try:

        For something more interesting try compiling it with different cc -D arguments:

        -
            cc -Describe -Door westley.c
        +
            cc -Describe -Door westley.c
             cc -Describe -Drain westley.c

        To see the game from start to complete, try:

        -
            ./try.sh
        +
            ./try.sh

        Judges’ remarks:

        Not all compiler errors are bad.

        For spoilers see the end of the notes from the author below.

        To use:

        -
            ./try.sh
        +
            ./try.sh

        Author’s remarks:

        This program, in accordance with the rules, compiles into a legal C program without human intervention. However, it simply compiles @@ -213,7 +214,7 @@ to actually compile the program.

        This program is a simple adventure game which uses only C preprocessor error messages (for missing #include files) as output. To begin, try to compile the program with no options:

        -
            cc westley.c
        +
            cc westley.c

        This will fail, producing an error message for a missing #include file as the opening description. Your terminal should be set for 80 columns, 8 character tabs, and wraparound, as there is no way @@ -232,7 +233,7 @@ to reliably output newlines. You should see something like this missing include file name, which functions as the game text.

        To “do” things, all words must start with -D. For example, to look at the door, do:

        -
            cc -Describe -Door prog.c
        +
            cc -Describe -Door prog.c

        …and you will get another error message telling you about the door. (note: some compilers will stop after the first missing include file, while others will continue to try compiling; the latter will repeat @@ -241,7 +242,7 @@ with “verbose” turned on).

        The goal of the game is to escape the dungeon.

        Here is a walk-through for the game, including a few dead-ends:

        SPOILER

        -
            cc -Describe -Door westley.c
        +
            cc -Describe -Door westley.c
             cc -Describe -Drain westley.c
             cc -Describe -Dwarf westley.c
             cc -Describe -Debris westley.c # or -Dungeon
        @@ -291,10 +292,10 @@ unimportant.

      • westley.orig.c - original source
      • try.alt.sh - how to run alternative code
      • try.sh - how to run
      • -
      • 1994_westley.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1994_westley.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1995/cdua/.entry.json b/1995/cdua/.entry.json index 83831f3a3..06e6ecad0 100644 --- a/1995/cdua/.entry.json +++ b/1995/cdua/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1995_cdua.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1995/cdua/index.html b/1995/cdua/index.html index 16820cfe6..fb150748a 100644 --- a/1995/cdua/index.html +++ b/1995/cdua/index.html @@ -88,6 +88,7 @@ @@ -144,7 +145,7 @@ Location: ZZ - Unknown locationWe recommend that you try the alternate version first so you can see what this entry looked like back in 1995 (with a configurable speed). See the original code section below for the original entry.

        -
            make alt
        +
            make alt

        The alternate version uses usleep(3) with SLEEP (defined in the Makefile, default 3000) microseconds to make it easier to see the maze being solved in real time. You can redefine SLEEP at compile time to reconfigure it in case @@ -155,13 +156,13 @@ making it 100000 (which is actually fun :-) ).

            STATUS: INABIAF - please **DO NOT** fix

        For more detailed information see 1995 cdua bugs.

        To use:

        -
            ./cdua.alt
        +
            ./cdua.alt

        Try:

        -
            make SLEEP=1500 clobber alt
        +
            make SLEEP=1500 clobber alt
         
             ./cdua.alt # press enter and watch it go much faster!

        You might also like to try:

        -
            make SLEEP=65000 clobber alt
        +
            make SLEEP=65000 clobber alt
         
             ./cdua.alt # press enter and watch it go much slower!

        Do you see anything strange in this version when SLEEP is a high value like @@ -174,9 +175,9 @@ actually see it being solved in real time rather than have it go by in a flash.<

        If you wish to use the original version, for instance if you wish to see how fast your computer is :-) or use both to see the difference, you can do so.

        Original build:

        -
            make all
        +
            make all

        Original use:

        -
            ./cdua
        +
            ./cdua

        Judges’ remarks:

        This could be used as the basis of an a-maze-ing screen exerciser.

        Author’s remarks:

        @@ -211,10 +212,10 @@ statement to solve the maze.

      • Makefile - entry Makefile
      • cdua.alt.c - alternative source
      • cdua.orig.c - original source
      • -
      • 1995_cdua.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1995_cdua.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1995/dodsond1/.entry.json b/1995/dodsond1/.entry.json index 82771c708..e34b7f4f6 100644 --- a/1995/dodsond1/.entry.json +++ b/1995/dodsond1/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "1995_dodsond1.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1995/dodsond1/index.html b/1995/dodsond1/index.html index 6ca4f2e72..2f9b5d756 100644 --- a/1995/dodsond1/index.html +++ b/1995/dodsond1/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: US - United States of America

        To build:

        -
            make all
        +
            make all

        To use:

        -
            ./dodsond1 < text_file
        +
            ./dodsond1 < text_file

        Try:

        -
            ./dodsond1 < README.md
        +
            ./dodsond1 < README.md

        Judges’ remarks:

        You might consider giving the following input:

            ... a male (who) gets very, very frustrated sitting in a chair all
        @@ -153,7 +154,7 @@ Location: US - United States of America
             giraffes.
                     -- Adjunct Professor Newt Gingrich, Reinhardt College, 1/7/95

        … which can be done like:

        -
            ./try.sh
        +
            ./try.sh

        Author’s remarks:

        Istha ogrampra akesta Englishwa extta aswa inputwa andwa anslatestra itwa intowa Igpa Atinla.

        @@ -192,10 +193,10 @@ code being inside the ()’s of one of the 6 orfa loop
      • dodsond1.orig.c - original source
      • try.sh - how to run
      • try.this.txt - sample input
      • -
      • 1995_dodsond1.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1995_dodsond1.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1995/dodsond2/.entry.json b/1995/dodsond2/.entry.json index a6190b1cb..a49dbd1ed 100644 --- a/1995/dodsond2/.entry.json +++ b/1995/dodsond2/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "1995_dodsond2.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1995/dodsond2/index.html b/1995/dodsond2/index.html index 05ada268a..0b8fd148a 100644 --- a/1995/dodsond2/index.html +++ b/1995/dodsond2/index.html @@ -88,6 +88,7 @@ @@ -141,9 +142,9 @@ Location: US - United States of America

        To build:

        -
            make all
        +
            make all

        To use:

        -
            ./dodsond2
        +
            ./dodsond2

        Judges’ remarks:

        An amazing entry!

        The official chef enjoyed solving the maze, which she did on the first @@ -181,10 +182,10 @@ in an unknown labyrinth, areas which you have not visited cannot be seen.

      • dodsond2.c - entry source
      • Makefile - entry Makefile
      • dodsond2.orig.c - original source
      • -
      • 1995_dodsond2.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1995_dodsond2.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1995/esde/.entry.json b/1995/esde/.entry.json index a72daade4..b28a8aa00 100644 --- a/1995/esde/.entry.json +++ b/1995/esde/.entry.json @@ -59,7 +59,7 @@ }, { "file_path" : "1995_esde.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1995/esde/index.html b/1995/esde/index.html index bfc5f000a..071c67f7b 100644 --- a/1995/esde/index.html +++ b/1995/esde/index.html @@ -88,6 +88,7 @@ @@ -141,12 +142,12 @@ Location: PL - Republic of Poland

        To build:

        -
            make all
        +
            make all

        To use:

        -
            ./esde data-file word
        +
            ./esde data-file word

        where data-file contains lines of < 255 chars in length.

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Judges’ remarks:

        When reading the source be careful to distinguish between variable names and library functions.

        @@ -206,10 +207,10 @@ in each line).

      • esde.data2 - example file argument
      • esde.data - example file argument
      • try.sh - how to run
      • -
      • 1995_esde.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1995_esde.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1995/garry/.entry.json b/1995/garry/.entry.json index df4ccc466..3704474bf 100644 --- a/1995/garry/.entry.json +++ b/1995/garry/.entry.json @@ -75,7 +75,7 @@ }, { "file_path" : "1995_garry.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1995/garry/index.html b/1995/garry/index.html index 44d930aef..a89199fa3 100644 --- a/1995/garry/index.html +++ b/1995/garry/index.html @@ -88,6 +88,7 @@ @@ -141,22 +142,22 @@ Location: DE - Federal Republic of Germ

        To build:

        -
            make all
        +
            make all

        To use:

        -
            ./garry <input_file >output_file
        +
            ./garry <input_file >output_file

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Alternate code:

        While it may not have been the intention of the author, the judges noted that the C pre-processed version (with the #includes left intact) looked very much like a rat “dropping core”. See garry.alt.c and judge for yourself!

        Alternate build:

        -
            make alt
        +
            make alt

        Alternate use:

        -
            ./garry.alt <input_file >output_file
        +
            ./garry.alt <input_file >output_file

        Alternate try:

        -
            ./try.alt.sh
        +
            ./try.alt.sh

        Judges’ remarks:

        The author was kind enough to provide a less obfuscated version of the source called garry.fmt.c.

        @@ -166,9 +167,9 @@ incorporating the ability to create binary from escaped data in the environment variables.

        The calling syntax is pretty simple, just use it with stdio-redirection or inside pipelines, e.g.:

        -
            ./garry <file_to_convert >converted_file
        +
            ./garry <file_to_convert >converted_file

        or

        -
            cat all_my_files/* | ./garry | lp
        +
            cat all_my_files/* | ./garry | lp

        The syntax of the conversion of the input file is as follows: To include the value of an environment variable in the output file, place the name of the variable between $-signs in the input, e.g.:

        @@ -177,7 +178,7 @@ variable between $-signs in the input, e.g.:

        Unknown Env-variables or malformed expressions are ignored and kept intact.

        Additionally, the filter replaces escaped octal values in the environment variables by their binary representation, e.g.:

        -
            $ TEST="\110\145\154\154\157"
        +
            $ TEST="\110\145\154\154\157"
             $ export TEST
             $ echo '$TEST$' | ./garry
             Hello
        @@ -212,10 +213,10 @@ variables by their binary representation, e.g.:

      • try.alt.sh - how to run alternative code
      • try.sh - how to run
      • garry.fmt.c - defocused source code
      • -
      • 1995_garry.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1995_garry.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1995/heathbar/.entry.json b/1995/heathbar/.entry.json index 46815e5b7..646d2f6fb 100644 --- a/1995/heathbar/.entry.json +++ b/1995/heathbar/.entry.json @@ -44,7 +44,7 @@ }, { "file_path" : "1995_heathbar.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1995/heathbar/index.html b/1995/heathbar/index.html index 2cd4e4aa1..03d87520c 100644 --- a/1995/heathbar/index.html +++ b/1995/heathbar/index.html @@ -88,6 +88,7 @@ @@ -144,12 +145,12 @@ Location: ZZ - Unknown location

        To build:

        -
            make all
        +
            make all

        To use:

        -
            ./heathbar num num
        +
            ./heathbar num num

        where num is a non-negative number.

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Judges’ remarks:

        The main reason we liked this entry was mainly because the main effect of the source was self documenting! :-)

        @@ -209,10 +210,10 @@ diligent effort to write especially clear code gets me extra points!

      • Makefile - entry Makefile
      • heathbar.orig.c - original source
      • try.sh - how to run
      • -
      • 1995_heathbar.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1995_heathbar.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1995/index.html b/1995/index.html index 3fb1949db..ee2754767 100644 --- a/1995/index.html +++ b/1995/index.html @@ -86,6 +86,7 @@ diff --git a/1995/leo/.entry.json b/1995/leo/.entry.json index fd3eecb40..c728e9a19 100644 --- a/1995/leo/.entry.json +++ b/1995/leo/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "1995_leo.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1995/leo/index.html b/1995/leo/index.html index 15cf022bc..45bb76a67 100644 --- a/1995/leo/index.html +++ b/1995/leo/index.html @@ -88,6 +88,7 @@ @@ -141,16 +142,16 @@ Location: US - United States of America

        To build:

        -
            make all
        +
            make all

        Bugs and (Mis)features:

        The current status of this entry is:

            STATUS: known bug - please help us fix

        For more detailed information see 1995 leo bugs.

        To use:

        -
            ./leo [ deep ] [ right ] [ Variable ] [ cycle [ freq ] ]
        +
            ./leo [ deep ] [ right ] [ Variable ] [ cycle [ freq ] ]

        See the author’s information below on these details.

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Judges’ remarks:

        Press return after each image is drawn.

        The variable names are element-ary. If you find this confusing, @@ -163,7 +164,7 @@ the secret switches that the author doesn’t divulge ! (All switches are single characters on the command line - anything that’s not a number is a candidate.)

        Author’s remarks:

        The usage is:

        -
            ./leo [ deep ] [ right ] [ Variable ] [ cycle [ freq ] ]
        +
            ./leo [ deep ] [ right ] [ Variable ] [ cycle [ freq ] ]

        where the first three are literal words, cycle is a positive integer (0 is ignored), and freq is an integer (default = 0) that’s supposed to be in the range 0..100 (bigger values are allowed, however). Invalid parameters and @@ -173,7 +174,7 @@ equivalent to ./leo 0 0 0 1 Variable 70 right, etc.

        If Variable is used, cycle is almost ignored (see below) but has to be present if you want to enter freq (and you usually do).

        Some options to try (besides the obvious):

        -
            ./leo 1 | cat - /dev/tty | gs -
        +
            ./leo 1 | cat - /dev/tty | gs -

        This draws the basic pattern I invented in high school:

        You take a big sheet of “arithmetic” paper and draw a line of length 1 (between 2 crossings) at the center of the sheet:

        @@ -253,11 +254,11 @@ the opening for step 1 is not a single line but a cross:

                                        \./
                                         / \

        To watch it repeatedly (as a screen saver), use:

        -
            ./leo 2 | cat - /dev/tty | gs -
        +
            ./leo 2 | cat - /dev/tty | gs -

        The command line:

        -
            ./leo Variable 1 | cat - /dev/tty | gs -
        +
            ./leo Variable 1 | cat - /dev/tty | gs -

        draws the same as above. Try:

        -
            ./leo Variable 1 1 | cat - /dev/tty | gs -
        +
            ./leo Variable 1 1 | cat - /dev/tty | gs -

        What happened to the picture? Increase freq and watch the changes.

        If cycle is more than 1, the program loops, allowing the user to enjoy randomly changing patterns (the delay is 3 seconds), @@ -272,7 +273,7 @@ if you want to pipe the output to a printer.

        If Variable is used, the actual value of cycle doesn’t matter, as far as it is > 1. To figure out what difference cycle makes when Variable is not used, try

        -
            ./leo Variable 37 80 | cat - /dev/tty | gs -
        +
            ./leo Variable 37 80 | cat - /dev/tty | gs -

        and other values of cycle; smaller values usually require smaller values of freq for the patterns to be non-trivial.

        The options deep and right make the patterns to be drawn in different @@ -323,10 +324,10 @@ even want to explain what it does. You’ve been warned!

      • leo.orig.c - original source
      • spoiler1.html - spoiler document
      • try.sh - how to run
      • -
      • 1995_leo.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1995_leo.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1995/leo/spoiler1.html b/1995/leo/spoiler1.html index 6575e65c2..d628c9007 100644 --- a/1995/leo/spoiler1.html +++ b/1995/leo/spoiler1.html @@ -83,6 +83,7 @@ diff --git a/1995/makarios/.entry.json b/1995/makarios/.entry.json index affebd1e7..01fe5f66c 100644 --- a/1995/makarios/.entry.json +++ b/1995/makarios/.entry.json @@ -36,7 +36,7 @@ }, { "file_path" : "1995_makarios.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1995/makarios/index.html b/1995/makarios/index.html index ed04d18d3..58ff0a375 100644 --- a/1995/makarios/index.html +++ b/1995/makarios/index.html @@ -88,6 +88,7 @@ @@ -144,9 +145,9 @@ Location: ZZ - Unknown location

        To build:

        -
            make all
        +
            make all

        To use:

        -
            ./makarios
        +
            ./makarios

        Judges’ remarks:

        The judges were impressed that such a small program could do so much! Can you figure out how it does it?

        @@ -180,10 +181,10 @@ of prime palindromes (palindromic in base 8, of course).

      • makarios.c - entry source
      • Makefile - entry Makefile
      • makarios.orig.c - original source
      • -
      • 1995_makarios.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1995_makarios.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1995/savastio/.entry.json b/1995/savastio/.entry.json index ecb359697..1f7047475 100644 --- a/1995/savastio/.entry.json +++ b/1995/savastio/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1995_savastio.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1995/savastio/index.html b/1995/savastio/index.html index fad8ddd95..d9b305f6b 100644 --- a/1995/savastio/index.html +++ b/1995/savastio/index.html @@ -88,6 +88,7 @@ @@ -141,18 +142,18 @@ Location: ZZ - Unknown location

        To build:

        -
            make all
        +
            make all

        Bugs and (Mis)features:

        The current status of this entry is:

            STATUS: INABIAF - please **DO NOT** fix

        For more detailed information see 1995 savastio bugs.

        To use:

        -
            ./savastio
        +
            ./savastio
             # enter a POSITIVE number such as 100

        NOTE: if you specify a negative number it will get stuck, showing no output. But what happens if you give a non-number?

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Judges’ remarks:

        I know an l when I see a 1.

        Author’s remarks:

        @@ -205,10 +206,10 @@ time management studies and the factorial arts.

      • Makefile - entry Makefile
      • savastio.orig.c - original source
      • try.sh - how to run
      • -
      • 1995_savastio.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1995_savastio.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1995/schnitzi/.entry.json b/1995/schnitzi/.entry.json index f92a3cb6f..093e862d6 100644 --- a/1995/schnitzi/.entry.json +++ b/1995/schnitzi/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1995_schnitzi.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1995/schnitzi/index.html b/1995/schnitzi/index.html index 0d4174324..ef767143c 100644 --- a/1995/schnitzi/index.html +++ b/1995/schnitzi/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: ZZ - Unknown location

        To build:

        -
            make all
        +
            make all

        To use:

        -
            ./schnitzi num
        +
            ./schnitzi num

        Try:

        -
            ./try.sh
        +
            ./try.sh

        WARNING: the author warns to not use too high a number! If you wish to ignore the warning it is an exercise to determine how high is too high. :-)

        Judges’ remarks:

        @@ -182,10 +183,10 @@ amounts to doing a fork bomb on your machine!

      • Makefile - entry Makefile
      • schnitzi.orig.c - original source
      • try.sh - how to run
      • -
      • 1995_schnitzi.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1995_schnitzi.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1995/spinellis/.entry.json b/1995/spinellis/.entry.json index 01f638949..70b2bf4aa 100644 --- a/1995/spinellis/.entry.json +++ b/1995/spinellis/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "1995_spinellis.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1995/spinellis/index.html b/1995/spinellis/index.html index 416be9e37..be366ea35 100644 --- a/1995/spinellis/index.html +++ b/1995/spinellis/index.html @@ -88,6 +88,7 @@ @@ -141,9 +142,9 @@ Location: GR - Hellenic Republic (

        To build:

        -
            make all
        +
            make all

        To use:

        -
            ./spinellis < spinellis.c
        +
            ./spinellis < spinellis.c

        Judges’ remarks:

        While the code does not abuse the rules, its output surely does!

        P.S. Does the source have any spelling errors?

        @@ -182,10 +183,10 @@ the rules?

      • spinellis.c - entry source
      • Makefile - entry Makefile
      • spinellis.orig.c - original source
      • -
      • 1995_spinellis.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1995_spinellis.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1995/vanschnitz/.entry.json b/1995/vanschnitz/.entry.json index 168cdcd6e..ec0723e93 100644 --- a/1995/vanschnitz/.entry.json +++ b/1995/vanschnitz/.entry.json @@ -52,7 +52,7 @@ }, { "file_path" : "1995_vanschnitz.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1995/vanschnitz/index.html b/1995/vanschnitz/index.html index 41be43727..22e536678 100644 --- a/1995/vanschnitz/index.html +++ b/1995/vanschnitz/index.html @@ -88,6 +88,7 @@ @@ -144,7 +145,7 @@ Location: ZZ - Unknown location

        To build:

        -
            make all
        +
            make all

        The authors provided a spoiler version, originally uuencoded but uudecoded by us in 2023. See Alternate code below.

        Bugs and (Mis)features:

        @@ -152,16 +153,16 @@ in 2023. See Alternate code below.

            STATUS: missing file - please provide it

        For more detailed information see 1995 vanschnitz bugs.

        To use:

        -
            ./vanschnitz
        +
            ./vanschnitz

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Alternate code:

        The authors provided a spoiler version of the program. Originally uuencoded we have decoded it for the wider audience in vanschnitz.alt.c. The uuencoded blob is still available in their remarks below. They encourage you to first try and figure out the program without the spoiler.

        Alternate build:

        -
            make alt
        +
            make alt

        Alternate use:

        Use vanschnitz.alt as you would vanschnitz above.

        Judges’ remarks:

        @@ -187,7 +188,7 @@ for. This is done by defining the symbol n on the compile line. For instance, to cause the compiler to solve the Towers of Hanoi problem with four disks, you would compile the program like this:

        -
            gcc hanoi.c -o hanoi -Dn=4
        +
            gcc hanoi.c -o hanoi -Dn=4

        A default value of 5 will be used for n if you do not define it on the command line. The value of n cannot be greater than fifteen (the compiler we used to test has a limit on the #include @@ -208,7 +209,7 @@ ANSI C feature in which adjacent character strings are concatenated; a version that does not use this feature has been included for people who can only run K&R). A good way to see the resulting program (on a Unix system) is to do the command

        -
            gcc hanoi.c -E -Dn=5 | grep -v \# | grep -v ^\$
        +
            gcc hanoi.c -E -Dn=5 | grep -v \# | grep -v ^\$

        For an odd number of disks, the program will provide a solution wherein the disks end up on peg 2; for an even number of disks, they will end on peg 3. This should @@ -321,10 +322,10 @@ to try to decipher the program without it…

      • vanschnitz.alt.c - alternative source
      • vanschnitz.orig.c - original source
      • try.sh - how to run
      • -
      • 1995_vanschnitz.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1995_vanschnitz.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1996/august/.entry.json b/1996/august/.entry.json index 6e79dd56f..a06c6f211 100644 --- a/1996/august/.entry.json +++ b/1996/august/.entry.json @@ -67,7 +67,7 @@ }, { "file_path" : "1996_august.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1996/august/index.html b/1996/august/index.html index 4a07a2660..b4fd797ba 100644 --- a/1996/august/index.html +++ b/1996/august/index.html @@ -88,6 +88,7 @@ @@ -141,34 +142,34 @@ Location: SE - Kingdom of Sweden (

        To build:

        -
            make all
        +
            make all

        Bugs and (Mis)features:

        The current status of this entry is:

            STATUS: doesn't work with some compilers - please provide alternative code or fix for more compilers

        For more detailed information see 1996 august bugs.

        To use:

        -
            cat august.c test.oc | ./august > test.oo
        +
            cat august.c test.oc | ./august > test.oo
             ./august < test.oo

        NOTE: some compilers will compile this code into infinite loops! If the above cat line (or one of the ones later in the try section) does not execute in a very short amount of time, then you may need to fix your compiler or use gcc.

        The above should print a ! followed by a newline.

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Judges’ remarks:

        This entry can feed on itself. If you C pre-process the source, you can compile the interpreter:

        -
            make august.oc
        +
            make august.oc

        We can now compile the interpreter as follows:

        -
            cat august.c august.oc | ./august > august.oo
        +
            cat august.c august.oc | ./august > august.oo

        and use the compiled interpreter to execute some previously compiled code:

        -
            cat august.oo test.oo | ./august
        +
            cat august.oo test.oo | ./august

        And we can have the compiled interpreter interpret itself which in turn compiles the test program:

        -
            cat august.oo august.oo fac.oo | ./august
        +
            cat august.oo august.oo fac.oo | ./august

        And if you have lots of spare time, you can recurse one level deeper:

        -
            cat august.oo august.oo august.oo fac.oo | ./august
        +
            cat august.oo august.oo august.oo fac.oo | ./august

        We (the judges) recommend that you spend some time studying this entry as it surely will make the ‘best of the IOCCC’ list. It was very well received by those who attended the IOCCC BOF.

        @@ -194,13 +195,13 @@ of operators, and control constructs.

        can go wrong. But this is what seasoned C programmers are used to.

        Assume that the interpreter has been compiled (source in august.c and binary in august) and that we have this in a file named test.oc:

        -
            main() { putchar('!'); putchar('\n'); exit(0); }
        +
            main() { putchar('!'); putchar('\n'); exit(0); }

        We can then compile by

        -
            cat august.c test.oc | ./august > test.oo
        +
            cat august.c test.oc | ./august > test.oo

        And run the compiled program by

        -
            ./august < test.oo
        +
            ./august < test.oo

        Or even simpler:

        -
            cat august.c test.oc | ./august | ./august
        +
            cat august.c test.oc | ./august | ./august

        A larger example is included fac.oc.

        The compiler for OC is naturally written in OC (where did you think the byte code came from?). It is in the file parse.oc.

        @@ -210,20 +211,20 @@ preprocessor (hey, what do you expect from a program that is this small), so we need to use an external one. To pre-process august.c use the command from the Makefile, but add the -E flag and change 60000 to 40000, i.e.:

        -
            cc -E -DZ=40000 .... august.c > august.oc
        +
            cc -E -DZ=40000 .... august.c > august.oc

        If august.oc contain some junk line starting with a # (most likely it does) then remove it like:

        -
            sed -i'' '/^#/d' august.oc
        +
            sed -i'' '/^#/d' august.oc

        OK, we can now compile the interpreter:

        -
            cat august.c august.oc | ./august > august.oo
        +
            cat august.c august.oc | ./august > august.oo

        And we can run it:

        -
            cat august.oo test.oo | ./august
        +
            cat august.oo test.oo | ./august

        Here we have the interpreter interpreting another interpreter that runs the program. Did you think that was too fast? Just throw in another level of interpretation:

        -
            cat august.oo august.oo test.oo | ./august
        +
            cat august.oo august.oo test.oo | ./august

        And another…

        -
            cat august.oo august.oo august.oo test.oo | ./august
        +
            cat august.oo august.oo august.oo test.oo | ./august

        Fitting the byte code for the compiler into the initial comment was a challenge. I had to strip the compiler/interpreter of @@ -337,10 +338,10 @@ defined. getchar() and putchar() are predefined functi

      • parse.oc - oc source
      • test.oc - oc source
      • try.sh - how to run
      • -
      • 1996_august.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1996_august.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1996/dalbec/.entry.json b/1996/dalbec/.entry.json index 6d04dd3e4..fd16b3a3b 100644 --- a/1996/dalbec/.entry.json +++ b/1996/dalbec/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1996_dalbec.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1996/dalbec/index.html b/1996/dalbec/index.html index 7bf3e4e8a..6bc460891 100644 --- a/1996/dalbec/index.html +++ b/1996/dalbec/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: US - United States of America

        To build:

        -
            make all
        +
            make all

        To use:

        -
            ./dalbec
        +
            ./dalbec

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Why does the output end with 121?

        Judges’ remarks:

        The output is mis-leading … why does it also print 2047?

        @@ -208,10 +209,10 @@ where a==0.

      • Makefile - entry Makefile
      • dalbec.orig.c - original source
      • try.sh - how to run
      • -
      • 1996_dalbec.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1996_dalbec.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1996/eldby/.entry.json b/1996/eldby/.entry.json index 40f936c2b..c520f4d18 100644 --- a/1996/eldby/.entry.json +++ b/1996/eldby/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1996_eldby.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1996/eldby/index.html b/1996/eldby/index.html index c6393c2c8..85b3fdbb1 100644 --- a/1996/eldby/index.html +++ b/1996/eldby/index.html @@ -88,6 +88,7 @@ @@ -141,12 +142,12 @@ Location: ZZ - Unknown location

        To build:

        -
            make alt
        +
            make alt

        We recommend that you use the alt version to see what the entry looked like back in 1996. For the original version see the original code section.

        To use:

        -
            ./eldby.alt
        +
            ./eldby.alt

        To quit send intr (typically ctrl-c).

        NOTE: to reset the sanity of your terminal after this program ends try reset.

        Try:

        @@ -155,12 +156,12 @@ happening with modern systems, and to not flash too quickly, which can be problematic for some people, can be configured to different speeds by way of the value used in usleep(). The default is 35000 but you can easily change it. To do so try:

        -
            make SLEEP=20000 clobber alt
        +
            make SLEEP=20000 clobber alt
             ./eldby.alt

        Original code:

        This version is the original which has no sleep time in between updates.

        Original build:

        -
            make all
        +
            make all

        Original use:

        Use ./eldby as you would ./eldby.alt above.

        Judges’ remarks:

        @@ -197,10 +198,10 @@ must be VT100 or better with 80 columns and 24 rows or more.

      • Makefile - entry Makefile
      • eldby.alt.c - alternative source
      • eldby.orig.c - original source
      • -
      • 1996_eldby.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1996_eldby.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1996/gandalf/.entry.json b/1996/gandalf/.entry.json index 4e63d08ef..5327dbbec 100644 --- a/1996/gandalf/.entry.json +++ b/1996/gandalf/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1996_gandalf.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1996/gandalf/index.html b/1996/gandalf/index.html index b9e8a9862..6866203c0 100644 --- a/1996/gandalf/index.html +++ b/1996/gandalf/index.html @@ -88,6 +88,7 @@ @@ -141,15 +142,15 @@ Location: ZZ - Unknown location

        To build:

        -
            make all
        +
            make all

        Bugs and (Mis)features:

        The current status of this entry is:

            STATUS: missing or dead link - please provide them

        For more detailed information see 1996 gandalf bugs.

        To use:

        -
            ./gandalf
        +
            ./gandalf

        Try:

        -
            ./try.sh
        +
            ./try.sh

        As the script asks, care to guess why these execute differently? Only the compiler knows … ok maybe other things like the author, the judges and perhaps you too?

        @@ -157,7 +158,7 @@ you too?

        Gandalf. Go ahead, ‘try’ it! :-)

        Judges’ remarks:

        For misleading C pre-processor output, try:

        -
            cc -E gandalf.c
        +
            cc -E gandalf.c

        Author’s remarks:

        The program requires an ASCII system.

        To build:

        -
            make all
        +
            make all

        Bugs and (Mis)features:

        The current status of this entry is:

            STATUS: uses gets() - change to fgets() if possible

        For more detailed information see 1996 huffman bugs.

        To use:

        -
            echo 'Huffman Decoding' | ./huffman
        +
            echo 'Huffman Decoding' | ./huffman

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Judges’ remarks:

        If you are still confused and want to read a spoiler, check out the source and it will be clear as mud!

        And for a misleading hint, consider who won! :-)

        And if you really can’t see what is going on, here is an extra spoiler:

        -
            ./huffman < huffman.c 2>/dev/null
        +
            ./huffman < huffman.c 2>/dev/null

        This entry was very well received at the IOCCC BOF.

        Author’s remarks:

        This filter program is really not obfuscated code. It compiles cleanly @@ -195,10 +196,10 @@ to the executable.

      • Makefile - entry Makefile
      • huffman.orig.c - original source
      • try.sh - how to run
      • -
      • 1996_huffman.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1996_huffman.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1996/index.html b/1996/index.html index 20a521d10..ff5c35f66 100644 --- a/1996/index.html +++ b/1996/index.html @@ -86,6 +86,7 @@ diff --git a/1996/jonth/.entry.json b/1996/jonth/.entry.json index 0a0f1e0ed..6b7696c6b 100644 --- a/1996/jonth/.entry.json +++ b/1996/jonth/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "1996_jonth.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1996/jonth/index.html b/1996/jonth/index.html index 350063eb1..d21c69fd1 100644 --- a/1996/jonth/index.html +++ b/1996/jonth/index.html @@ -88,6 +88,7 @@ @@ -141,7 +142,7 @@ Location: NO - Kingdom of Norway (

        To build:

        -
            make all
        +
            make all

        NOTE: this entry requires X11/Xlib.h header file and the X11 library to compile. macOS users running Mountain Lion and later will need to download and install XQuartz in order to compile and run this @@ -152,17 +153,17 @@ entry.

        STATUS: missing or dead link - please provide them

        For more detailed information see 1996 jonth bugs.

        To use:

        -
            ./jonth :0 :0
        +
            ./jonth :0 :0

        NOTE: the two boards will be on top of each other so you will have to drag one off the other so that you can properly play.

        NOTE: if there is no X service open this will crash. If this is the case you might try:

        -
            ./jonth
        +
            ./jonth

        These are supposed to happen. As is written in the The Jargon File:

            That's not a bug, that's a feature.

        Try:

        -
            ./jonth host1:0 host2:0
        +
            ./jonth host1:0 host2:0

        Judges’ remarks:

        For extra credit, figure out how you can cheat by taking over a square already occupied by an opponent.

        @@ -201,10 +202,10 @@ give two display arguments (./jonth host:0 host:0).

      • jonth.c - entry source
      • Makefile - entry Makefile
      • jonth.orig.c - original source
      • -
      • 1996_jonth.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1996_jonth.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1996/rcm/.entry.json b/1996/rcm/.entry.json index e7c5276c0..f7c986609 100644 --- a/1996/rcm/.entry.json +++ b/1996/rcm/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1996_rcm.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1996/rcm/index.html b/1996/rcm/index.html index bad29bd9a..ec420d8a1 100644 --- a/1996/rcm/index.html +++ b/1996/rcm/index.html @@ -88,6 +88,7 @@ @@ -141,16 +142,16 @@ Location: US - United States of America

        To build:

        -
            make all
        +
            make all

        To use:

        -
            ./rcm < file.gz
        +
            ./rcm < file.gz

        where file.gz is some gzipped file.

        Try:

        For more information try:

        -
            ./try.sh
        +
            ./try.sh

        Judges’ remarks:

        For a good no-op try:

        -
            gzip -c < rcm.c | ./rcm
        +
            gzip -c < rcm.c | ./rcm

        NOTE: this is done in the try.sh script as well, along with some other commands including a way to do the above command but with more steps.

        Author’s remarks:

        @@ -210,10 +211,10 @@ bytes.”

      • Makefile - entry Makefile
      • rcm.orig.c - original source
      • try.sh - how to run
      • -
      • 1996_rcm.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1996_rcm.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1996/schweikh1/.entry.json b/1996/schweikh1/.entry.json index 27dce1086..0ea2185fd 100644 --- a/1996/schweikh1/.entry.json +++ b/1996/schweikh1/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "1996_schweikh1.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1996/schweikh1/index.html b/1996/schweikh1/index.html index 87b74e4cf..b18fbfe3f 100644 --- a/1996/schweikh1/index.html +++ b/1996/schweikh1/index.html @@ -88,6 +88,7 @@ @@ -141,13 +142,13 @@ Location: DE - Federal Republic of Germ

        To build:

        -
            make all
        +
            make all

        To use:

        -
            ./schweikh1
        +
            ./schweikh1

        Try:

        To find the day that Easter falls on in the current year and to show all Easter dates from 1582 to 2199:

        -
            ./try.sh
        +
            ./try.sh

        Judges’ remarks:

        Look at the source. There is something very odd going on here. Where does the real code come from if everything is a C pre-processor @@ -251,10 +252,10 @@ problems on other systems.

      • schweikh1.orig.c - original source
      • errno.h - declare errno as an extern int
      • try.sh - how to run
      • -
      • 1996_schweikh1.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1996_schweikh1.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1996/schweikh2/.entry.json b/1996/schweikh2/.entry.json index 7ddbb13c6..fe91d2358 100644 --- a/1996/schweikh2/.entry.json +++ b/1996/schweikh2/.entry.json @@ -59,7 +59,7 @@ }, { "file_path" : "1996_schweikh2.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1996/schweikh2/index.html b/1996/schweikh2/index.html index 18356057b..32e5e8ac0 100644 --- a/1996/schweikh2/index.html +++ b/1996/schweikh2/index.html @@ -88,6 +88,7 @@ @@ -141,9 +142,9 @@ Location: DE - Federal Republic of Germ

        To build:

        -
            make all
        +
            make all

        To use:

        -
            ./schweikh2
        +
            ./schweikh2

        The program accepts up to 4 parameters:

        1. The number of operators in the expression [default: 9]

        2. @@ -152,11 +153,11 @@ Location: DE - Federal Republic of Germ
        3. The goal value or 0/0 [default: 42]

        Try:

        -
            ./try.sh
        +
            ./try.sh

        What happens if you pass only three parameters like the below?

        -
            ./schweikh2 15 1 0
        +
            ./schweikh2 15 1 0

        The author also suggests:

        -
            while :; do grep -v '#' schweikh2.c; done
        +
            while :; do grep -v '#' schweikh2.c; done

        (and we do too) which works with sh, bash, ksh and zsh as well. Press ctrl-c to stop it. Observe how the try.sh script does this once to make it easier to see what is happening.

        @@ -164,7 +165,7 @@ make it easier to see what is happening.

        The original program, with only slight obfuscations, may be found in hunni.c. The perl script, hunni.pl, obfuscates it appropriately. Try:

        -
            less hunni.c
        +
            less hunni.c
         
             perl ./hunni.pl < hunni.c

        This entry was another crowd pleaser at the IOCCC BOF.

        @@ -230,7 +231,7 @@ operators but you will probably wait quite some time for every of the on a 50 MHz SPARC, 4^11 expressions are evaluated in about 3 cpu minutes (gcc -O3).

        Sample arguments:

        -
            ./schweikh2 6
        +
            ./schweikh2 6
             ./schweikh2 7 0
             ./schweikh2 7 7 0
             ./schweikh2 8 9 -1 -67/21
        @@ -239,7 +240,7 @@ minutes (gcc -O3).

        Miscellaneous

        The diamond pattern can be continued without a break. For a nice printout try this on your Bourne compatible shell:

        -
            while :; do grep -v '#' schweikh2.c; done
        +
            while :; do grep -v '#' schweikh2.c; done

        To build:

        -
            make all
        +
            make all

        To use:

        WARNING: DO NOT RUN this program without reading this text down to the end! It may render your system unusable for a limited amount of time or force you to reboot using the Big Red Button! This is NOT a joke. You have been warned.

        -
            ./schweikh3
        +
            ./schweikh3

        Judges’ remarks:

        The source fails to compile on compilers that recognize the inline keyword by default. For gcc, you may need to use -ansi.

        See the file schweikh3.info for example output from various systems.

        But still it is a useful utility. To use try:

        -
            ./schweikh3
        +
            ./schweikh3

        and thanks for the virtual memories! :-)

        Author’s remarks:

        Why I think my entry is obfuscated

        @@ -171,7 +172,7 @@ COBOL, F77, awk etc.

        You have to select maximum ANSI C conformance of your compiler. The source fails to compile under a C++ compiler due to the `new’ identifier which is a C++ reserved word:

        -
            $ g++ schweikh3.c
        +
            $ g++ schweikh3.c
             schweikh3.c:9: parse error before `new'
             schweikh3.c:16: parse error before `new'
             schweikh3.c:46: parse error before `void'
        @@ -181,7 +182,7 @@ the `new’ identifier which is a C++ reserved word:

        schweikh3.c:91: confused by earlier errors, bailing out

        The source fails to compile on compilers that recognize the inline keyword by default, e.g. gcc:

        -
            $ gcc schweikh3.c
        +
            $ gcc schweikh3.c
             schweikh3.c:46: parse error before `void'
             schweikh3.c: In function `main':
             schweikh3.c:91: parse error before `inline'
        @@ -275,10 +276,10 @@ minute or so.

      • Makefile - entry Makefile
      • schweikh3.orig.c - original source
      • schweikh3.info - example output from various systems
      • -
      • 1996_schweikh3.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1996_schweikh3.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1996/westley/.entry.json b/1996/westley/.entry.json index e52efe7ca..4e9637c54 100644 --- a/1996/westley/.entry.json +++ b/1996/westley/.entry.json @@ -83,7 +83,7 @@ }, { "file_path" : "1996_westley.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1996/westley/index.html b/1996/westley/index.html index b7f7853ef..8ae13a224 100644 --- a/1996/westley/index.html +++ b/1996/westley/index.html @@ -88,6 +88,7 @@ @@ -141,24 +142,24 @@ Location: US - United States of America

        To build:

        -
            make all
        +
            make all

        There is another version which is the original entry. See alternate version for details as to how to use and why it was made the alt version.

        To use:

        -
            ./clock1.sh
        +
            ./clock1.sh
             ./clock2.sh
             ./clock3.sh

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Alternate code:

        The original version had a display problem in modern systems which somewhat affected the usability of the program. This alternate code, the original, is provided, to show the differences.

        Alternate build:

        -
            make alt
        +
            make alt

        Alternate try:

        -
            ./try.alt.sh
        +
            ./try.alt.sh

        Judges’ remarks:

        Time and time again, Brian Westley seems to come up with a winning entry! We are amazed at how much is being done with only one relatively @@ -183,7 +184,7 @@ my sample scripts.

        These assumptions are pretty reasonable. 2) can be eliminated but makes the code larger.

        The code is simple; the arguments passed are:

        -
            ./westley minute_map hour_map hand_symbol clock_image
        +
            ./westley minute_map hour_map hand_symbol clock_image

        The program merely takes the minute (0-59) and the hour (0-23) values, looks up the offsets in minute_map and hour_map and writes the hand_symbol for each into the clock_image @@ -236,10 +237,10 @@ position. It won’t move until both hands click over at 4:00.

      • clock3.sh - how to run
      • try.alt.sh - how to run alternative code
      • try.sh - how to run
      • -
      • 1996_westley.tar.bz2 - download entry tarball

      Secondary files

        +
      • 1996_westley.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/1998/banks/.entry.json b/1998/banks/.entry.json index e07bdef42..d6051877f 100644 --- a/1998/banks/.entry.json +++ b/1998/banks/.entry.json @@ -91,7 +91,7 @@ }, { "file_path" : "1998_banks.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1998/banks/index.html b/1998/banks/index.html index a96d51e7f..75064ee3a 100644 --- a/1998/banks/index.html +++ b/1998/banks/index.html @@ -88,6 +88,7 @@ @@ -141,7 +142,7 @@ Location: US - United States of America

        To build:

        -
            make all
        +
            make all

        If you do not have a page up or page down key you might wish to see the Alternate code section below. You may redefine all the keys and the time step with predefined macros, however, so one lacking page up / page @@ -164,10 +165,10 @@ Instructions section.

        to use. The name of the macro in the header file is what you need to set the macros to, depending on what controls you wish to redefine. For instance, to set the throttle up and down to u and d:

        -
            make clobber IT=XK_u DT=XK_d all
        +
            make clobber IT=XK_u DT=XK_d all

        because in the header file you can see that XK_u corresponds to u and XK_d corresponds to d:

        -
            #define XK_d                             0x0064  /* U+0064 LATIN SMALL LETTER D */
        +
            #define XK_d                             0x0064  /* U+0064 LATIN SMALL LETTER D */
             #define XK_u                             0x0075  /* U+0075 LATIN SMALL LETTER U */

        Note that the keysym.h file is not complete from X11; it’s just the more likely candidates (and some that are probably unlikely :-) ).

        @@ -181,7 +182,7 @@ instructions. Since you can use the original entry to redefine these this is not a problem and is purely a convenience .. if only for those who are okay with the preselected alternative keys.

        To use:

        -
            cat horizon.sc pittsburgh.sc | ./banks
        +
            cat horizon.sc pittsburgh.sc | ./banks

        See the author’s remarks in scenery for more details on the scenery files.

        Try:

        @@ -208,7 +209,7 @@ you should use the original entry as described in the to build section above.

        To use the default settings for the alternate build:

        -
            make alt
        +
            make alt

        You may change the other keys as described in the build instructions, above, but this alt code can be seen as an alternative for those who don’t have or don’t want to use page up and page down.

        @@ -289,11 +290,11 @@ landscape.

        Follow a flowing river from the sky.

      A few examples of how to input scenery:

      -
          cat horizon.sc pittsburgh.sc | ./banks
      +
          cat horizon.sc pittsburgh.sc | ./banks
           cat mountains.sc bb.sc | ./banks
           cat mountains.sc river.sc pyramids.sc | ./banks

      You can simulate flying through a cloud bank as well:

      -
          ./banks < /dev/null
      +
          ./banks < /dev/null

      You will usually want at least a horizon, though.

      The format of scenery files is simple, by the way. They’re just a list of 3D coordinates, and the simulator simply draws line @@ -371,10 +372,10 @@ flicker.

    • pittsburgh.sc - scenery file
    • pyramids.sc - scenery file
    • river.sc - scenery file
    • -
    • 1998_banks.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1998_banks.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1998/bas1/.entry.json b/1998/bas1/.entry.json index c9c983600..6664c4929 100644 --- a/1998/bas1/.entry.json +++ b/1998/bas1/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1998_bas1.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1998/bas1/index.html b/1998/bas1/index.html index 9af7b5c47..1074764e7 100644 --- a/1998/bas1/index.html +++ b/1998/bas1/index.html @@ -88,6 +88,7 @@ @@ -141,9 +142,9 @@ Location: NL - Kingdom of the Netherlan

      To build:

      -
          make all
      +
          make all

      To use:

      -
          ./bas1.sh
      +
          ./bas1.sh

      Judges’ remarks:

      The output is supposed to be a 3D maze, but it is somewhat more than that. If you’ve seen any of the Maurits @@ -210,10 +211,10 @@ command line arguments.)

    • Makefile - entry Makefile
    • bas1.orig.c - original source
    • bas1.sh - how to run bas1
    • -
    • 1998_bas1.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1998_bas1.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1998/bas2/.entry.json b/1998/bas2/.entry.json index c45cb4e8b..5a44939be 100644 --- a/1998/bas2/.entry.json +++ b/1998/bas2/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1998_bas2.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1998/bas2/index.html b/1998/bas2/index.html index 351e8200f..aeff66a8d 100644 --- a/1998/bas2/index.html +++ b/1998/bas2/index.html @@ -88,6 +88,7 @@ @@ -141,12 +142,12 @@ Location: NL - Kingdom of the Netherlan

      To build:

      -
          make all
      +
          make all

      To use:

      -
          ./bas2 < file
      +
          ./bas2 < file
           echo text | ./bas2

      Try:

      -
          ./try.sh
      +
          ./try.sh
       
           ./try.sh "foo bar" "baz" "IOCCC 1998/bas2" README.md
       
      @@ -200,10 +201,10 @@ the character).

    • Makefile - entry Makefile
    • bas2.orig.c - original source
    • try.sh - how to run
    • -
    • 1998_bas2.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1998_bas2.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1998/chaos/.entry.json b/1998/chaos/.entry.json index 3bcca654d..a30807673 100644 --- a/1998/chaos/.entry.json +++ b/1998/chaos/.entry.json @@ -83,7 +83,7 @@ }, { "file_path" : "1998_chaos.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1998/chaos/index.html b/1998/chaos/index.html index a9bf2bb89..031986c38 100644 --- a/1998/chaos/index.html +++ b/1998/chaos/index.html @@ -88,6 +88,7 @@ @@ -141,15 +142,15 @@ Location: US - United States of America

      To build:

      -
          make chaos
      +
          make chaos

      NOTE: Some systems do not implement halfdelay() in their libcurses. You might try compiling with -lncurses if you have that library. Or you can build this entry without the halfdelay() call by:

      -
          make chaos_nohalf
      +
          make chaos_nohalf

      To use:

      -
          ./chaos
      +
          ./chaos

      Try:

      -
          ./try.sh
      +
          ./try.sh

      This script will run the program on each data file. To quit the program hit q. If not all files have been used it will go to the next one; otherwise the script will be finished. To end the script early send intr/ctrl-c.

      @@ -222,10 +223,10 @@ happier.

    • ioccc.data - data file
    • pyramid.data - data file
    • xwing.data - data file
    • -
    • 1998_chaos.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1998_chaos.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1998/df/.entry.json b/1998/df/.entry.json index a7f20e5a7..f7db1b4ff 100644 --- a/1998/df/.entry.json +++ b/1998/df/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1998_df.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1998/df/index.html b/1998/df/index.html index 506862f7b..1f1663b0e 100644 --- a/1998/df/index.html +++ b/1998/df/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: ZZ - Unknown location

      To build:

      -
          make all
      +
          make all

      To use:

      -
          ./df
      +
          ./df

      Try:

      -
          ./try.sh
      +
          ./try.sh

      This will run the program in a loop until you exit (q when prompted or ctrl-c/intr).

      Can you figure out a very simple pipeline to cheat?

      @@ -284,10 +285,10 @@ different.

    • Makefile - entry Makefile
    • df.orig.c - original source
    • try.sh - how to run
    • -
    • 1998_df.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1998_df.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1998/dlowe/.entry.json b/1998/dlowe/.entry.json index 3c4366b08..9ce18d0c2 100644 --- a/1998/dlowe/.entry.json +++ b/1998/dlowe/.entry.json @@ -75,7 +75,7 @@ }, { "file_path" : "1998_dlowe.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1998/dlowe/index.html b/1998/dlowe/index.html index 699776976..4cc02c29b 100644 --- a/1998/dlowe/index.html +++ b/1998/dlowe/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: US - United States of America

      To build:

      -
          make all
      +
          make all

      There is an alternate version available. See Alternate code below for more details.

      To use:

      -
          ./dlowe < file > pootfile
      +
          ./dlowe < file > pootfile
       
           ./dlowe < file

      Bugs and (Mis)features:

      @@ -153,22 +154,22 @@ below for more details.

          STATUS: missing or dead link - please provide them

      For more detailed information see 1998 dlowe bugs.

      Try:

      -
          ./dlowe < README.md
      +
          ./dlowe < README.md
           ./dlowe < README.md > README.poot.md

      Why is there different output?

      Also try:

      -
          ./try.sh
      +
          ./try.sh

      Did you spot the Easter egg there?

      Alternate code:

      The original entry was just a text based pootifier. This alternate version is that program.

      Alternate build:

      -
          make alt
      +
          make alt

      Alternate use:

          ./dlowe.alt < file > pootfile

      What’s the difference between this and dlowe?

      Alternate try:

      -
          ./try.alt.sh
      +
          ./try.alt.sh

      Did you spot the Easter egg there?

      Judges’ remarks:

      Why could this this entry be considered a utility? Well because it @@ -179,7 +180,7 @@ a CGI program: Historical remarks:

      A CGI script such as:

      -
          #!/bin/sh
      +
          #!/bin/sh
           # pootify - a sample CGI pootifier
           #
           POOT="/usr/local/bin/dlowe"
      @@ -212,14 +213,14 @@ added bonus that one can use file:// URLs. If one wants a CGI scrip
       should use the above one instead. You can use the script
       pootify.sh, however, to download and generate html files that you
       can look at locally in a browser or pipe through less(1). For instance:

      -
          ./pootify.sh URL=https://microsoft.com | less
      +
          ./pootify.sh URL=https://microsoft.com | less
       
           ./pootify.sh -r URL=https://microsoft.com > ms.html

      where the first one would show the text as rendered but without links, images etc. and the second one would write the html to ms.html so that you could open it in a browser.

      For an old example of it working as a CGI script see:

      -
          https://web.archive.org/web/20040326083431/http://www.pootpoot.com/poot/pootify/?URL=http%3A%2F%2Fwww.ioccc.org
      +
          https://web.archive.org/web/20040326083431/http://www.pootpoot.com/poot/pootify/?URL=http%3A%2F%2Fwww.ioccc.org

      Author’s remarks:

      This program is a text filter, it reads stdin and outputs the “corrected” text to stdout.

      @@ -262,10 +263,10 @@ run perl4 programs after they’ve been run through it; “encrypt
    • pootify.sh - pootify tool
    • try.alt.sh - how to run alternative code
    • try.sh - how to run
    • -
    • 1998_dlowe.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1998_dlowe.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1998/dloweneil/.entry.json b/1998/dloweneil/.entry.json index f9dedfd9c..4aee0343f 100644 --- a/1998/dloweneil/.entry.json +++ b/1998/dloweneil/.entry.json @@ -44,7 +44,7 @@ }, { "file_path" : "1998_dloweneil.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1998/dloweneil/index.html b/1998/dloweneil/index.html index 95d698325..de94444e4 100644 --- a/1998/dloweneil/index.html +++ b/1998/dloweneil/index.html @@ -88,6 +88,7 @@ @@ -144,7 +145,7 @@ Location: ZZ - Unknown location

      To build:

      -
          make all
      +
          make all

      There is an alternate version available that has a key configuration that will be more familiar to vi(m) users and also allows one to quit. See alternate code below.

      @@ -153,7 +154,7 @@ code below.

          STATUS: missing or dead link - please provide them

      For more detailed information see 1998 dloweneil bugs.

      To use:

      -
          ./pootris [X size of board] [Y size of board]
      +
          ./pootris [X size of board] [Y size of board]

      Pressing a moves the current letter position counterclockwise/anticlockwise (a)round the border of the playing field.

      Pressing s moves the current letter one position clockwise around the border @@ -165,9 +166,9 @@ counterclockwise/anticlockwise h does as well; and in addition to < clockwise l does as well. Instead of using d to drop the letter you can do j or space. Finally to quit this version you can press q.

      Alternate build:

      -
          make alt
      +
          make alt

      Alternate use:

      -
          ./pootris.alt [X size of board] [Y size of board]
      +
          ./pootris.alt [X size of board] [Y size of board]

      Judges’ remarks:

      Read the authors’ remarks below to find out how to play. We believe that your experience may mirror one of our experiences:

      @@ -176,7 +177,7 @@ experience may mirror one of our experiences:

      I spelled my first "poot". I was hooked ...

      Author’s remarks:

      Usage

      -
          ./pootris [X size of board] [Y size of board]
      +
          ./pootris [X size of board] [Y size of board]

      Synopsis

      The object of this game is to spell POOT as much as possible. There is no time pressure. You’re given one letter at a time (sort of randomly @@ -276,10 +277,10 @@ places.

    • Makefile - entry Makefile
    • dloweneil.alt.c - alternative source
    • dloweneil.orig.c - original source
    • -
    • 1998_dloweneil.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1998_dloweneil.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1998/dorssel/.entry.json b/1998/dorssel/.entry.json index b85ea9cb1..17432b6b3 100644 --- a/1998/dorssel/.entry.json +++ b/1998/dorssel/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "1998_dorssel.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1998/dorssel/dorssel.html b/1998/dorssel/dorssel.html index 1c958afde..9004ebbcd 100644 --- a/1998/dorssel/dorssel.html +++ b/1998/dorssel/dorssel.html @@ -83,6 +83,7 @@ @@ -150,7 +151,7 @@ two bits would suffice, e.g.

      That means bits 6 and 5 set to 00 is length 1, set to 01 is length 2, etc. But this would mean that we would have to extract the length into a counter before shifting out each symbol, such as

      -
          length = (encoding & 96) >> 5;
      +
          length = (encoding & 96) >> 5;
           do {
                   putchar(encoding & 1 ? '-' : '.');
                   encoding >>= 1;
      @@ -162,7 +163,7 @@ counter before shifting out each symbol, such as

      length 4: 00.1xxxx Z > 00.11100 length 5: 0.1xxxxx 3 > 0.100111

      with 1 bit still to be chosen freely (let’s assume it is 0). Now we can do

      -
          do {
      +
          do {
                   putchar(encoding & 1 ? '-' : '.');
                   encoding >>= 1;
           while (encoding > 1);
      @@ -179,7 +180,7 @@ following

      Notice these encodings in the initialization string. Only the coding for 5 needs an escape (5 = ..... > 01111111 = '\177'). The way the length is encoded still allows the encoding to be its own counter:

      -
          do {
      +
          do {
                   putchar(encoding & 1 ? '-' : '.');
                   encoding = (encoding + 32) >> 1;
           } while (encoding > 35);
      @@ -188,12 +189,12 @@ Note that the calculation for the next value of encoding is done at precision, so that the actual value of the char remains <= 127.

      The character '-' (ASCII 45) and '.' (ASCII 46) are conveniently in sequence, so the putchar can simply be

      -
          putchar(45 + encoding % 2);
      +
          putchar(45 + encoding % 2);

      I used the modulo operator this time, because + takes precedence over &. The assignment can be incorporated into the while control test, and a do-while loop with a body of a single expression statement can be written as a while loop with a comma operator in the test:

      -
          while(putchar(45 + encoding % 2), encoding = encoding + 32 >> 1);
      +
          while(putchar(45 + encoding % 2), encoding = encoding + 32 >> 1);

      Voila.

      Now, the decoding of Morse codes is just the reverse. We shift in 0s and 1s as we scan the line. But: we have to scan from back to front diff --git a/1998/dorssel/index.html b/1998/dorssel/index.html index 7860fe4f3..4b99eea30 100644 --- a/1998/dorssel/index.html +++ b/1998/dorssel/index.html @@ -88,6 +88,7 @@

      @@ -141,14 +142,14 @@ Location: ZZ - Unknown location

      To build:

      -
          make all
      +
          make all

      To use:

      -
          ./dorssel
      +
          ./dorssel
           # input some text
       
           echo text | ./dorssel

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      How does the program decide which way to convert?

      What obsolescent feature are we talking about? (No, it’s not a @@ -166,7 +167,7 @@ altering the behavior ?

      Extra credit:

      Try doing what the last part of the last command in try.sh suggests. As in, do the following:

      -
          echo ". -..- . .-. -.-. .. ... .
      +
          echo ". -..- . .-. -.-. .. ... .
           -.-. .... .- -. --. .  - .... .  .--. .-. --- --. .-. .- --  ... ---  .. -  -.. --- . ...  -. --- -  ... .... --- ..- -" | ./dorssel

      and make the necessary adjustments.

      You might also want to read the dorssel.html file.

      @@ -195,21 +196,21 @@ ASCII. As far as I can tell, the program is conforming and does not invoke undefined behavior.

      Hints

      Try:

      -
          ./dorssel < dorssel.c | ./dorssel
      +
          ./dorssel < dorssel.c | ./dorssel

      to see what variables, numbers, and functions are used. (Does a better job than most C beautifiers).

      • Filter your text twice (as in the previous sample) to obtain a version of your text that can be reversibly Morsified, i.e.
      -
          ./dorssel < dorssel.c | ./dorssel | ./dorssel | ./dorssel
      +
          ./dorssel < dorssel.c | ./dorssel | ./dorssel | ./dorssel

      is the same as

      -
          ./dorssel < dorssel.c | ./dorssel
      +
          ./dorssel < dorssel.c | ./dorssel
      • The file dorssel.md contains all the information needed to understand this program. For an obfuscated spoiler, try
      -
          ./dorssel < dorssel.md
      +
          ./dorssel < dorssel.md

      To build:

      -
          make all
      +
          make all

      NOTE: this may take a while. Some systems may have problems building this entry because of the system resources it requires.

      To use:

      -
          ./fanf
      +
          ./fanf

      Try:

      Enter an expression on standard input. To try some we have selected:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      Historical aside:

      At a time the code in fanf.c was that of fanf.orig.c @@ -165,7 +166,7 @@ source.

      fanftmp2.c C program. Take a look at that final C program again, can you begin to understand what it is doing?

      Look at the first stage of the C pre-processing which was done like:

      -
          cc fanf.c -E > fanftmp1.c
      +
          cc fanf.c -E > fanftmp1.c

      Skip to the bottom of fanftmp1.c (after all of the C pre-processor header stuff … look for a line of the form: # 38 "fanf.c" near the bottom) and look at the resulting code. This code, when C pre-processed @@ -451,10 +452,10 @@ International Logic Programming Symposium, 1995.

    • fanf.orig.c - original source
    • try.sh - how to run
    • fanf.lambda - lambda expressions
    • -
    • 1998_fanf.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1998_fanf.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1998/index.html b/1998/index.html index b65a21b26..0447cfe1b 100644 --- a/1998/index.html +++ b/1998/index.html @@ -86,6 +86,7 @@ diff --git a/1998/schnitzi/.entry.json b/1998/schnitzi/.entry.json index 17edecd90..3e1c0fbf1 100644 --- a/1998/schnitzi/.entry.json +++ b/1998/schnitzi/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1998_schnitzi.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1998/schnitzi/index.html b/1998/schnitzi/index.html index e907f338f..871246565 100644 --- a/1998/schnitzi/index.html +++ b/1998/schnitzi/index.html @@ -88,6 +88,7 @@ @@ -141,13 +142,13 @@ Location: ZZ - Unknown location

      To build:

      -
          make all
      +
          make all

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 1998 schnitzi bugs.

      To use:

      -
          ./schnitzi n > sort.c
      +
          ./schnitzi n > sort.c
           make sort
           ./sort
           # enter three numbers, space separated
      @@ -155,10 +156,10 @@ Location: ZZ - Unknown location

      where n and x, y and z are numbers.

      Try:

      -
          ./try.sh
      +
          ./try.sh

      What happens if at the command line you don’t specify n numbers that the program expects? For instance try:

      -
          ./schnitzi 5 > sort.c
      +
          ./schnitzi 5 > sort.c
           make sort
       
           # try running the next command four or five times:
      @@ -201,13 +202,13 @@ memory capacity, since the function call stack never goes beyond
       a depth of one.

      So what does it do? Give it an integer (1 < n < 27) on the command line, such as

      -
          ./schnitzi 5
      +
          ./schnitzi 5

      The output will itself be a lipographic program, one which expects input of (in this case) five numbers and prints them out sorted. It sorts them, however, using only if/else statements, without arrays or looping. To see the resulting program run, redirect the output from schnitzi into another file, like this

      -
          ./schnitzi 4 > sort.c
      +
          ./schnitzi 4 > sort.c

      and then compile it.

      Spoilers And Hints:

      The big key to this program is figuring out what the names of the @@ -243,10 +244,10 @@ other functions all the time. Or, almost all the time.

    • Makefile - entry Makefile
    • schnitzi.orig.c - original source
    • try.sh - how to run
    • -
    • 1998_schnitzi.tar.bz2 - download entry tarball

    Secondary files

    Secondary files

      +
    • 1998_schweikh1.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1998/schweikh1/macos.html b/1998/schweikh1/macos.html index f6df54e28..9679817cb 100644 --- a/1998/schweikh1/macos.html +++ b/1998/schweikh1/macos.html @@ -83,6 +83,7 @@ @@ -138,7 +139,7 @@ a file was not found (this limitation was removed in both versions in 2023). see

      However, as noted, macOS does not have /usr/include so this would never work for macOS without some changes, described next. For macOS you will need the command line tools installed which can be done like:

      -
          sudo xcode-select --install
      +
          sudo xcode-select --install

      An important point is that the original version hard-coded gcc but just like the entry, the alternate version has also removed this limitation despite gcc existing (though it’s clang) in macOS.

      @@ -154,7 +155,7 @@ the command is:

      which has been changed to be:

      "0cc -ansi -E -dM -undef %s /usr/include/%s>r\0 ("

      Shortly below that you will see, as noted above, the numbers:

      -
          if ((H = fopen (__FILE__+43, 43+__FILE__)))
      +
          if ((H = fopen (__FILE__+43, 43+__FILE__)))
           while ((fgets (L, (int)sizeof L, H)) != 0) {
                   I[strcspn (I, 45+__FILE__)] = O = 0;

      The first number in the above C means the length starting from 0 up through the diff --git a/1998/schweikh2/.entry.json b/1998/schweikh2/.entry.json index dec7ff93b..89b78d5cd 100644 --- a/1998/schweikh2/.entry.json +++ b/1998/schweikh2/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "1998_schweikh2.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1998/schweikh2/index.html b/1998/schweikh2/index.html index 0d184e184..9f2f58e68 100644 --- a/1998/schweikh2/index.html +++ b/1998/schweikh2/index.html @@ -88,6 +88,7 @@

      @@ -141,13 +142,13 @@ Location: DE - Federal Republic of Germ

      To build:

      -
          make all
      +
          make all

      To use:

      -
          ./yarng
      +
          ./yarng

      or

      -
          ./yarng integer_number
      +
          ./yarng integer_number

      Try:

      -
          ./try.sh
      +
          ./try.sh
       
           ./yarng
           # watch what it does
      @@ -160,24 +161,24 @@ results different? Why?

      At the time of judging, some non-gcc compilers that were not fully ANSI standard did not compile this entry correctly. Also at that time, some gcc and egcs implementations ran into a problem when building the entry. Doing:

      -
          make schweikh2
      +
          make schweikh2

      often produced an error of the form:

      -
          gcc -ansi schweikh2.alt.c -o schweikh2.alt
      +
          gcc -ansi schweikh2.alt.c -o schweikh2.alt
           as: Error: cca00NzV.s, line 58: Missing " at end of string
                "
           as: Error: cca00NzV.s, line 58: malformed statement
           *** Error code 1 (bu21)

      because the line:

      -
          #line 10 ONE(O(1,1,2,6,0,6))
      +
          #line 10 ONE(O(1,1,2,6,0,6))

      turned into the line:

      -
          # 9 "01\012"
      +
          # 9 "01\012"

      (note, though, how that line is on line 11) which caused gcc to give to the assembler the following two lines:

      -
          .stabs "schweikh2.c
      +
          .stabs "schweikh2.c
           ",132,0,0,Ltext1

      and the lone " after the #.file line resulted in an assembly syntax error.

      In some cases one had to compile using gcc -g:

      -
          make schweikh2 CFLAGS=-g
      +
          make schweikh2 CFLAGS=-g

      to trigger this error.

      With the proper text beyond the \012, it was even possible to have all kinds of fun adding inline assembly via #line directives. :-)

      @@ -191,7 +192,7 @@ for that matter :-) ).

      you could have emailed the author for a free pat on the back (and maybe you still can :-) ).

      Because of this bug, the code was changed to be instead:

      -
          #line 10 "01\015"
      +
          #line 10 "01\015"

      However in 2023 it was observed that it is gcc (at least some versions?) that has a problem with the compilation of the modified program, giving an internal compiler error:

      @@ -200,9 +201,9 @@ compiler error:

      :12:1: warning: missing terminating " character :12:19: internal compiler error: invalid built-in macro "__FILE__"

      so the line:

      -
          #line 10 "01\015"
      +
          #line 10 "01\015"

      was changed to:

      -
          #line 10 ONE(O(1,1,2,6,0,6))
      +
          #line 10 ONE(O(1,1,2,6,0,6))

      and now it works with both clang and gcc.

      Author’s remarks:

      What this program does

      @@ -223,7 +224,7 @@ bits may be specified by an argument and defaults either to UINT_MAXUINT_MAX+1
      (most likely). Extra credit: why the different values? How long would you need for an empirical test?

      For example:

      -
          $ ./yarng 32
      +
          $ ./yarng 32
           10111001010101110110010101001111
           $ ./yarng 5
           10011
      @@ -316,10 +317,10 @@ Type yarng and watch Him roll.

    • Makefile - entry Makefile
    • schweikh2.orig.c - original source
    • try.sh - how to run
    • -
    • 1998_schweikh2.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1998_schweikh2.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1998/schweikh3/.entry.json b/1998/schweikh3/.entry.json index 5ff82610f..9698c5359 100644 --- a/1998/schweikh3/.entry.json +++ b/1998/schweikh3/.entry.json @@ -67,7 +67,7 @@ }, { "file_path" : "1998_schweikh3.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1998/schweikh3/index.html b/1998/schweikh3/index.html index 74dae62a9..cbe3a74bf 100644 --- a/1998/schweikh3/index.html +++ b/1998/schweikh3/index.html @@ -88,6 +88,7 @@ @@ -141,7 +142,7 @@ Location: DE - Federal Republic of Germ

      To build:

      -
          make all
      +
          make all

      The author stated:

          In the remote event that the input has more than `8192` files with
           the same size (on systems where `sizeof (char *) == 4`, or `4096` when
      @@ -153,11 +154,11 @@ code below.

      If dir is the directory (or a directory tree) where you keep all your favorite pictures off the Internet or from alt.binaries.pictures.*, do

      -
          find dir -type f -print | ./samefile
      +
          find dir -type f -print | ./samefile

      Maybe you will not need to buy another 10 GB disk to store them. :-)

      Try:

      If you’re in this winning entry’s directory:

      -
          ./try.sh
      +
          ./try.sh

      Notice that the tool finds some files that are duplicates.

      Alternate code:

      If you run into the problem that the author described (above) you can redefine @@ -165,7 +166,7 @@ the size as described; this was done with the SZ macro defined in t which if (in the code) is unset will be set to the default, 32767.

      Alternate build:

      If you wish to change the size to say, 55555:

      -
          make clobber SIZE=55555 alt
      +
          make clobber SIZE=55555 alt

      or whatever you wish to redefine it to.

      Judges’ remarks:

      This program is not as smart as to detect identity of JPEG files with the same @@ -181,13 +182,13 @@ Thank God the IEEE does not standardize a coding style…

      What this program does

      This is best explained in the man page. The troff source for this man page can be found in the file samefile.1. To render try:

      -
          `man ./samefile.1
      +
          `man ./samefile.1

      Otherwise:

      SAMEFILE(1) User Manuals SAMEFILE(1)

      NAME

      samefile - find identical files

      SYNOPSIS

      -
          ./samefile
      +
          ./samefile

      DESCRIPTION

      samefile reads a list of file names (one file name per line) from stdin. For each file name pair with identical @@ -219,7 +220,7 @@ the output for a group of identical files with different inode numbers is also minimized. Suppose you have six identical files of size 100 in an inode group consisting of the three inodes with numbers 10, 20 and 30:

      -
          $ ls -i   # output edited for readability:
      +
          $ ls -i   # output edited for readability:
             10 file1     20 file4     30 file6
             10 file2     20 file5
             10 file3
      @@ -245,13 +246,13 @@ more than a couple dozen files of the same size.

      EXAMPLES

      For everybody:

      What are the duplicates under my home directory?

      -
          find $HOME | ./samefile
      +
          find $HOME | ./samefile

      For the sysadmin folks:

      Report all duplicate files under /usr larger than 16k:

      -
          find /usr -size +16384c -a -type f | ./samefile
      +
          find /usr -size +16384c -a -type f | ./samefile

      For the ftp and WWW admins: How much space is wasted below our site’s /pub directory?

      -
          find /pub -type f | samefile | awk '{sum += $1} END {print sum}'
      +
          find /pub -type f | samefile | awk '{sum += $1} END {print sum}'

      EXIT STATUS

      If samefile runs out of memory the exit status is 1, zero otherwise.

      @@ -323,10 +324,10 @@ the same size (on systems where sizeof (char *) == 4, or 4096
    • samefile.1.dupe - samefile man page
    • samefile.1 - samefile man page
    • try.sh - how to run
    • -
    • 1998_schweikh3.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1998_schweikh3.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/1998/tomtorfs/.entry.json b/1998/tomtorfs/.entry.json index 0de119263..67d02be8e 100644 --- a/1998/tomtorfs/.entry.json +++ b/1998/tomtorfs/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "1998_tomtorfs.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/1998/tomtorfs/index.html b/1998/tomtorfs/index.html index c3002f8fd..c3607a670 100644 --- a/1998/tomtorfs/index.html +++ b/1998/tomtorfs/index.html @@ -88,6 +88,7 @@ @@ -141,9 +142,9 @@ Location: ZZ - Unknown location

      To build:

      -
          make all
      +
          make all

      To use:

      -
          ./tomtorfs filename bitwidth polynom reflected init xor
      +
          ./tomtorfs filename bitwidth polynom reflected init xor

      where:

          filename  : file to calculate the CRC of
           bitwidth  : width of the CRC in bits (decimal)
      @@ -152,7 +153,7 @@ Location: ZZ - Unknown location

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      If you don’t believe the program is correct, try and compare the output of the program with the value of CRCs computed by PKZIP or any other @@ -169,13 +170,13 @@ archiver that uses the CRC-32 algorithm.

      xor : value to xor the final CRC with (hexadecimal)

      Examples

      CRC-16:

      -
          ./tomtorfs filename 16 1021 0 FFFF 0000
      +
          ./tomtorfs filename 16 1021 0 FFFF 0000

      CRC-32:

      -
          ./tomtorfs filename 32 04C11DB7 1 FFFFFFFF FFFFFFFF
      +
          ./tomtorfs filename 32 04C11DB7 1 FFFFFFFF FFFFFFFF

      XMODEM:

      -
          ./tomtorfs filename 16 8408 1 0000 0000
      +
          ./tomtorfs filename 16 8408 1 0000 0000

      ARC:

      -
          ./tomtorfs filename 16 8005 1 0000 0000
      +
          ./tomtorfs filename 16 8005 1 0000 0000

      Portability notes

      The program assumes CHAR_BIT==8. Results are undefined if bitwidth > sizeof(unsigned long) * 8. It is also assumed that EOF is -1 and 1 is a valid exit value to indicate failure (replace them with EOF resp. @@ -245,10 +246,10 @@ for writing this. You can find it in crc.txt.

    • tomtorfs.orig.c - original source
    • try.sh - how to run
    • crc.txt - painless guide to CRC algorithms
    • -
    • 1998_tomtorfs.tar.bz2 - download entry tarball

    Secondary files

      +
    • 1998_tomtorfs.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2000/anderson/.entry.json b/2000/anderson/.entry.json index 6c3ab40a7..fa98df6f5 100644 --- a/2000/anderson/.entry.json +++ b/2000/anderson/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2000_anderson.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2000/anderson/index.html b/2000/anderson/index.html index 60c40910c..21a09c24b 100644 --- a/2000/anderson/index.html +++ b/2000/anderson/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: ZZ - Unknown location

      To build:

      -
          make
      +
          make

      To use:

      -
          echo something | ./anderson
      +
          echo something | ./anderson

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      This small program might be a nice addition to a digital personal organizer; just in case you are stranded on a desert island and need to @@ -229,10 +230,10 @@ source file.

    • Makefile - entry Makefile
    • anderson.orig.c - original source
    • try.sh - how to run
    • -
    • 2000_anderson.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2000_anderson.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2000/bellard/.entry.json b/2000/bellard/.entry.json index a841aae0a..3d8f623cd 100644 --- a/2000/bellard/.entry.json +++ b/2000/bellard/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "2000_bellard.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2000/bellard/index.html b/2000/bellard/index.html index ad7efe03c..dcece871e 100644 --- a/2000/bellard/index.html +++ b/2000/bellard/index.html @@ -88,6 +88,7 @@ @@ -141,9 +142,9 @@ Location: FR - French Republic (

      To build:

      -
          make
      +
          make

      To use:

      -
          ./bellard
      +
          ./bellard

      Judges’ remarks:

      This code is a nice compact example of a Modular Fast Fourier Transform. While its output is very specific, the internal FFT has a wide variety of uses.

      @@ -184,10 +185,10 @@ system with a gcc compiler.

    • bellard.c - entry source
    • Makefile - entry Makefile
    • bellard.orig.c - original source
    • -
    • 2000_bellard.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2000_bellard.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2000/bmeyer/.entry.json b/2000/bmeyer/.entry.json index e63c6d0d5..d4d797430 100644 --- a/2000/bmeyer/.entry.json +++ b/2000/bmeyer/.entry.json @@ -67,7 +67,7 @@ }, { "file_path" : "2000_bmeyer.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2000/bmeyer/index.html b/2000/bmeyer/index.html index f41f92bdf..39476a1d3 100644 --- a/2000/bmeyer/index.html +++ b/2000/bmeyer/index.html @@ -88,6 +88,7 @@ @@ -141,23 +142,23 @@ Location: AU - Commonwealth of Australi

      To build:

      -
          make
      +
          make

      To use:

      -
          ./bmeyer
      +
          ./bmeyer

      Try:

      In a video window (white text on black background):

      -
          ./try.sh
      +
          ./try.sh

      The script will suggest you compare the output of the program with images, prompting you to press any key to continue so that you may do so.

      Judges’ remarks:

      Don’t even think of supplying different compression factors (the dashed argument) for compression and decompression! You’ve been warned.

      The author recommended on linux/x86, glibc 2.0, libc4/5:

      -
          bmeyer: bmeyer.c
      +
          bmeyer: bmeyer.c
                   CC -DY="__setfpucw(0x127f)" -O6 $? -o $@ -lm

      However many compilers use -O3 as the maximum level for -O optimization.

      And on linux/x86, glibc 2.1:

      -
          bmeyer: bmeyer.c
      +
          bmeyer: bmeyer.c
                   gcc -DY='int x=0x127f; __asm__ ("fldcw %0" : : "m" (*&x))'  $? -o $@ -lm

      Compile with the maximum possible optimization on your system. If your system has 80-bit internal representation of floating @@ -184,9 +185,9 @@ output a compressed version to stdout. Feed it a compressed file on stdin, and it will decompress it to stdout — as either raw or ASCII .PGM, depending on what format it was compressed from. For example:

      -
          ./glicbawls < michael.pgm > michael.glic
      +
          ./glicbawls < michael.pgm > michael.glic

      and then

      -
          ./glicbawls < michael.glic > michael.decoded.pgm
      +
          ./glicbawls < michael.glic > michael.decoded.pgm

      As it turns out, glicbawls compresses greyscale images (or, more precisely, “natural” greyscale images) better than any other program I am aware of (with the exception of the not-yet-published @@ -199,7 +200,7 @@ have trouble recognizing the image, try squinting at it ;-).

      If you still have trouble, simply use a terminal or xterm with more than 80 columns, and tell glicbawls about it by giving the number of columns as an argument. For example

      -
          ./glicbawls 260 <lavabus.pgm >lavabus.glic
      +
          ./glicbawls 260 <lavabus.pgm >lavabus.glic

      will allow glicbawls to use up to 260 columns, which makes things much more recognizable.

      Still running out of space? Need to compress those images just a @@ -212,13 +213,13 @@ error of 2 is allowed, an original pixel value of 37 could be decoded as 35, 36, 37, 38 or 39. In order to use this mode, simply give the maximum allowed error as an argument, with a dash (-) before it. For example:

      -
          ./glicbawls -2 < graph.pgm > graph.2.glic
      +
          ./glicbawls -2 < graph.pgm > graph.2.glic

      will compress in a way that allows decompression with a maximum error of two. You can combine both types of arguments, i.e.:

      -
          ./glicbawls -3 180 < graph.pgm >graph.3.glic
      +
          ./glicbawls -3 180 < graph.pgm >graph.3.glic

      will compress with a maximum error of 3, using a 180 column terminal for the progress display, and:

      -
          ./glicbawls -3 180 < graph.3.glic > graph.3maxerr.pgm
      +
          ./glicbawls -3 180 < graph.3.glic > graph.3maxerr.pgm

      will decompress the result on such a terminal.

      But wait, there is more — you can also feed glicbawls .PPM files (i.e. colour images), raw or ASCII, your choice. glicbawls will @@ -421,10 +422,10 @@ guarantee decoding within the requested maximum error.michael.pgm - author’s Godchild and Nephew

    • try.sh - how to run
    • lenna.glic - P10 scan of 1972 Playboy centerfold
    • -
    • 2000_bmeyer.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2000_bmeyer.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2000/briddlebane/.entry.json b/2000/briddlebane/.entry.json index 2c062cbd9..40bfa9338 100644 --- a/2000/briddlebane/.entry.json +++ b/2000/briddlebane/.entry.json @@ -44,7 +44,7 @@ }, { "file_path" : "2000_briddlebane.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2000/briddlebane/index.html b/2000/briddlebane/index.html index a7c8ec727..e0e99d30d 100644 --- a/2000/briddlebane/index.html +++ b/2000/briddlebane/index.html @@ -88,6 +88,7 @@ @@ -144,14 +145,14 @@ Location: ZZ - Unknown location

      To build:

      -
          make
      +
          make

      To use:

      -
          ./briddlebane
      +
          ./briddlebane

      Try:

      For some fun every time you log in try running this from your .bashrc or equivalent file!

      You might also like to try:

      -
          ./try.sh
      +
          ./try.sh
       
           INSULTS=15 ./try.sh

      Judges’ remarks:

      @@ -205,10 +206,10 @@ it. One of the real mysteries involves the numbers 114 and
    • Makefile - entry Makefile
    • briddlebane.orig.c - original source
    • try.sh - how to run
    • -
    • 2000_briddlebane.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2000_briddlebane.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2000/dhyang/.entry.json b/2000/dhyang/.entry.json index a7eff30a9..d350aff64 100644 --- a/2000/dhyang/.entry.json +++ b/2000/dhyang/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2000_dhyang.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2000/dhyang/index.html b/2000/dhyang/index.html index 03dd4a9e7..c214eb4e8 100644 --- a/2000/dhyang/index.html +++ b/2000/dhyang/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      To use:

      -
          ./dhyang
      +
          ./dhyang

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      A beautiful combination of solving several different problems, but mostly, the single most impressive layout we’ve ever seen. Many @@ -200,10 +201,10 @@ type (a source of compile warnings).

    • Makefile - entry Makefile
    • dhyang.orig.c - original source
    • try.sh - how to run
    • -
    • 2000_dhyang.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2000_dhyang.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2000/dlowe/.entry.json b/2000/dlowe/.entry.json index 10d8db485..d390c73a9 100644 --- a/2000/dlowe/.entry.json +++ b/2000/dlowe/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2000_dlowe.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2000/dlowe/index.html b/2000/dlowe/index.html index d397310a8..ebfc75f2e 100644 --- a/2000/dlowe/index.html +++ b/2000/dlowe/index.html @@ -88,6 +88,7 @@ @@ -141,9 +142,9 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      The following bit of perl may help determine the values you need:

      -
          perl -MConfig -e 'print "$Config{archlibexp}/CORE\n"'
      +
          perl -MConfig -e 'print "$Config{archlibexp}/CORE\n"'

      … just in case the Makefile does not figure this out for you.

      Bugs and (Mis)features:

      The current status of this entry is:

      @@ -151,9 +152,9 @@ Location: US - United States of America STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 2000 dlowe bugs.

      To use:

      -
          ./dlowe [file ...]
      +
          ./dlowe [file ...]

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      When this entry was submitted the rules of the IOCCC did not prohibit the use of embedded language interpreters. The judges considered @@ -213,7 +214,7 @@ or EOF is encountered.

      the results of an operation are really huge (> 10^308) This bug appears to be fixed in perl5.6.0

      Examples:

      -
          $ echo '12 13 14 15 16 + + + + f' | ./dlowe
      +
          $ echo '12 13 14 15 16 + + + + f' | ./dlowe
           70
           $ echo '12 13 14 15 16 17 + - * / p' | ./dlowe
           -0.0515873015873016
      @@ -365,10 +366,10 @@ DEC Tru64 5.0+, again according to the Perl people.

    • Makefile - entry Makefile
    • dlowe.orig.c - original source
    • try.sh - how to run
    • -
    • 2000_dlowe.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2000_dlowe.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2000/index.html b/2000/index.html index cafa9b153..471068c29 100644 --- a/2000/index.html +++ b/2000/index.html @@ -86,6 +86,7 @@ diff --git a/2000/jarijyrki/.entry.json b/2000/jarijyrki/.entry.json index abab316e0..50f32fb66 100644 --- a/2000/jarijyrki/.entry.json +++ b/2000/jarijyrki/.entry.json @@ -36,7 +36,7 @@ }, { "file_path" : "2000_jarijyrki.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2000/jarijyrki/index.html b/2000/jarijyrki/index.html index a11f60431..c8f17c13f 100644 --- a/2000/jarijyrki/index.html +++ b/2000/jarijyrki/index.html @@ -88,6 +88,7 @@ @@ -144,13 +145,13 @@ Location: FI - Republic of Finland

      To build:

      -
          make
      +
          make

      You will need X11 header files and libraries installed to build this program.

      To use:

      -
          ./jarijyrki < infile.info > outfile.info
      +
          ./jarijyrki < infile.info > outfile.info

      You will need a system capable of displaying the results of X Window programs.

      Try:

      -
          ./jarijyrki < finance.sheet > myedits.info
      +
          ./jarijyrki < finance.sheet > myedits.info

      Then click on cell C3 and type in the following:

          C5 C6 C7 @

      Click on cell D4 and type in the following:

      @@ -190,7 +191,7 @@ supports are:

      2. USAGE INSTRUCTIONS

      2.1. Quick Guide

      Starting
      -
          ./jarijyrki < finance.sheet > myedits.info
      +
          ./jarijyrki < finance.sheet > myedits.info
      Stopping

      Use the ESC key.

      Movement
      @@ -214,14 +215,14 @@ character at the end of the formula; press backspace to delete the last one.

      To start the spreadsheet program with an existing spreadsheet, for instance finance.sheet, use the following command line:

      -
          ./jarijyrki < finance.sheet
      +
          ./jarijyrki < finance.sheet

      The file finance.sheet has been provided as an example. This file contains a set of financial numbers and two graphical entities - a pie chart and a histogram - based on them. We recommend starting the use of the program from this file, as a way to study and learn the formula language supported by the program.

      To start the program with an empty sheet, use

      -
          ./jarijyrki < /dev/null
      +
          ./jarijyrki < /dev/null

      Alternatively, /dev/zero could be used but that may not exist on all systems.

      2.3. Exiting and Saving Spreadsheets

      Normally the user obviously wants to edit the spreadsheet. After the @@ -229,7 +230,7 @@ spreadsheet program finishes, it outputs the edited spreadsheet to the standard output. Hence, when the spreadsheet window has come up, you’ve made your changes, and you press the ESC key the program finishes. To save the results in a file, the following typical command line would be used:

      -
          ./jarijyrki < finance.sheet > myedits.info
      +
          ./jarijyrki < finance.sheet > myedits.info

      2.4. Visual Overview

      On top of the window the Formula Area shows the formula (or text) of the currently selected cell. The program starts with A1 as being the current cell. @@ -418,10 +419,10 @@ currently.

    • jarijyrki.c - entry source
    • Makefile - entry Makefile
    • jarijyrki.orig.c - original source
    • -
    • 2000_jarijyrki.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2000_jarijyrki.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2000/natori/.entry.json b/2000/natori/.entry.json index 8f3807966..6af414b08 100644 --- a/2000/natori/.entry.json +++ b/2000/natori/.entry.json @@ -59,7 +59,7 @@ }, { "file_path" : "2000_natori.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2000/natori/index.html b/2000/natori/index.html index b3435b55b..41ae0bdaa 100644 --- a/2000/natori/index.html +++ b/2000/natori/index.html @@ -88,6 +88,7 @@ @@ -141,14 +142,14 @@ Location: JP - Japan

      To build:

      -
          make
      +
          make

      An alt version exists for those in the southern hemisphere (or those who want to see what it would be in the southern hemisphere). See alternate version below.

      To use:

      -
          ./natori
      +
          ./natori

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Try running this on different days, say a few days apart (even better if the Moon phase changes), and each time run it several times in a row (or several times in a day).

      @@ -160,9 +161,9 @@ input or else just by the code itself. Bonus points if you can make it show all. acos(l/2) into acos(-l/2) which we have done in the alternate version.

      Alternate build:

      To run the alternate code that supports the southern hemisphere:

      -
          make alt
      +
          make alt

      Alternate use:

      -
          ./natori.alt
      +
          ./natori.alt

      Try running this on different days, say a few days apart, and each time run it several times in a row (or several times in a day).

      What happens if you run it in the northern hemisphere? Are there any @@ -170,7 +171,7 @@ differences?

      Can you identify any Moon phases that result in the same output of both versions? Or are there any?

      Alternate try:

      -
          ./try.alt.sh
      +
          ./try.alt.sh

      Like with try.sh, try using this multiple times in a row or throughout the day on different days (if different phases of the Moon you’ll see more of a difference, of course).

      @@ -218,10 +219,10 @@ into acos(-l/2).

    • natori.orig.c - original source
    • try.alt.sh - how to run alternative code
    • try.sh - how to run
    • -
    • 2000_natori.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2000_natori.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2000/primenum/.entry.json b/2000/primenum/.entry.json index 2259358bc..4eab5a32d 100644 --- a/2000/primenum/.entry.json +++ b/2000/primenum/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2000_primenum.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2000/primenum/index.html b/2000/primenum/index.html index 2dbc85597..d692aadd6 100644 --- a/2000/primenum/index.html +++ b/2000/primenum/index.html @@ -88,6 +88,7 @@ @@ -141,16 +142,16 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 2000 primenum bugs.

      To use:

      -
          echo n | ./primenum n
      +
          echo n | ./primenum n

      NOTE: n is an integer.

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      Don’t read the author remarks until you’re ready for the spoiler. Just stop and read the program; it won’t take long. Once you’ve figured @@ -174,7 +175,7 @@ syntax “mistakes” (e.g. LessThanOrEqualTo) and blatant “erro Instead, the program reads input from stdin and returns garbled text on stdout. Fortunately, you can recover the original message simply by running the program a second time. Try:

      -
          ./primenum n < textfile | ./primenum n > textfile2
      +
          ./primenum n < textfile | ./primenum n > textfile2
           diff textfile textfile2

      where n is the same number (modulo 64). So, the prime number generator is actually a simple text encoder/decoder! Of course, don’t forget that @@ -231,10 +232,10 @@ number front. But ye be warned: “not a11 variab1es1es are identica1” :-)

    • Makefile - entry Makefile
    • primenum.orig.c - original source
    • try.sh - how to run
    • -
    • 2000_primenum.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2000_primenum.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2000/rince/.entry.json b/2000/rince/.entry.json index e324c5411..954213cb1 100644 --- a/2000/rince/.entry.json +++ b/2000/rince/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "2000_rince.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2000/rince/index.html b/2000/rince/index.html index c0afedba4..571b4ab15 100644 --- a/2000/rince/index.html +++ b/2000/rince/index.html @@ -88,6 +88,7 @@ @@ -141,17 +142,17 @@ Location: GB - United Kingdom of Great

      To build:

      -
          make all
      +
          make all

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 2000 rince bugs.

      To use:

      -
          ./rince number number2
      +
          ./rince number number2

      If DISPLAY is not set the program will very likely crash or do something different.

      Try:

      -
          ./try.sh
      +
          ./try.sh

      This will run the program several times with different parameters to show different types of things. See the author’s remarks for more details.

      Judges’ remarks:

      @@ -162,7 +163,7 @@ observation.

      Author’s remarks:

      How to use it

      The simplest way to run it is with no arguments. Just type:

      -
          ./rince
      +
          ./rince

      You will need to have access to X windows, although it doesn’t require desperately high resolution and there are no known limitations on colour depth.

      @@ -171,11 +172,11 @@ or more to be visible. For those that cannot wait that long the program has a built in time machine. Indeed the program knows the speed of light, which is used to ensure that we see the “live” pictures. Simply specify the fraction of a day to skip forward for each screen refresh. I suggest:

      -
          ./rince 0.01
      +
          ./rince 0.01

      To display the output (still guessing?) for a given date, specify two arguments. The first argument is as before and the second argument is a Julian day number (given as a fractional component). E.g.:

      -
          ./rince 0 2441193.6
      +
          ./rince 0 2441193.6
           ./rince 0.01 2441193.6

      A Julian day is defined to be the number of days since January 1st in the year -4712 (4713BC), starting at 12 noon GMT.12 To aid conversion from our time @@ -248,12 +249,12 @@ states the following:

      Here he could see for himself that somehow, a planet could orbit the sun, and not leave a moon behind!

      Thus we can plot Galileo’s discoveries using the following three plots:

      -
          ./rince 0 $(./dmy2jd  7.8 1 1610)
      +
          ./rince 0 $(./dmy2jd  7.8 1 1610)
           ./rince 0 $(./dmy2jd  8.8 1 1610)
           ./rince 0 $(./dmy2jd 10.8 1 1610)

      However we can go one better by seeing what Galileo would have seen if it wasn’t cloudy on the 9th. Try:

      -
          ./rince 0 $(./dmy2jd 9.85 1 1610)
      +
          ./rince 0 $(./dmy2jd 9.85 1 1610)

      to see what he was missing out on. I wonder what he’d have made of that!

      Galileo discovered the fourth moon a few days later.

      I’ve tried typing these dates into two Java based Jovian moon plotters, @@ -415,10 +416,10 @@ Jean Meeus. Published by Willmann-Bell Inc.rince.orig.c - original source

    • try.sh - how to run
    • dmy2jd.c - supplementary program source
    • -
    • 2000_rince.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2000_rince.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2000/robison/.entry.json b/2000/robison/.entry.json index 0b5bd0f27..77804f725 100644 --- a/2000/robison/.entry.json +++ b/2000/robison/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "2000_robison.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2000/robison/index.html b/2000/robison/index.html index 3c1fd06fb..bb0e4c22b 100644 --- a/2000/robison/index.html +++ b/2000/robison/index.html @@ -88,6 +88,7 @@ @@ -141,9 +142,9 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      To use:

      -
          ./robison
      +
          ./robison

      Judges’ remarks:

      The program plays almost always reasonably, but does not always detect illegal moves. Try “9 1” as your first move, then “13 2”. Also it @@ -290,10 +291,10 @@ them, in lg(N) time, depending upon a parameter.

    • robison.c - entry source
    • Makefile - entry Makefile
    • robison.orig.c - original source
    • -
    • 2000_robison.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2000_robison.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2000/schneiderwent/.entry.json b/2000/schneiderwent/.entry.json index c719f01ef..5dd12726b 100644 --- a/2000/schneiderwent/.entry.json +++ b/2000/schneiderwent/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "2000_schneiderwent.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2000/schneiderwent/index.html b/2000/schneiderwent/index.html index c9edd4a92..092b0a7ef 100644 --- a/2000/schneiderwent/index.html +++ b/2000/schneiderwent/index.html @@ -88,6 +88,7 @@ @@ -141,21 +142,21 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      To use:

      -
          ./schneiderwent
      +
          ./schneiderwent

      Try:

      -
          ./schneiderwent schneiderwent.data
      +
          ./schneiderwent schneiderwent.data
           ./schneiderwent

      What’s the difference?

      If you have a long while to spare (and you’re bored enough that you could watch paint dry :-) ) you might also try:

      -
          ./try.sh
      +
          ./try.sh

      Alternatively, you can check on it later on, to see all the entry does. Or if you wish to make it run faster, you can override how long it sleeps per iterations and how many iterations it runs. For instance to make it sleep only 30 seconds and run only twice:

      -
          SLEEP=30 ITERATIONS=2 ./try.sh
      +
          SLEEP=30 ITERATIONS=2 ./try.sh

      Judges’ remarks:

      Very nice play by the rules and portable text obfuscation. This far surpasses old tricks like adding or subtracting 1 @@ -229,10 +230,10 @@ in a normal 3270 environment.

    • schneiderwent.orig.c - original source
    • try.sh - how to run
    • schneiderwent.data - table lookups values
    • -
    • 2000_schneiderwent.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2000_schneiderwent.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2000/thadgavin/.entry.json b/2000/thadgavin/.entry.json index 8e6e83e43..4c823e80e 100644 --- a/2000/thadgavin/.entry.json +++ b/2000/thadgavin/.entry.json @@ -44,7 +44,7 @@ }, { "file_path" : "2000_thadgavin.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2000/thadgavin/index.html b/2000/thadgavin/index.html index d3c94472f..54d8a766e 100644 --- a/2000/thadgavin/index.html +++ b/2000/thadgavin/index.html @@ -88,6 +88,7 @@ @@ -144,7 +145,7 @@ Location: GB - United Kingdom of Great

      To build:

      -
          make alt
      +
          make alt

      NOTE: if you don’t have curses or SDL1 installed both modes will fail to compile. In that case see the FAQ 3.8 - How do I compile an IOCCC entry that requires SDL1 or SDL2? and FAQ 3.9 - How do I compile an IOCCC entry that @@ -153,11 +154,11 @@ requires (n)curses? for more information.

      looked like back in 2000 (with a configurable speed). See the original code section for the original entry.

      To use:

      -
          ./thadgavin.alt
      +
          ./thadgavin.alt

      You can press ‘q’ at any time to exit.

      Try:

      If you have SDL1 installed:

      -
          ./thadgavin_sdl
      +
          ./thadgavin_sdl

      Whereas the curses version has an early exit the SDL version does not. You will have to kill it yourself.

      You might also wish to reconfigure the speed at which the programs run. The code @@ -167,9 +168,9 @@ redefine the values: SLEEP is how long the program sleeps (in micro between output with curses and SDL_SLEEP is how long it sleeps (also in microseconds) for the SDL version.

      To change the SDL one to something like 15000 you can do:

      -
          make SDL_SLEEP=15000 clobber alt
      +
          make SDL_SLEEP=15000 clobber alt

      and to change the curses one to 40:

      -
          make SLEEP=40 clobber alt
      +
          make SLEEP=40 clobber alt

      Then use the program(s) in the same way.

      The different macros is because the curses version is already much slower and so it’s better to not tie the two values together. You may of course redefine both @@ -184,12 +185,12 @@ typically ctrl-c) as the program does not call endwin(). Using

      Original build:

      -
          make all
      +
          make all

      Original use:

      -
          ./thadgavin
      +
          ./thadgavin

      Original try:

      If you have SDL1 installed:

      -
          ./thadgavin_sdl
      +
          ./thadgavin_sdl

      Judges’ remarks:

      This entry is a nice play by the rules. It can use curses, if the SDL graphic library is not present, and is quite good at that, @@ -198,11 +199,11 @@ less than dazzling. We could not test this entry in DOS mode.

      Authors’ remarks:

      To use under DOS:

      Compile using DJGPP as follows:

      -
          gcc thadgavin.c -o thadgavin.exe -Wall -lm -O6 -mpentium -fomit-frame-pointer -ffast-math
      +
          gcc thadgavin.c -o thadgavin.exe -Wall -lm -O6 -mpentium -fomit-frame-pointer -ffast-math

      To use under Windows, X-Windows or macOS using the Simple DirectMedia Layer:

      -
          gcc -O6 -lpthread -g -o thadgavin thadgavin.c -lSDL -DSDL -lm
      +
          gcc -O6 -lpthread -g -o thadgavin thadgavin.c -lSDL -DSDL -lm

      To use curses:

      -
          gcc -O6 -lpthread -g -o thadgavin thadgavin.c -lncurses -lm
      +
          gcc -O6 -lpthread -g -o thadgavin thadgavin.c -lncurses -lm

      Warnings

      In gcc you might get the following warning:

          thadgavin.c.c:46: warning: passing arg 2 of `SDL_SetColors' from incompatible pointer type
      @@ -243,10 +244,10 @@ less than dazzling. We could not test this entry in DOS mode.

    • Makefile - entry Makefile
    • thadgavin.alt.c - alternative source
    • thadgavin.orig.c - original source
    • -
    • 2000_thadgavin.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2000_thadgavin.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2000/tomx/.entry.json b/2000/tomx/.entry.json index 56b7fdf85..8e98ba680 100644 --- a/2000/tomx/.entry.json +++ b/2000/tomx/.entry.json @@ -67,7 +67,7 @@ }, { "file_path" : "2000_tomx.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2000/tomx/index.html b/2000/tomx/index.html index ec350b3f6..c69cf56ae 100644 --- a/2000/tomx/index.html +++ b/2000/tomx/index.html @@ -88,6 +88,7 @@ @@ -141,22 +142,22 @@ Location: NL - Kingdom of the Netherlan

      To build:

      -
          make
      +
          make

      There is an alternate version that compiles mkentry.c. See alternate code.

      To use:

      -
          ./tomx
      +
          ./tomx

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Alternate code:

      This alternate code is based on the author’s remarks with a slight fix so that it will do what it once did, compile and run mkentry.c. You can use it in a similar way as tomx.c, both executing the source file and using it as a Makefile and running the code ends up running mkentry.

      Alternate build:

      -
          make alt
      +
          make alt

      Alternate try:

      -
          ./try.alt.sh
      +
          ./try.alt.sh

      Judges’ remarks:

      Polyglots have come and gone, but this was the first one we’d seen where one language used another to perform its tasks. An interesting @@ -249,10 +250,10 @@ or converting tabs to spaces can be disastrous.

    • try.alt.sh - how to run alternative code
    • try.sh - how to run
    • mkentry.c - IOCCC mkentry source from 1998
    • -
    • 2000_tomx.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2000_tomx.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2001/anonymous/.entry.json b/2001/anonymous/.entry.json index 189069594..39326ec31 100644 --- a/2001/anonymous/.entry.json +++ b/2001/anonymous/.entry.json @@ -59,7 +59,7 @@ }, { "file_path" : "2001_anonymous.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2001/anonymous/index.html b/2001/anonymous/index.html index f1cf41424..1ce0cfc8d 100644 --- a/2001/anonymous/index.html +++ b/2001/anonymous/index.html @@ -88,6 +88,7 @@ @@ -141,7 +142,7 @@ Location: GB - United Kingdom of Great

      To build:

      -
          make
      +
          make

      The programs that this program is supposed to act on, anonymous.ten.c and anonymous.bed.c, compiled with make, MUST be compiled as 32-bit ELF binaries. In the case that @@ -155,9 +156,9 @@ whatever your system will compile them as).

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 2001 anonymous bugs.

      To use:

      -
          ./anonymous x86_program
      +
          ./anonymous x86_program

      Try:

      -
          ./try.sh
      +
          ./try.sh
       
           ./anonymous anonymous.bed # if able to compile as a 32-bit (-m32) ELF binary

      NOTE: if the 32-bit version cannot be compiled the script will at least compile @@ -176,9 +177,9 @@ program or do something terribly wrong like slaughtering all the Imladris! :-) so please don’t do that :-(

      Alternate build:

      -
          make alt
      +
          make alt

      Alternate use:

      -
          ./anonymous.ten.alt
      +
          ./anonymous.ten.alt
       
           ./anonymous.bed.alt

      A 2023 note about the warning from the author:

      @@ -327,10 +328,10 @@ just C programs that generate C code as their output.

    • anonymous.bed.c - roll over song C source
    • anonymous.ten.c - green bottles song C source
    • try.sh - how to run
    • -
    • 2001_anonymous.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2001_anonymous.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2001/bellard/.entry.json b/2001/bellard/.entry.json index 2ad3fd1ae..d3be94faa 100644 --- a/2001/bellard/.entry.json +++ b/2001/bellard/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "2001_bellard.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2001/bellard/index.html b/2001/bellard/index.html index c06b0ce37..7cac65756 100644 --- a/2001/bellard/index.html +++ b/2001/bellard/index.html @@ -88,6 +88,7 @@ @@ -141,16 +142,16 @@ Location: FR - French Republic (

      To build:

      -
          make
      +
          make

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: INABIAF - please **DO NOT** fix
           STATUS: doesn't work with some platforms - please help us fix

      For more detailed information see 2001 bellard bugs.

      To use:

      -
          ./bellard file
      +
          ./bellard file

      Try:

      -
          ./bellard bellard.otccex.c
      +
          ./bellard bellard.otccex.c

      Judges’ remarks:

      <JUDGES_COMMENTS> :-)

      Author’s remarks:

      @@ -161,7 +162,7 @@ compilable by a standard ANSI C compiler. OTCC compiles, assembles, links and runs C code without the need of any other program.

      You can use it by typing:

      -
          ./bellard bellard.c [args]...
      +
          ./bellard bellard.c [args]...

      or by giving the C source to its standard input.

      args are given to the main() function of bellard.c (argv[0] is bellard.c).

      @@ -169,15 +170,15 @@ program.

      • Sample compilation and execution:
      -
          ./bellard bellard.otccex.c 10
      +
          ./bellard bellard.otccex.c 10
      • Self compilation:
      -
          ./bellard bellard.c bellard.otccex.c 10
      +
          ./bellard bellard.c bellard.otccex.c 10
      • Self compilation iterated…
      -
          ./bellard bellard.c bellard.c bellard.otccex.c 10
      +
          ./bellard bellard.c bellard.c bellard.otccex.c 10

      An alternate syntax is to use it as a script interpreter: you can put #!/usr/local/bin/otcc at the beginning of your C source if you installed otcc at this place.

      @@ -271,10 +272,10 @@ be used when you compile and link it.

    • bellard.orig.c - original source
    • bellard.otccex.c - example otcc source
    • otccelf.c - another example otcc source
    • -
    • 2001_bellard.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2001_bellard.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2001/cheong/.entry.json b/2001/cheong/.entry.json index 68d51685b..ee76b85b2 100644 --- a/2001/cheong/.entry.json +++ b/2001/cheong/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2001_cheong.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2001/cheong/index.html b/2001/cheong/index.html index 67f142072..7c43c0ecb 100644 --- a/2001/cheong/index.html +++ b/2001/cheong/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      To use:

      -
          ./cheong digits
      +
          ./cheong digits

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      Be sure to give an even number of digits in the argument. Add a leading 0 if needed.

      @@ -156,7 +157,7 @@ as all good programs should be! :-)

      Compile normally and run with one argument, an integer with 2n digits. Program will return the integer part of its square root (n-digits). For example,

      -
          $ cc -o cheong cheong.c
      +
          $ cc -o cheong cheong.c
           $ ./cheong 1234567890
           35136
           $ ./cheong 0200000000000000000000000000
      @@ -165,7 +166,7 @@ For example,

      Portability

      This program runs normally on any ANSI C compiler and is ASCII dependent.

      Strict compiling gives just one unavoidable warning:

      -
          gcc -ansi -Wall cheong.c
      +
          gcc -ansi -Wall cheong.c
           cheong.c:3: warning: third argument of `main' should probably be `char **'

      Obfuscation

      The main obfuscation is the algorithm used to calculate square roots, @@ -225,10 +226,10 @@ the program.

    • Makefile - entry Makefile
    • cheong.orig.c - original source
    • try.sh - how to run
    • -
    • 2001_cheong.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2001_cheong.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2001/coupard/.entry.json b/2001/coupard/.entry.json index 7a6f998c6..53d31417f 100644 --- a/2001/coupard/.entry.json +++ b/2001/coupard/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2001_coupard.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2001/coupard/index.html b/2001/coupard/index.html index a2ea7d537..84af8ba92 100644 --- a/2001/coupard/index.html +++ b/2001/coupard/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: ZZ - Unknown location

      To build:

      -
          make
      +
          make

      To use:

      -
          ./coupard
      +
          ./coupard

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      You may need to run this a few times to understand exactly what is being said. You might even need to look somewhere on your desktop, @@ -170,7 +171,7 @@ fixed-format audio interface that is supported by the majority of Unices that can do sound, as a lowest-denominator sound I/O interface.

      Program usage

      To listen to what the program says directly, invoke

      -
          ./coupard > /dev/audio
      +
          ./coupard > /dev/audio

      The program then speaks out something like

      The time is HH hours MM minutes SS seconds

      @@ -181,7 +182,7 @@ the speakers connected … :-)

      If you want to convert the audio output of the program into another audio format, you can pipe it to SoX for example (sox is the Swiss army knife of Unix audio tools). The command:

      -
          ./coupard | sox -c1 -r8000 -tub - -c2 -r44100 -twav test.wav
      +
          ./coupard | sox -c1 -r8000 -tub - -c2 -r44100 -twav test.wav

      converts the output of the program into a 44.1KHz stereo .WAV file and saves it into test.wav.

      The output format of the program is 8KHz, unsigned 8-bit samples.

      @@ -265,10 +266,10 @@ the size of the source code.

    • Makefile - entry Makefile
    • coupard.orig.c - original source
    • try.sh - how to run
    • -
    • 2001_coupard.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2001_coupard.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2001/ctk/.entry.json b/2001/ctk/.entry.json index 61b9ae630..48d78b87b 100644 --- a/2001/ctk/.entry.json +++ b/2001/ctk/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2001_ctk.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2001/ctk/index.html b/2001/ctk/index.html index e02396886..439096d0d 100644 --- a/2001/ctk/index.html +++ b/2001/ctk/index.html @@ -88,6 +88,7 @@ @@ -141,18 +142,18 @@ Location: ZZ - Unknown location

      To build:

      -
          make
      +
          make

      There is an alternate version with vi(m) key movements. See alternate code below.

      To use:

      -
          ./ctk
      +
          ./ctk

      Alternate code:

      This alternate version adds to the movement keys l for right, h for left and k for straight.

      Alternate build:

      -
          make alt
      +
          make alt

      Alternate use:

      -
          ./ctk.alt
      +
          ./ctk.alt

      Judges’ remarks:

      No matter how careful you are, this guy eventually crashes. Most people can make at least one successful road trip without crashing.

      @@ -198,10 +199,10 @@ font and the window maximized vertically!).

    • Makefile - entry Makefile
    • ctk.alt.c - alternative source
    • ctk.orig.c - original source
    • -
    • 2001_ctk.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2001_ctk.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2001/dgbeards/.entry.json b/2001/dgbeards/.entry.json index f1ed9b924..b16c40526 100644 --- a/2001/dgbeards/.entry.json +++ b/2001/dgbeards/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2001_dgbeards.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2001/dgbeards/index.html b/2001/dgbeards/index.html index 2bed20ec7..3cf923214 100644 --- a/2001/dgbeards/index.html +++ b/2001/dgbeards/index.html @@ -88,6 +88,7 @@ @@ -141,7 +142,7 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      There is an alternate version based on the author’s remarks. See alternate code below for more details.

      Bugs and (Mis)features:

      @@ -149,16 +150,16 @@ code below for more details.

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 2001 dgbeards bugs.

      To use:

      -
          ./dgbeards
      +
          ./dgbeards

      Alternate code:

      The author provided a way to speed it up a bit and also how to make it so it doesn’t crash on losing. The idea that it crashes on losing was too good to lose but this alternate version has the former change. If you wish to remove this you can look at the author’s remarks and make the change.

      Alternate build:

      -
          make alt
      +
          make alt

      Alternate use:

      -
          ./dgbeards.alt
      +
          ./dgbeards.alt

      Try:

      See if you can figure out how to make the computer always lose (‘win’ :-) ). It’s a very simple thing to do. Read the author’s remarks for clues.

      @@ -346,10 +347,10 @@ the > to a >= and the bug will be gone.

    • Makefile - entry Makefile
    • dgbeards.alt.c - alternative source
    • dgbeards.orig.c - original source
    • -
    • 2001_dgbeards.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2001_dgbeards.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2001/herrmann1/.entry.json b/2001/herrmann1/.entry.json index bfdfe713e..cdef7d635 100644 --- a/2001/herrmann1/.entry.json +++ b/2001/herrmann1/.entry.json @@ -75,7 +75,7 @@ }, { "file_path" : "2001_herrmann1.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2001/herrmann1/index.html b/2001/herrmann1/index.html index 1482bcdae..8630c1121 100644 --- a/2001/herrmann1/index.html +++ b/2001/herrmann1/index.html @@ -88,6 +88,7 @@ @@ -141,19 +142,19 @@ Location: DE - Federal Republic of Germ

      To build:

      -
          make
      +
          make

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: missing files - please provide them
           STATUS: known bug - please help us fix

      For more detailed information see 2001 herrmann1 bugs.

      To use:

      -
          ./herrmann1.sh 'prg=file'
      +
          ./herrmann1.sh 'prg=file'

      NOTE: this entry seems to rely on older versions of gcc for the compilation stage and as such if you wish to see that part like it was designed you will need an older compiler perhaps gcc 2.95.

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      There are some clear hints in the source code as to the purpose of this program. Perhaps the only way to figure out what is @@ -192,7 +193,7 @@ terminal!

      For the impatient

      The info files herrmann1.turing and herrmann1.gcd are sample programs for the Turing machine. For example, type

      -
          ./herrmann1.sh 'prg=herrmann1.times2'
      +
          ./herrmann1.sh 'prg=herrmann1.times2'

      and watch the animated Turing machine multiply 8 by two (in unary representation). Here’s a screen shot during compilation:

          /*
      @@ -217,7 +218,7 @@ result.)

      In the previous example, the Turing machine started on the default tape of the program times2.turing. To provide your own tape, type (for example)

      -
          ./herrmann1 prg=times2.turing tape="O O O I I I O O O"
      +
          ./herrmann1 prg=times2.turing tape="O O O I I I O O O"

      (The Os and Is are letters, not digits.) You might prefer to provide only a finite portion of the tape, like I did above. In this case, the remainder of the tape is filled with Os. ;-)

      @@ -234,7 +235,7 @@ better. Simply try some out.

      number in unary representation. (That is, a row of I’s is expected, and one more I is appended to the row.) Let’s call it plus1.turing. Here’s what it could look like:

      -
          /* Search beginning of number. */
      +
          /* Search beginning of number. */
           #define start_O O, right, start
           /* Number found. Move one step to the left. */
           #define start_I I, left, st2
      @@ -251,21 +252,21 @@ line defining st2_I has been left out.)
       - The order of the lines is irrelevant.
       - You may use C-style comments. (Would you have guessed it?)

      Now, the program can be used with

      -
          ./herrmann1.sh 'prg=plus1.turing' 'tape="I I I"'
      +
          ./herrmann1.sh 'prg=plus1.turing' 'tape="I I I"'

      But what happens if no tape is provided? Up to now, the Turing machine would start on an empty tape (that is, a tape filled with Os). For many programs, this doesn’t make much sense (as is the case for plus1.turing). So you might want to provide a default tape by adding a line like

      -
          #define tape O O O O O I I I I
      +
          #define tape O O O O O I I I I

      to your program.

      Debugging

      When writing long programs, the most common errors are to forget to define a state or to misspell one. Let’s assume you forgot the line

      -
          #define start_I I, left, st2
      +
          #define start_I I, left, st2

      Remove it and type

      -
          ./herrmann1 'prg=plus1.turing'
      +
          ./herrmann1 'prg=plus1.turing'

      The output will be

      Undefined state start.

      Tape:

      @@ -432,10 +433,10 @@ script.

    • herrmann1.times2 - turning program as c defines
    • plus1.turing - turning program as c defines
    • try.sh - how to run
    • -
    • 2001_herrmann1.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2001_herrmann1.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2001/herrmann2/.entry.json b/2001/herrmann2/.entry.json index 9995d7783..95eeebdc5 100644 --- a/2001/herrmann2/.entry.json +++ b/2001/herrmann2/.entry.json @@ -67,7 +67,7 @@ }, { "file_path" : "2001_herrmann2.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2001/herrmann2/index.html b/2001/herrmann2/index.html index a5e0a64f2..98df430d3 100644 --- a/2001/herrmann2/index.html +++ b/2001/herrmann2/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: DE - Federal Republic of Germ

      To build:

      -
          make
      +
          make

      To use:

      -
          ./herrmann2
      +
          ./herrmann2

      Try:

      -
          ./try.sh
      +
          ./try.sh

      If you use vi(m) you can see a pattern in herrmann2.cup and [herrmann2.ioccc][(herrmann2.ioccc]) by say:

          /[pon]\
      @@ -177,7 +178,7 @@ to about 9k.

      3D picture, constructed of random characters (with ASCII code between 32 and 126). For example, type

      -
          ./herrmann2 < herrmann2.ioccc
      +
          ./herrmann2 < herrmann2.ioccc
      1. If you want to control the characters used in the output (for example if your picture is to consist only of digits), pass them @@ -186,7 +187,7 @@ new random character, it will take the next one from the argument. When it arrives at the end of the argument, it will start over at the beginning. Example:
      -
          ./herrmann2 "234 84 045 5 6765 7487 65190 84 656 254 12 43931 818 0 6542 \
      +
          ./herrmann2 "234 84 045 5 6765 7487 65190 84 656 254 12 43931 818 0 6542 \
           341 45 567 76967 7244 606 976567 895 81898 095 68678 1843 4650547 \
           565980691 389 04974" < herrmann2.ioccc

      Some hints to get better results

      @@ -216,7 +217,7 @@ get it (if you lost it or if you don’t have it already) is to use the program itself on the right picture and with the right argument:

    -
        ./herrmann2 \
    +
        ./herrmann2 \
         'char*d,A[9876];e;b;*ad,a,c;  tw,ndr,T; wri; ;*h; _,ar  ;on;'\
         ' ;l ;i(V)man,n    {-!har  ;   =Aadre(0,&e,o||n -- +,o4,=9,l=b=8,'\
         '!( te-*Aim)|(0~l),srand  (l),,!A,d=,b))&&+((A + te-A(&(*)=+ +95>'\
    @@ -267,7 +268,7 @@ only needs a logarithmic recursion depth! (Find out how this
     works.)

  • When still in doubt about how to judge this program, type

  • -
        ./herrmann2 < herrmann2.cup
    +
        ./herrmann2 < herrmann2.cup

    and let the result inspire you. ;-)

    Requirements to the compiler / Compatibility

    Secondary files

      +
    • 2001_herrmann2.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2001/index.html b/2001/index.html index 2b6b4541a..33781b19c 100644 --- a/2001/index.html +++ b/2001/index.html @@ -86,6 +86,7 @@ diff --git a/2001/jason/.entry.json b/2001/jason/.entry.json index 6c4ca8f3c..e8fe5c8a9 100644 --- a/2001/jason/.entry.json +++ b/2001/jason/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "2001_jason.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2001/jason/index.html b/2001/jason/index.html index 1f57dd3dc..3a0234903 100644 --- a/2001/jason/index.html +++ b/2001/jason/index.html @@ -88,6 +88,7 @@ @@ -141,9 +142,9 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      To use:

      -
          ./jason
      +
          ./jason

      Judges’ remarks:

      You are in a maze of twisty little passages, all alike.

      The really amazing part of this is that it’s a text adventure, and there’s @@ -160,7 +161,7 @@ cause problems. Go ahead, try it! :-)

      Author’s remarks:

      TED Shroyer came up with the idea that made it possible to hide all the text. Thanks, TED. You won. :)

      -
          cc -o jason jason.c
      +
          cc -o jason jason.c
           ./jason
           you are in a maze of twisty little passages
           caves lead:  left forward back
      @@ -250,10 +251,10 @@ mapping.

    • jason.c - entry source
    • Makefile - entry Makefile
    • jason.orig.c - original source
    • -
    • 2001_jason.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2001_jason.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2001/kev/.entry.json b/2001/kev/.entry.json index 935c5107c..d572aa617 100644 --- a/2001/kev/.entry.json +++ b/2001/kev/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2001_kev.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2001/kev/index.html b/2001/kev/index.html index 5a0ed82db..270a642f4 100644 --- a/2001/kev/index.html +++ b/2001/kev/index.html @@ -88,6 +88,7 @@ @@ -141,7 +142,7 @@ Location: AU - Commonwealth of Australi

      To build:

      -
          make
      +
          make

      There is another version which lets you use the arrow keys rather than the more awkward , and . keys. See alternate code below.

      Bugs and (Mis)features:

      @@ -149,35 +150,35 @@ awkward , and . keys. See al
          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 2001 kev bugs.

      To use:

      -
          ./kev # in one terminal
      +
          ./kev # in one terminal
       
           ./kev hostname # in another terminal

      NOTE: each player’s paddle is at the bottom and the opponent at the top.

      Try:

      -
          ./kev                   # in one terminal
      +
          ./kev                   # in one terminal
       
           ./kev localhost         # in another terminal on the same host

      If you need to change the speed you can reconfigure it like (say for over a network and not the same host):

      -
          make clobber SPEED=50 all # original default value which is very fast
      +
          make clobber SPEED=50 all # original default value which is very fast

      If you wish to change the port you can do so like:

      -
          make clobber PORT=3773 all
      +
          make clobber PORT=3773 all

      Of course if you want a port < 1024 you’ll need to be root so don’t do that.

      And if you know what you’re doing you can redefine the call to the socket(2) syscall with the l_ macro, changing the L variable like one would PORT. Of course you can do more than one at the same time. For instance to change the speed and port:

      -
          make clobber SPEED=512 PORT=3773 all
      +
          make clobber SPEED=512 PORT=3773 all

      If you have xterm try on one system:

      -
          xterm -geometry 80x40 -fg green -bg black -fn 9x15bold -e ./kev &
      +
          xterm -geometry 80x40 -fg green -bg black -fn 9x15bold -e ./kev &

      and then the other, the client system:

      -
          xterm -geometry 80x40 -fg green -bg black -fn 9x15bold -e ./kev localhost&
      +
          xterm -geometry 80x40 -fg green -bg black -fn 9x15bold -e ./kev localhost&

      This might look nicer than just the terminal itself.

      Alternate code:

      This version allows you to use arrow keys on the keyboard rather than the more awkward , and . keys to move your paddle.

      Alternate build:

      -
          make alt
      +
          make alt

      You can reconfigure the macros described above in the same way.

      Alternate use:

      Use kev.alt as you would kev.

      @@ -185,9 +186,9 @@ awkward , and . keys to move your paddle.

      terminal?

      Alternate try:

      If you have xterm try on one system:

      -
          xterm -geometry 80x40 -fg green -bg black -fn 9x15bold -e ./kev.alt &
      +
          xterm -geometry 80x40 -fg green -bg black -fn 9x15bold -e ./kev.alt &

      and then the other, the client system:

      -
          xterm -geometry 80x40 -fg green -bg black -fn 9x15bold -e ./kev.alt localhost&
      +
          xterm -geometry 80x40 -fg green -bg black -fn 9x15bold -e ./kev.alt localhost&

      Judges’ remarks:

      Continuing with this year’s “retro game” theme, this is another old game; arguably, one of the oldest. Requires a functioning network, and curses.

      @@ -212,16 +213,16 @@ speeds. Each player has a paddle to hit the ball, and you get points for getting the ball past your opponent’s paddle. It’s pretty fun! :)

      RUNNING

      Run the server first without any command line arguments, i.e.

      -
          ./kev
      +
          ./kev

      Then run the client with a single command line argument which is the name of the machine running the server, e.g.

      -
          ./kev localhost
      +
          ./kev localhost

      Make sure that the terminals on both ends are the same size. Also, the TCP port number (by default 5455) specified in the Makefile mustn’t be blocked by a firewall.

      Here’s a good quick example to see it in action on your own machine, assuming you have Xwindows:

      -
          xterm -geometry 80x40 -fg green -bg black -fn 9x15bold -e ./kev &
      +
          xterm -geometry 80x40 -fg green -bg black -fn 9x15bold -e ./kev &
           xterm -geometry 80x40 -fg green -bg black -fn 9x15bold -e ./kev localhost&

      PLAYING

      Your paddle is the one at the bottom of the screen, your opponent @@ -326,10 +327,10 @@ though.

    • Makefile - entry Makefile
    • kev.alt.c - alternative source
    • kev.orig.c - original source
    • -
    • 2001_kev.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2001_kev.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2001/ollinger/.entry.json b/2001/ollinger/.entry.json index ad583ef3c..d38f685fd 100644 --- a/2001/ollinger/.entry.json +++ b/2001/ollinger/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2001_ollinger.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2001/ollinger/index.html b/2001/ollinger/index.html index 8ebe174a3..ab77345ec 100644 --- a/2001/ollinger/index.html +++ b/2001/ollinger/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: FR - French Republic (

      To build:

      -
          make
      +
          make

      To use:

      -
          ./ollinger integer
      +
          ./ollinger integer

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Try the above command in a large window, say 200 chars wide and 100 high (200x100) with a tiny font.

      Judges’ remarks:

      @@ -238,10 +239,10 @@ guarantee a constant time.

    • Makefile - entry Makefile
    • ollinger.orig.c - original source
    • try.sh - how to run
    • -
    • 2001_ollinger.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2001_ollinger.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2001/rosten/.entry.json b/2001/rosten/.entry.json index db9fdb7f7..9cc7eed6b 100644 --- a/2001/rosten/.entry.json +++ b/2001/rosten/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "2001_rosten.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2001/rosten/index.html b/2001/rosten/index.html index 84b1b7951..8f03da456 100644 --- a/2001/rosten/index.html +++ b/2001/rosten/index.html @@ -88,6 +88,7 @@ @@ -141,21 +142,21 @@ Location: GB - United Kingdom of Great

      To build:

      -
          make
      +
          make

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: missing files - please provide them

      For more detailed information see 2001 rosten bugs.

      To use:

      -
          ./rosten [number]
      +
          ./rosten [number]

      WARNING: this will mess with your mouse and can make it hard to quit the program. Use at your own risk.

      NOTE: number is floating point.

      Try:

      -
          ./rosten 1.03
      +
          ./rosten 1.03
           ./rosten 1.00

      For some abuse, try:

      -
          ./rosten 0.99
      +
          ./rosten 0.99

      Judges’ remarks:

      Friction can be your friend if it does not rub you (or your mouse cursor) in the wrong way. :-)

      @@ -163,7 +164,7 @@ cursor) in the wrong way. :-)

      NAME

      rosten - make the mouse act as if it has been greased

      SYNOPSIS

      -
          ./rosten [greasiness]
      +
          ./rosten [greasiness]

      DESCRIPTION

      This program is designed primarily to make your X windows interface more obfuscated. Try doing something mouse driven (such as using a mouse @@ -183,7 +184,7 @@ required is a large desk and some good grease.

      portable, but compile with almost no warnings on most of the compilers tested. It’s a kind of shame that none of the compilers do anything like this:

      -
          $ make greasymouse
      +
          $ make greasymouse
           cc greasymouse.c -o greasymouse -lX11
           greasymouse.c:30: This macro should have more text and spaces in it
           greasymouse.c:32: This is a really stupid way to perform this operation
      @@ -213,7 +214,7 @@ would never do a thing like that: I just haven’t used them in
       the way it’s used to.

      The MIPS compiler suggests an == instead of an = in expressions such as:

      -
          &&(a=b)
      +
          &&(a=b)

      but its suggestions would break my program. It also reckons that r() has no prototype.

      Giving the -pedantic option to the MIPS compiler causes it to generate @@ -251,10 +252,10 @@ beginning of the line wrecks the layout but makes it compile.

    • rosten.c - entry source
    • Makefile - entry Makefile
    • rosten.orig.c - original source
    • -
    • 2001_rosten.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2001_rosten.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2001/schweikh/.entry.json b/2001/schweikh/.entry.json index e32031f1d..6cf5a584e 100644 --- a/2001/schweikh/.entry.json +++ b/2001/schweikh/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2001_schweikh.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2001/schweikh/index.html b/2001/schweikh/index.html index 999e36d9e..cc25b94f6 100644 --- a/2001/schweikh/index.html +++ b/2001/schweikh/index.html @@ -88,6 +88,7 @@ @@ -141,13 +142,13 @@ Location: DE - Federal Republic of Germ

      To build:

      -
          make
      +
          make

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 2001 schweikh bugs.

      To use:

      -
          ./schweikh string string2
      +
          ./schweikh string string2

      This program will very likely crash or do something else if you do not give it two args.

      Note also that the glob pattern must match the whole string. See the author’s @@ -157,7 +158,7 @@ comments for details and a workaround.

      The Jargon File:

          That's not a bug, that's a feature.

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      Do you get the pattern here?

      Author’s remarks:

      @@ -170,7 +171,7 @@ the whole string, so you may want to use * at the beginning and end pattern if you are looking for something in the middle.

      You can use it for your shell scripting needs similar to a silent grep (and without stdout redirected to /dev/null):

      -
          if prog "${VARIABLE}" '<glob>'; then
      +
          if prog "${VARIABLE}" '<glob>'; then
               echo VARIABLE matches
           else
               echo no match
      @@ -229,10 +230,10 @@ try again. For extra credit implement character classes like [a-z].
       
    • Makefile - entry Makefile
    • schweikh.orig.c - original source
    • try.sh - how to run
    • -
    • 2001_schweikh.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2001_schweikh.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2001/westley/.entry.json b/2001/westley/.entry.json index ba2cb0c93..71f132e5f 100644 --- a/2001/westley/.entry.json +++ b/2001/westley/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "2001_westley.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2001/westley/index.html b/2001/westley/index.html index 03e45fead..87529edd5 100644 --- a/2001/westley/index.html +++ b/2001/westley/index.html @@ -88,6 +88,7 @@ @@ -141,7 +142,7 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      There are two additional programs based on the author’s remarks and the original version, provided as alternate code as it might be less portable. See sorted code, punch card code and alternate @@ -153,14 +154,14 @@ code below.

      STATUS: main() has only one arg - try and make it have 2 or 3

    For more detailed information see 2001 westley bugs.

    To use:

    -
        ./westley 2>/dev/null
    +
        ./westley 2>/dev/null
         # enter some input, terminate with EOF
     
         echo foo | ./westley 2>/dev/null
     
         ./westley < westley.c 2>/dev/null

    Try:

    -
        ./try.sh
    +
        ./try.sh

    Sorted code:

    The author stated that one can sort (ignoring leading blanks i.e. sort -b) the code by line and it will always sort the order of the input.

    @@ -171,12 +172,12 @@ code by line and it will always sort the order of the input.

    westley.punch.c code is specifically so that Westley can punch everyone in the face! :-) This is also compiled by default.

    Punch card try:

    -
        echo 'Brian Westley does it again!' | ./westley.punch 2>/dev/null
    +
        echo 'Brian Westley does it again!' | ./westley.punch 2>/dev/null

    Alternate code:

    An alternate version of this entry, westley.alt.c, is provided. This alternate code might be less portable.

    Alternate build:

    -
        make alt
    +
        make alt

    Alternate use:

    Use westley.alt as you would westley above.

    Judges’ remarks:

    @@ -195,7 +196,7 @@ were becoming obsolete just as C was becoming more popular*; this is rather unfortunate, because C has an advantage over many other languages when it comes to punch cards - C programs can be written to be “drop proof”.

    Consider the following C program:

    -
        main(){a();b();c();}
    +
        main(){a();b();c();}
         a(){printf("A");}
         b(){printf("B");}
         c(){printf("C");}
    @@ -204,13 +205,13 @@ lines are in. If you punch it on cards (one line of code per card, naturally) and drop them, you don’t need to put them in any particular order**; it will always produce ABC as output.

    You can also use global variables:

    -
        char *greet = "Hello, world!";
    +
        char *greet = "Hello, world!";
         char *greet; main(){puts(greet);}

    It would be trivial to write an entire C program that is “drop proof” using the above techniques; surprisingly, it’s possible to write a program that will always compile but behave differently depending on the line order:

    -
        test(a,b){return a;}
    +
        test(a,b){return a;}
         #define test(a,b) test(b,a)
         main(){if (test(0,1)) printf("T"); else printf("F");}

    This program will print out T if the #define statement @@ -218,7 +219,7 @@ falls between the declaration of test() and its use in main(), otherwise it will print out F. Furthermore, you can use the same call to test() repeatedly in different lines to return different values:

    -
        #define test(x,y) test(y,x)
    +
        #define test(x,y) test(y,x)
         main(){int i=0;a(&i);b(&i);c(&i);d(&i);printf("%d\n",i);}
         a(i)int*i;{if (test(0,1)) *i += 1;}
         b(i)int*i;{if (test(0,1)) *i += 2;}
    @@ -314,10 +315,10 @@ all legal C.

  • westley.alt.c - alternative source
  • westley.orig.c - original source
  • try.sh - how to run
  • -
  • 2001_westley.tar.bz2 - download entry tarball
  • Secondary files

      +
    • 2001_westley.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2001/williams/.entry.json b/2001/williams/.entry.json index 3fc65716c..a3c855def 100644 --- a/2001/williams/.entry.json +++ b/2001/williams/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "2001_williams.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2001/williams/index.html b/2001/williams/index.html index 89f94e826..57ddad413 100644 --- a/2001/williams/index.html +++ b/2001/williams/index.html @@ -88,6 +88,7 @@ @@ -141,13 +142,13 @@ Location: ZZ - Unknown location

      To build:

      -
          make
      +
          make

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: known bug - please help us fix

      For more detailed information see 2001 williams bugs.

      To use:

      -
          ./williams
      +
          ./williams

      Judges’ remarks:

      A strange game. The only winning move is not to play. No, really; you can’t @@ -202,10 +203,10 @@ The purpose of A/(x|1) is probably obvious, but what does (x|

    • williams.c - entry source
    • Makefile - entry Makefile
    • williams.orig.c - original source
    • -
    • 2001_williams.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2001_williams.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2004/anonymous/.entry.json b/2004/anonymous/.entry.json index 444a4fbb1..049079df0 100644 --- a/2004/anonymous/.entry.json +++ b/2004/anonymous/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2004_anonymous.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2004/anonymous/index.html b/2004/anonymous/index.html index 45ce9b587..c032bff73 100644 --- a/2004/anonymous/index.html +++ b/2004/anonymous/index.html @@ -88,6 +88,7 @@ @@ -141,9 +142,9 @@ Location: SG - Republic of Singapore

      To build:

      -
          make
      +
          make

      To use:

      -
          ./anonymous 'foo' > bar.pgm
      +
          ./anonymous 'foo' > bar.pgm

      Now open the output using your favourite pgm viewer. If you don’t have a pgm viewer then we suggest the netpbm @@ -151,7 +152,7 @@ toolkit to convert the image to a graphics format that you can view. Most graphical web browsers can display PNG or JPEG images.

      Try:

      -
          ./try.sh
      +
          ./try.sh

      NOTE: technically the text is supposed to be in all lower case but the script does use some upper case letters for demonstration purposes.

      Judges’ remarks:

      @@ -220,7 +221,7 @@ in lower case.

      The following command thus writes a rendering of the Ring inscription to the file ring.pgm:

      -
          ./anonymous "ash nazg durhbatuluhk, ash nazg gimbatul, \
      +
          ./anonymous "ash nazg durhbatuluhk, ash nazg gimbatul, \
               ash nazg thrakatuluhk, agh burzhumh-ishi krimpatul." >ring.pgm

      The source code assumes the ASCII character set; also, due to space constraints, the program uses rather inefficient algorithms, so it may @@ -258,10 +259,10 @@ included in the font.

    • Makefile - entry Makefile
    • anonymous.orig.c - original source
    • try.sh - how to run
    • -
    • 2004_anonymous.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2004_anonymous.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2004/arachnid/.entry.json b/2004/arachnid/.entry.json index 07aebc403..904958f1d 100644 --- a/2004/arachnid/.entry.json +++ b/2004/arachnid/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "2004_arachnid.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2004/arachnid/index.html b/2004/arachnid/index.html index 2da0425cb..5e98e2a47 100644 --- a/2004/arachnid/index.html +++ b/2004/arachnid/index.html @@ -88,6 +88,7 @@ @@ -141,16 +142,16 @@ Location: NZ - New Zealand

      To build:

      -
          make
      +
          make

      There is an alt version for rogue players, vi(m) users and Dvorak typist (i.e. those who need hljk for moving left, right, down and up. See alternate code below.

      To use:

      -
          ./arachnid [mazefile]
      +
          ./arachnid [mazefile]

      Try:

      -
          ./arachnid arachnid.txt
      +
          ./arachnid arachnid.txt

      and then try:

      -
          ./arachnid arachnid.c
      +
          ./arachnid arachnid.c

      Navigation is through the use of the wasd inverted-T formation on QWERTY keyboards. Rogue players, vi users, and Dvorak typists are invited to get lost (or use the alt version)!

      @@ -158,7 +159,7 @@ invited to get lost (or use the alt version)!

      If you don’t like the wasd movement keys you can try the vi(m) movement keys instead.

      Alternate build:

      -
          make alt
      +
          make alt

      Alternate use:

      Use arachnid.alt as you would arachnid above.

      Judges’ remarks:

      @@ -181,7 +182,7 @@ Another maze, arachnid.txt has also been provided. Th 255x255, about the largest maze supported, for the particularly insane maze explorers out there.

      Usage

      -
          ./arachnid [mazefile]
      +
          ./arachnid [mazefile]

      You can explore the maze using the w,a,s, and d keys.

      To build:

      -
          make
      +
          make

      NOTE: We FORCE the use of -O0 even if someone overrides it because this entry will not work with it enabled.

      To use:

      -
          ./burley
      +
          ./burley

      NOTE: you need to input a number first. See judges’ remarks below for information on how to play.

      Judges’ remarks:

      @@ -213,10 +214,10 @@ statements such as if, for, do, whi
    • burley.c - entry source
    • Makefile - entry Makefile
    • burley.orig.c - original source
    • -
    • 2004_burley.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2004_burley.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2004/gavare/.entry.json b/2004/gavare/.entry.json index 00914a8ef..0a952a9c5 100644 --- a/2004/gavare/.entry.json +++ b/2004/gavare/.entry.json @@ -59,7 +59,7 @@ }, { "file_path" : "2004_gavare.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2004/gavare/index.html b/2004/gavare/index.html index 01d905193..79c7d9ed2 100644 --- a/2004/gavare/index.html +++ b/2004/gavare/index.html @@ -88,6 +88,7 @@ @@ -141,18 +142,18 @@ Location: SE - Kingdom of Sweden (

      To build:

      -
          make
      +
          make

      There are three alternate versions; see alternate code below for more details.

      To use:

      -
          ./gavare > ioccc_ray.ppm
      +
          ./gavare > ioccc_ray.ppm

      Open ioccc_ray.ppm with a viewer capable of viewing PPM files. Alternatively, if you have ImageMagick installed, you can convert it to a jpeg:

      -
          convert ioccc_ray.ppm ioccc_ray.jpg
      +
          convert ioccc_ray.ppm ioccc_ray.jpg

      and then view ioccc_ray.jpg in a graphics viewer, editor or web browser.

      Try:

      If you have xv(1) you can do:

      -
          ./gavare | xv -
      +
          ./gavare | xv -

      to not worry about writing it to a file and just viewing the image it creates.

      Alternate code:

      The alt code gavare.alt.c allows you to change the size of the @@ -165,18 +166,18 @@ was used during development, which we have included in the file on stdout which theoretically should work in Windows.

      Alternate build:

      To build the configurable and unobfuscated versions:

      -
          make alt
      +
          make alt

      To change the default size from 1024x768 try:

      -
          make clobber XX=640 YY=480 alt
      +
          make clobber XX=640 YY=480 alt

      You might also wish to change the anti-alias setting:

      -
          make clobber AA=2 alt
      +
          make clobber AA=2 alt

      You may of course combine the above two commands and give any combination you wish.

      This is not possible with the author’s version but it is with the alt versions (Windows - see below - and otherwise).

      As the Windows version will not compile on most viewers’ systems we do not build it with make alt; instead try:

      -
          make alt2
      +
          make alt2

      Alternate use:

      Use gavare.alt, gavare.r3 or gavare.alt2 as you would gavare above.

      Judges’ remarks:

      @@ -247,10 +248,10 @@ with no reserved words, and our world will be a better place.

    • gavare.alt.c - alternative source
    • gavare.orig.c - original source
    • gavare.r3.c - ray tracer used during development
    • -
    • 2004_gavare.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2004_gavare.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2004/gavin/.entry.json b/2004/gavin/.entry.json index b5f2a05d7..af16c354a 100644 --- a/2004/gavin/.entry.json +++ b/2004/gavin/.entry.json @@ -91,7 +91,7 @@ }, { "file_path" : "2004_gavin.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2004/gavin/gavin.html b/2004/gavin/gavin.html index 18bb53a29..bc7b8c6f9 100644 --- a/2004/gavin/gavin.html +++ b/2004/gavin/gavin.html @@ -83,6 +83,7 @@ diff --git a/2004/gavin/index.html b/2004/gavin/index.html index 287642e79..a05d50c12 100644 --- a/2004/gavin/index.html +++ b/2004/gavin/index.html @@ -88,6 +88,7 @@ @@ -141,7 +142,7 @@ Location: ZZ - Unknown location

      To build:

      -
          make
      +
          make

      There is an alternate version for those who wish to use QEMU rather than having to reboot and rely on having a floppy drive (if you even remember what those are :-) ) etc. See alternate code below.

      @@ -152,31 +153,31 @@ to reboot and rely on having a floppy drive (if you even remember what those are STATUS: INABIAF - please **DO NOT** fix

    For more detailed information see 2004 gavin bugs.

    To use:

    -
        ./gavin
    +
        ./gavin

    Try:

    To enjoy the results (on a Linux/x86 machine) with a floppy drive (remember those? We do!):

    -
        su
    +
        su

    Make a floppy with an ext2 filesystem (mke2fs /dev/fd0 replacing fd0 with whatever the floppy device is!), mount it under /mnt/floppy and then:

    -
        cp kernel fs.tar lilo.conf boot.b /mnt/floppy
    +
        cp kernel fs.tar lilo.conf boot.b /mnt/floppy

    NOTE: If the version of your lilo is not 21.4, use the appropriate boot.b file.

    NOTE: If your floppy drive is not /dev/fd0, edit lilo.conf appropriately.

    -
        lilo -C /mnt/floppy/lilo.conf
    +
        lilo -C /mnt/floppy/lilo.conf

    Boot from the floppy on an x86 machine with a PS/2 keyboard and mouse. Move the window away from the corner.

    -
        vi gavin.c
    +
        vi gavin.c

    Scroll up and down the file with up-arrow and down-arrow.

    -
        sh
    +
        sh

    You can have several shell windows:

    -
        vi README.md
    +
        vi README.md
         ./prim

    Press and hold any key.

    Alternate code:

    This version’s main difference is that the macro K is redefined to 1 so that you can use it with QEMU.

    Alternate build:

    -
        make alt
    +
        make alt

    Alternate use:

    The use is mostly the same as gavin except that one initially executes gavin.alt (which make alt will do) and one will have to use QEMU instead. The files @@ -290,10 +291,10 @@ at which a Linux bootloader loads an x86 kernel image).

  • img/fs.tar - tar of root file system
  • img/kernel - Linux kernel x86 boot executable zImage
  • prim - prime number printing program
  • -
  • 2004_gavin.tar.bz2 - download entry tarball
  • Secondary files

      +
    • 2004_gavin.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2004/hibachi/.entry.json b/2004/hibachi/.entry.json index 254a5ade5..8e0f50b54 100644 --- a/2004/hibachi/.entry.json +++ b/2004/hibachi/.entry.json @@ -139,7 +139,7 @@ }, { "file_path" : "2004_hibachi.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2004/hibachi/index.html b/2004/hibachi/index.html index 06b93c1e9..f7996dab1 100644 --- a/2004/hibachi/index.html +++ b/2004/hibachi/index.html @@ -88,6 +88,7 @@ @@ -141,9 +142,9 @@ Location: CA - Canada

      To build:

      -
          make
      +
          make

      To use:

      -
          cd build; ./hibachi-start.sh &
      +
          cd build; ./hibachi-start.sh &

      Then use your web browser to visit http://localhost:8008/. When you’re finished make sure to kill hibachi.

      NOTE: you must be in the build directory when running hibachi-start.sh for @@ -163,7 +164,7 @@ so the file does not exist here.

      There is a hibachi.tgz file (NOTE: this file was removed by the judges after extraction) that unpacks several support files and a subdirectory tree containing the documentation and examples. It can be viewed by:

      -
          tar -zxf hibachi.tgz
      +
          tar -zxf hibachi.tgz
           lynx hibachi/localhost/index.html

      Or once Hibachi is running, use a web browser (preferably one that supports images and JavaScript, to view the documentation and try @@ -171,11 +172,11 @@ some of the CGI examples) to visit: http://localhost:8008/.

      Building

      To build just the executable:

      For Cygwin, FreeBSD, Linux (newer), Mac OS X:

      -
          gcc -o hibachi hibachi.c
      +
          gcc -o hibachi hibachi.c

      For Linux (older):

      -
          gcc -DSHUT_WR=1 -o hibachi hibachi.c
      +
          gcc -DSHUT_WR=1 -o hibachi hibachi.c

      For SunOS:

      -
          gcc -o hibachi hibachi.c -lnsl -lsocket
      +
          gcc -o hibachi hibachi.c -lnsl -lsocket

      Since some systems place socket and network functions into other libraries, a GNU autoconf configure script has been @@ -185,12 +186,12 @@ examples. In which case the preferred build commands are:

          ./configure [--enable-port=number]
           make

      To start the server on the default port (8008):

      -
          cd build;
      +
          cd build;
           ./hibachi-start.sh &

      To test the server:

      -
          lynx http://localhost:8008/
      +
          lynx http://localhost:8008/

      To stop the server:

      -
          kill %1
      +
          kill %1

      Features

      Secondary files

        +
      • 2004_hibachi.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/2004/hoyle/.entry.json b/2004/hoyle/.entry.json index 116097920..de616af84 100644 --- a/2004/hoyle/.entry.json +++ b/2004/hoyle/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2004_hoyle.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2004/hoyle/index.html b/2004/hoyle/index.html index a2fc276e0..b0bb1c1cb 100644 --- a/2004/hoyle/index.html +++ b/2004/hoyle/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: US - United States of America

        To build:

        -
            make
        +
            make

        To use:

        -
            ./hoyle point ...
        +
            ./hoyle point ...

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Judges’ remarks:

        The obfuscation functions at several levels. Note the clever use of use of #defines. The #define do(if,else), for example, @@ -167,9 +168,9 @@ passed in. dashes rather than a simple block of Xs.

      For example, to graph y = x^2:

      -
          ./hoyle 0 0 1
      +
          ./hoyle 0 0 1

      Note that:

      -
          ./hoyle 0 0 2
      +
          ./hoyle 0 0 2

      will produce the same graph, since the y-axis is auto scaling.

      To build:

      -
          make
      +
          make

      There is an alternate version that allows one to control the number of numbers to print on a line. See alternate code below.

      Bugs and (Mis)features:

      @@ -149,27 +150,27 @@ to print on a line. See alternate code below.

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 2004 jdalbec bugs.

      To use:

      -
          ./jdalbec number ...
      +
          ./jdalbec number ...

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Alternate code:

      This version lets you control how many numbers to show on a line before adding a newline as it can be harder to see when there are a lot of numbers. For lines that don’t end up having too many line breaks it also makes it easier to see which line it is on.

      Alternate build:

      -
          make alt
      +
          make alt

      The macro Ag (silver) controls how many number of lines to print on a line. Set at default to 11 protons, salt, if you wish to make it silver, 47 (a prime) protons, do:

      -
          make clobber Ag=47 alt
      +
          make clobber Ag=47 alt

      though it might be odd to have 47 numbers on a line as it would defeat the purpose. :-) Or if you prefer some prime, golden irony:

      -
          make clobber Ag=79 alt
      +
          make clobber Ag=79 alt

      Alternate use:

      Use jdalbec.alt as you would jdalbec above.

      Alternate try:

      -
          ./try.alt.sh
      +
          ./try.alt.sh

      Judges’ remarks:

      We still aren’t sure whether or not this is a useful program, but it’s the first atomic fission we’ve seen in the IOCCC.

      @@ -325,10 +326,10 @@ type, a structure, a structure member, a macro parameter, and a variable.).
    • jdalbec.orig.c - original source
    • try.alt.sh - how to run alternative code
    • try.sh - how to run
    • -
    • 2004_jdalbec.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2004_jdalbec.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2004/kopczynski/.entry.json b/2004/kopczynski/.entry.json index a9b7a5328..22c0f93cd 100644 --- a/2004/kopczynski/.entry.json +++ b/2004/kopczynski/.entry.json @@ -163,7 +163,7 @@ }, { "file_path" : "2004_kopczynski.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2004/kopczynski/index.html b/2004/kopczynski/index.html index 6b736dd1c..bb4f35926 100644 --- a/2004/kopczynski/index.html +++ b/2004/kopczynski/index.html @@ -88,6 +88,7 @@ @@ -141,13 +142,13 @@ Location: PL - Republic of Poland

      To build:

      -
          make
      +
          make

      NOTE: We FORCE the use of -O0 even if someone overrides it because this entry will not work with it enabled.

      To use:

      -
          ./kopczynski < input_file
      +
          ./kopczynski < input_file

      Try:

      -
          ./try.sh
      +
          ./try.sh

      What happens if you feed the program source to the program? Can you figure out why?

      Alternate code:

      @@ -155,9 +156,9 @@ why?

      program returned the result as an exit code which is what the alternate version does.

      Alternate build:

      -
          make alt
      +
          make alt

      Alternate try:

      -
          ./kopczynski.alt < kopczynski-10
      +
          ./kopczynski.alt < kopczynski-10
           echo $?

      Judges’ remarks:

      What is in a line? A lot when you obfuscate the way Eryk Kopczynski @@ -311,10 +312,10 @@ comes from this. For additional obfuscation and conciseness, if mea

    • kopczynski-a - character to recognize
    • kopczynski-a-rev - reverse character to recognize
    • try.sh - how to run
    • -
    • 2004_kopczynski.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2004_kopczynski.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2004/newbern/.entry.json b/2004/newbern/.entry.json index 91f1a0ead..07e060677 100644 --- a/2004/newbern/.entry.json +++ b/2004/newbern/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "2004_newbern.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2004/newbern/index.html b/2004/newbern/index.html index 917cce4e4..eb9ec6675 100644 --- a/2004/newbern/index.html +++ b/2004/newbern/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: ZZ - Unknown location

      To build:

      -
          make
      +
          make

      To use:

      -
          ./newbern [file.dat arg]
      +
          ./newbern [file.dat arg]

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      The program is formatted using the same font glyphs as the example data file.

      @@ -155,11 +156,11 @@ data file.

      • To convert a character glyph into a data file:
      -
          ./newbern char < some_nicely_shaped_text >> data_file
      +
          ./newbern char < some_nicely_shaped_text >> data_file
      • To print a string using glyphs from a data file:
      -
          ./newbern data_file a_string
      +
          ./newbern data_file a_string

      Extra functionality

      The program can also act as a Morse encoder, unarguably.

      It also has double-super-secret encryption capabilities. @@ -195,10 +196,10 @@ Decryption is left as an exercise for the reader.

    • newbern.orig.c - original source
    • newbern.dat - sample input
    • try.sh - how to run
    • -
    • 2004_newbern.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2004_newbern.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2004/omoikane/.entry.json b/2004/omoikane/.entry.json index a606d0491..0cc111b33 100644 --- a/2004/omoikane/.entry.json +++ b/2004/omoikane/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "2004_omoikane.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2004/omoikane/index.html b/2004/omoikane/index.html index 5f1a2fb54..5798c5040 100644 --- a/2004/omoikane/index.html +++ b/2004/omoikane/index.html @@ -88,6 +88,7 @@ @@ -141,9 +142,9 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      To use:

      -
          ./omoikane infile layout outfile
      +
          ./omoikane infile layout outfile

      Try:

          ./try.sh

      Judges’ remarks:

      @@ -161,7 +162,7 @@ Comments refer to it as such.

      strange file names or package .SFVs with your files! Rinia will insert a human-readable checksum string in the text itself! ^_^

      Usage

      -
          ./omoikane <infile> <layout> <outfile>
      +
          ./omoikane <infile> <layout> <outfile>

      All three arguments may reference the same file. All files is assumed to be of ASCII character set.

      Input

      @@ -274,10 +275,10 @@ still fail…

    • omoikane.orig.c - original source
    • omoikane.info - information about Rinia
    • try.sh - how to run
    • -
    • 2004_omoikane.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2004_omoikane.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2004/schnitzi/.entry.json b/2004/schnitzi/.entry.json index 318cfd1a7..ac3f8977a 100644 --- a/2004/schnitzi/.entry.json +++ b/2004/schnitzi/.entry.json @@ -59,7 +59,7 @@ }, { "file_path" : "2004_schnitzi.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2004/schnitzi/index.html b/2004/schnitzi/index.html index abb8c9790..90e334f69 100644 --- a/2004/schnitzi/index.html +++ b/2004/schnitzi/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: ZZ - Unknown location

      To build:

      -
          make
      +
          make

      To use:

      -
          ./schnitzi <foo | vi -n
      +
          ./schnitzi <foo | vi -n

      Try:

      -
          ./try.sh
      +
          ./try.sh

      NOTE: if you’re one of those who don’t know how to exit vi :-) don’t worry as it will exit for you.

      Judges’ remarks:

      @@ -221,11 +222,11 @@ scene, the other a bit of scrolling text.

      1. Redirect the output directly to vi, like this:
      -
          ./schnitzi < input.dat | vi
      +
          ./schnitzi < input.dat | vi
      1. Redirect the output to a file, like this:
      -
          ./schnitzi < input.dat > output.dat
      +
          ./schnitzi < input.dat > output.dat

      Then, open the output file, select the text, and copy it to your system pasteboard/cut/selection buffer and paste it into vi. The paste is NOT the vi paste command, but @@ -267,10 +268,10 @@ royalties on this technique.

    • schnitzi.inp0 - example input
    • schnitzi.inp1 - example input
    • try.sh - how to run
    • -
    • 2004_schnitzi.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2004_schnitzi.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2004/sds/.entry.json b/2004/sds/.entry.json index 64618b988..0851bfd86 100644 --- a/2004/sds/.entry.json +++ b/2004/sds/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "2004_sds.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2004/sds/index.html b/2004/sds/index.html index b67348a2b..197c768c6 100644 --- a/2004/sds/index.html +++ b/2004/sds/index.html @@ -88,6 +88,7 @@ @@ -141,15 +142,15 @@ Location: FI - Republic of Finland

      To build:

      -
          make
      +
          make

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 2004 sds bugs.

      To use:

      -
          ./sds
      +
          ./sds

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      Why not use the program to hide another program in the program? It must have seemed reasonable at the time.

      @@ -174,19 +175,19 @@ provide a separate encoding program, you should not be surprised to learn that I opted to steganographically hide the encoder inside the decoder.

      Try it out. Compile the program, then type

      -
          ./sds < sds.c
      +
          ./sds < sds.c

      You should see the encoder program displayed. Now save it, like:

      -
          ./sds < sds.c > encoder.c
      +
          ./sds < sds.c > encoder.c

      Then compile encoder.c. You now have the complete system ready.

      The encoder expects to get a filename as an argument. This filename is the name of the file containing the information to be hidden. It expects the file in which to hide the information to be on the standard input, and will output the results on the standard output.

      You can use it like this (assuming you have a file called remarks):

      -
          echo 'Hello, World!' > message
      +
          echo 'Hello, World!' > message
           ./encoder message < remarks > remarks_msg

      Then to decode:

      -
          ./sds < remarks_msg
      +
          ./sds < remarks_msg
           Hello, World!

      C programs are mostly unaffected by adding steganographic content, but it is possible in certain circumstances for whitespace to be @@ -233,10 +234,10 @@ GNU C.

    • sds.orig.c - original source
    • try.sh - how to run
    • README_sds.txt - sample data used by try.sh
    • -
    • 2004_sds.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2004_sds.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2004/vik1/.entry.json b/2004/vik1/.entry.json index 048cac050..497c73a79 100644 --- a/2004/vik1/.entry.json +++ b/2004/vik1/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "2004_vik1.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2004/vik1/index.html b/2004/vik1/index.html index 7644146b6..53bc1663b 100644 --- a/2004/vik1/index.html +++ b/2004/vik1/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      To use:

      -
          ./vik1 [arg]
      +
          ./vik1 [arg]

      Try:

      -
          ./vik1
      +
          ./vik1
       
           ./vik1 a
       
      @@ -184,7 +185,7 @@ glance at the feature list he provided below. Amazing!

      Compile the source code and link X libraries if necessary. The program takes three options which have to be typed in a specific order as described below.

      -
          Usage: ./vik1 ['a']['d'][#]
      +
          Usage: ./vik1 ['a']['d'][#]
       
           a   - Advanced racing in a winter landscape
           d   - Racing in at night in the dark
      @@ -256,10 +257,10 @@ low) are { 0, RED, GREEN, BLUE }.

    • vik1.c - entry source
    • Makefile - entry Makefile
    • vik1.orig.c - original source
    • -
    • 2004_vik1.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2004_vik1.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2004/vik2/.entry.json b/2004/vik2/.entry.json index 8d1b38e25..341b9aca6 100644 --- a/2004/vik2/.entry.json +++ b/2004/vik2/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "2004_vik2.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2004/vik2/index.html b/2004/vik2/index.html index adf3b7a90..5dffab6e4 100644 --- a/2004/vik2/index.html +++ b/2004/vik2/index.html @@ -88,6 +88,7 @@ @@ -141,9 +142,9 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      To use:

      -
          ./vik2
      +
          ./vik2

      Judges’ remarks:

      The fun thing about CPP abuses is that, in most cases, running the @@ -234,16 +235,16 @@ symbol must be defined to the name of the output file. If you want to speed up the compilation, define the STOP symbol to anything from _3 to _10. (The default value is _10 which will make the compilation take some time.) Prime numbers up to 2^STOP will be calculated.

      -
          cpp '-DSTOP=_5' '-DFNAME="tmp1.c"' prog.c tmp1.c
      +
          cpp '-DSTOP=_5' '-DFNAME="tmp1.c"' prog.c tmp1.c

      Then use cpp or any other pre-processor to do the actual work. This will take some time….

      -
          cpp tmp1.c > tmp2.c
      +
          cpp tmp1.c > tmp2.c

      Finally compile the pre-processed file

      -
          cc -O tmp2.c -o prog
      +
          cc -O tmp2.c -o prog

      Then run the program to reveal all prime numbers up to 32 (if you used STOP=_5 as above):

      -
          ./vik2
      +
          ./vik2

      Verification

      I wasn’t able to compile the full program which calculates prime numbers up to 1024 using GNU cpp @@ -323,10 +324,10 @@ with 512Mb ram and a lot of disk.

    • vik2.orig.c - original source
    • vik2_1.c - include file for entry source
    • vik2.possible.cat.death.c - include file for entry source
    • -
    • 2004_vik2.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2004_vik2.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2005/aidan/.entry.json b/2005/aidan/.entry.json index 2341ee48c..08ce32420 100644 --- a/2005/aidan/.entry.json +++ b/2005/aidan/.entry.json @@ -131,7 +131,7 @@ }, { "file_path" : "2005_aidan.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2005/aidan/index.html b/2005/aidan/index.html index dea8530a1..8a8dc4f02 100644 --- a/2005/aidan/index.html +++ b/2005/aidan/index.html @@ -88,6 +88,7 @@ @@ -141,25 +142,25 @@ Location: GB - United Kingdom of Great

      To build:

      -
          make
      +
          make

      There is an alternate version based on the author’s remarks. See alternate code.

      To use:

      -
          ./aidan < puzzle
      +
          ./aidan < puzzle
       
           ./aidan seed

      where seed is a number.

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Alternate code:

      This code is formatted differently and is not the approach used by the author which is slower, inelegant and not as obscure, as the author put it.

      Alternate build:

      -
          make alt
      +
          make alt

      Alternate use:

      Use aidan.alt as you would aidan above.

      Alternate try:

      -
          ./try.alt.sh
      +
          ./try.alt.sh

      Judges’ remarks:

      Are you puzzled about puzzles? This entry might puzzle you more while it puzzles out some puzzles: all in a puzzling way!

      @@ -223,7 +224,7 @@ figure out how to solve them, but there’s a useful tutorial on http://www.sudoku.org.uk/, which is roughly affiliated with the Daily Telegraph, a UK newspaper.

      Now, with modern computers this can be solved using brute force, e.g.:

      -
          #include <stdio.h> /* sudoku-bfi.c */
      +
          #include <stdio.h> /* sudoku-bfi.c */
           #define S(t) for(n=0;n<9;v[n++]=0);for(n=0;n<81;n++)if(i[n]){z=1<<i[n];if(v[t]\\
           &z)for(;;){if(p<0)goto d;if(i[p]++<9)goto f;i[p]=0;p=s[p];}v[t]|=z;}
           int i[82],s[81],v[9],n,p,z;int main(void){for(n=0;n<81;){p=getchar()^48;if(p==
      @@ -259,17 +260,17 @@ also has trouble - it took 66 seconds to solve it - but probably for different
       reasons. That’s the worst performance I’ve had from brute-force so far!)

      Usage

      Building

      -
          cc -o sudoku-sf sudoku-sf.c
      +
          cc -o sudoku-sf sudoku-sf.c

      or, if using gcc, try:

      -
          gcc -O2 -Wall -Wextra -ansi -pedantic-errors -o sudoku-sf sudoku-sf.c
      +
          gcc -O2 -Wall -Wextra -ansi -pedantic-errors -o sudoku-sf sudoku-sf.c

      Testing (optional)

      -
          perl ./test-su.perl
      +
          perl ./test-su.perl

      Note that this requires Perl 5 (I use 5.8.5, earlier versions untested) and is somewhat slow (should take under a minute on a fairly modern PC - try appending -n 0 if you’re in a hurry). I wrote it mostly for my own benefit, really.

      Solving

      -
          ./aidan < somefile.txt
      +
          ./aidan < somefile.txt

      Input should be the numbers of each row in turn. Empty spaces can be represented as a full stop (.) or zero (0). Other characters are ignored, so you can cut-and-paste either example sudoku puzzle from above into a file and feed that @@ -282,7 +283,7 @@ an extra 15 bytes of (very simple) code to add, so it doesn’t really matter to me. (It’s the same as the normal mode for most input you’re likely to feed it, though slightly slower. See if you can figure out what it does.)

      Generating

      -
          ./sudoku <seed>
      +
          ./sudoku <seed>

      Output is a blank grid, then the solution, then the problem. There’s no control over the difficulty. Sorry. However, all generated sudokus should have exactly one solution - if one doesn’t, that’s a bug.

      @@ -321,7 +322,7 @@ can’t help you figure out where the mistake is, sadly.

      Dependant on ASCII, requires that an int is at least 15 bits and a long at least 32. (No, that isn’t a typo - I did say 15, not 16).

      Also requires that cpp can properly handle something like:

      -
          #define foo(x,y) x y
      +
          #define foo(x,y) x y
           foo(bar,)

      Apparently, a few can’t (ANSI C specifically doesn’t require that this works, though it usually does). Unfortunately, I didn’t discover this issue until too @@ -397,10 +398,10 @@ that way somehow…

    • try.sh - how to run
    • wp.sudoku - Wikipedia sudoku puzzle
    • test-su.perl - test suite
    • -
    • 2005_aidan.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2005_aidan.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2005/anon/.entry.json b/2005/anon/.entry.json index 6aa295d1d..0f2bed18f 100644 --- a/2005/anon/.entry.json +++ b/2005/anon/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2005_anon.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2005/anon/index.html b/2005/anon/index.html index 49b3a3852..2d490be78 100644 --- a/2005/anon/index.html +++ b/2005/anon/index.html @@ -88,6 +88,7 @@ @@ -141,20 +142,20 @@ Location: ZZ - Unknown location

      To build:

      -
          make
      +
          make

      NOTE: there is an alternate version for vi(m) like movements. See alternate version below. If your terminal has problems with the stty(1) commands try:

      -
          make anon-no_stty
      +
          make anon-no_stty

      This will compile anon.c as anon to not use stty(1).

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 2005 anon bugs.

      To use:

      -
          ./anon x y [z]
      +
          ./anon x y [z]

      Try:

      -
          ./anon 4 4
      +
          ./anon 4 4
       
           ./anon 3 3 3

      After a very large number of moves this program will deliberately force itself @@ -162,18 +163,18 @@ to destroy its runtime stack. This is the author’s way to prevent you from bei frustrated (which might happen as it likes to create unsolvable puzzles just to hook you) and spending too much time playing. :-)

      If you want to see this in action you can easily do this:

      -
          yes 'please crash on me :-)' | ./anon 4 4
      +
          yes 'please crash on me :-)' | ./anon 4 4

      What happens if you specify a larger board? For instance:

      -
          yes 'please crash on me :-)' | ./anon 10 10 10
      +
          yes 'please crash on me :-)' | ./anon 10 10 10

      If you specify more than three args the program might also crash or do something strange. This might also happen if you specify excessively large board dimensions. Try 100 100 100 for instance and see what happens!

      Alternate version:

      The alternate version uses vi(m) like movement keys.

      Alternate build:

      -
          make alt
      +
          make alt

      To compile the version without stty(1):

      -
          make alt-no_stty
      +
          make alt-no_stty

      Alternate use:

      Use anon.alt as you would anon with the change in movements:

          k | Move empty spot up
      @@ -200,9 +201,9 @@ spaces on the board, and the goal is to rearrange them so that they appear
       sorted in the order they appear on the screen.

      The program takes 2 or 3 arguments, specifying the dimensions of the board. For example, to play the original version of the Fifteen Puzzle:

      -
          ./anon 4 4
      +
          ./anon 4 4

      To play with a 3D board, do something like this:

      -
          ./anon 3 3 3
      +
          ./anon 3 3 3

      WARNING: do NOT run the program with more than 3 command-line arguments. This will trigger a bug that will cause it to crash or do something strange. :-)

      @@ -394,7 +395,7 @@ allocation. It’s the only state that needs to return a value from the boolean expression, since once the MASS is initialized any return value can simply be stored in a well-known location in the MASS.

      if(p,q,r,s) is, in fact, an if statement. :-) It is equivalent to:

      -
          if (p) { q; r } else {s}
      +
          if (p) { q; r } else {s}

      Why are q and r split up? Because it’s cleaner (in whatever twisted sense of the word that can be applied to an IOCCC entry) to implement using boolean expressions. Keep in mind that all statements are assumed to evaluate to @@ -415,11 +416,11 @@ closes the current state and opens a new one behind the programmer’s back. i is the index variable (well, the index into the MASS of the index variable); x and y-1 define the starting and ending values of i, and z is the loop body. Z is the post-loop code in the current state. For example:

      -
          for(s,i, 0, 10,
      +
          for(s,i, 0, 10,
           some_code       ,
           other_code)

      is equivalent to:

      -
          for (i=0; i&lt;10; i++) {
      +
          for (i=0; i&lt;10; i++) {
                   some_code;
           }
           other_code;
      @@ -523,10 +524,10 @@ smiley. :-)

    • Makefile - entry Makefile
    • anon.alt.c - alternative source
    • anon.orig.c - original source
    • -
    • 2005_anon.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2005_anon.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2005/boutines/.entry.json b/2005/boutines/.entry.json index d4ae97cec..a2ffcbf6b 100644 --- a/2005/boutines/.entry.json +++ b/2005/boutines/.entry.json @@ -67,7 +67,7 @@ }, { "file_path" : "2005_boutines.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2005/boutines/index.html b/2005/boutines/index.html index 447e10f09..fa73d6333 100644 --- a/2005/boutines/index.html +++ b/2005/boutines/index.html @@ -88,6 +88,7 @@ @@ -141,7 +142,7 @@ Location: FR - French Republic (

      To build:

      -
          make
      +
          make

      To use:

      You will need an SVG viewer or a converter like ImageMagick’s convert. @@ -149,11 +150,11 @@ See FAQ 3.17 - How do I compile and install require it?.

      Look here to find some SVG Viewer Implementations.

      -
          ./boutines < input > output.svg
      +
          ./boutines < input > output.svg

      Try:

      -
          ./try.sh
      +
          ./try.sh

      If ruby is installed try.sh will generate an SVG file by:

      -
          ruby -e '20.times{puts "#{rand} #{rand}"}' | ./boutines > test.svg
      +
          ruby -e '20.times{puts "#{rand} #{rand}"}' | ./boutines > test.svg

      It will also create an SVG file with the file input.txt.

      The script will check if convert is available and if so it will try converting the SVG file(s) to PNG file(s) which you should be able to view in most any @@ -178,7 +179,7 @@ square.

      A Voronoi diagram of the set as an SVG stream.

      This will possibly save a compressed SVG file and may be useful:

      -
          ./boutines | gzip > result.svg.gz
      +
          ./boutines | gzip > result.svg.gz

      Input consists of a list of floating points values separated by whitespaces (ranging preferably in [0,1]). Alternating a horizontal coordinate, a whitespace then the other coordinate (pointing downwards in the resulting @@ -292,10 +293,10 @@ viewport and potentially every

    • eqn.png - equation limit for entry
    • input.txt - sample input
    • try.sh - how to run
    • -
    • 2005_boutines.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2005_boutines.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2005/chia/.entry.json b/2005/chia/.entry.json index c015744d5..c2b3652cf 100644 --- a/2005/chia/.entry.json +++ b/2005/chia/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "2005_chia.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2005/chia/index.html b/2005/chia/index.html index 983277d0c..509516410 100644 --- a/2005/chia/index.html +++ b/2005/chia/index.html @@ -88,6 +88,7 @@ @@ -141,9 +142,9 @@ Location: SG - Republic of Singapore

      To build:

      -
          make
      +
          make

      To use:

      -
          ./chia
      +
          ./chia

      Judges’ remarks:

      Have you had your morning cup of Java? You might want a second cup before parsing this entry. And give your C @@ -201,10 +202,10 @@ when they see macro parameters that don’t look like C tokens.

    • chia.c - entry source
    • Makefile - entry Makefile
    • chia.orig.c - original source
    • -
    • 2005_chia.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2005_chia.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2005/giljade/.entry.json b/2005/giljade/.entry.json index 7912446d0..bc6859526 100644 --- a/2005/giljade/.entry.json +++ b/2005/giljade/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "2005_giljade.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2005/giljade/index.html b/2005/giljade/index.html index ff68f3ecf..015951d01 100644 --- a/2005/giljade/index.html +++ b/2005/giljade/index.html @@ -88,6 +88,7 @@ @@ -141,7 +142,7 @@ Location: IL - State of Israel (

      To build:

      -
          make
      +
          make

      NOTE: We FORCE the use of -O0 even if someone overrides it because this entry will not work with it enabled.

      Bugs and (Mis)features:

      @@ -149,11 +150,11 @@ will not work with it enabled.

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 2005 giljade bugs.

      To use:

      -
          ./giljade
      +
          ./giljade

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Self-test feature to try:

      -
          ./giljade > out
      +
          ./giljade > out
           ./giljade out

      NOTE: try.sh will ask you if you wish to do this.

      Judges’ remarks:

      @@ -162,7 +163,7 @@ will not work with it enabled.

      output. We especially recommend it on a 78 column xterm while leaning on Control-F.

      If you really understand expressions, then understand this:

      -
          s=s^(b=s&s-1^s)
      +
          s=s^(b=s&s-1^s)

      … and understand why it is found in the source code.

      Author’s remarks:

      So what do we have here ?

      @@ -287,10 +288,10 @@ tricky.

    • giljade.orig.c - original source
    • test.sh - test tool
    • try.sh - how to run
    • -
    • 2005_giljade.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2005_giljade.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2005/index.html b/2005/index.html index 753250ccb..a32e984ab 100644 --- a/2005/index.html +++ b/2005/index.html @@ -86,6 +86,7 @@ diff --git a/2005/jetro/.entry.json b/2005/jetro/.entry.json index 483e87a61..f3d977b37 100644 --- a/2005/jetro/.entry.json +++ b/2005/jetro/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "2005_jetro.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2005/jetro/index.html b/2005/jetro/index.html index 82c3e65d3..d832924c5 100644 --- a/2005/jetro/index.html +++ b/2005/jetro/index.html @@ -88,6 +88,7 @@ @@ -145,9 +146,9 @@ Location: FI - Republic of Finland for information on how to install it if you haven’t already.

      If you have SDL installed:

      -
          make
      +
          make

      To use:

      -
          ./jetro
      +
          ./jetro

      Judges’ remarks:

      We have seen entries with SDL graphics in the past, now it’s time for SDL sound. This entry can even be run on a computer without a sound card with an @@ -186,10 +187,10 @@ with one call to getchar() before it quits.

    • jetro.c - entry source
    • Makefile - entry Makefile
    • jetro.orig.c - original source
    • -
    • 2005_jetro.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2005_jetro.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2005/klausler/.entry.json b/2005/klausler/.entry.json index fa8873025..208b81eeb 100644 --- a/2005/klausler/.entry.json +++ b/2005/klausler/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2005_klausler.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2005/klausler/index.html b/2005/klausler/index.html index a58c0004f..25df2d641 100644 --- a/2005/klausler/index.html +++ b/2005/klausler/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      To use:

      -
          ./klausler arg1 arg2 | head
      +
          ./klausler arg1 arg2 | head

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      To reduce the size of the source, include other people’s data. That is what Peter suggests when he describes how to generate @@ -205,10 +206,10 @@ recursion, or other tricks. Enjoy!

    • Makefile - entry Makefile
    • klausler.orig.c - original source
    • try.sh - how to run
    • -
    • 2005_klausler.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2005_klausler.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2005/mikeash/.entry.json b/2005/mikeash/.entry.json index 39c6d69e7..0cae5024a 100644 --- a/2005/mikeash/.entry.json +++ b/2005/mikeash/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2005_mikeash.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2005/mikeash/index.html b/2005/mikeash/index.html index a93ff12f2..f0bd5f30c 100644 --- a/2005/mikeash/index.html +++ b/2005/mikeash/index.html @@ -88,6 +88,7 @@ @@ -141,17 +142,17 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 2005 mikeash bugs.

      To use:

      -
          ./mikeash
      +
          ./mikeash

      NOTE: the author stated that they tested this under i386 machines but this works under 64-bit (x86_64, arm64) machines too.

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      Having problems speaking code? Do you LISP? Parenthetically speaking, this entry takes advantage of C99 features, while @@ -175,12 +176,12 @@ constant string, due to different string escape semantics in C and Lisp, and some implicit integer-to-pointer conversions due to the implicitly-declared functions.

      Try:

      -
          echo '(format t "~s" (+ 2 2 ))' | ./mikeash
      +
          echo '(format t "~s" (+ 2 2 ))' | ./mikeash

      You should see 4" echoed on your command prompt. The " after the 4 and the lack of a newline are due to the somewhat broken implementation of the format function. More sophisticated arithmetic expressions may be used:

      -
          echo '(format t "~s" (* (+ 2 2 ) (- 5 (/ 9 3 ))))' | ./mikeash
      +
          echo '(format t "~s" (* (+ 2 2 ) (- 5 (/ 9 3 ))))' | ./mikeash

      This evaluates the expression (2+2) * (5 - 9/3) giving the correct result, 8" (with the same issue of no newline after the "). Note that due to the highly ad-hoc nature of the tokenizer, the spaces before the closing parentheses @@ -219,7 +220,7 @@ nowhere near

    Basically, the LISP interpreter is good for some basic math operations, and for running itself. To do the latter, try this:

    -
        ./mikeash < mikeash.c > mikeash2.c
    +
        ./mikeash < mikeash.c > mikeash2.c
         diff mikeash.c mikeash2.c

    The program can also be run from an implementation of common lisp. To do @@ -269,10 +270,10 @@ C library.

  • Makefile - entry Makefile
  • mikeash.orig.c - original source
  • try.sh - how to run
  • -
  • 2005_mikeash.tar.bz2 - download entry tarball
  • Secondary files

      +
    • 2005_mikeash.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2005/mynx/.entry.json b/2005/mynx/.entry.json index 5cfd94996..f54d4311a 100644 --- a/2005/mynx/.entry.json +++ b/2005/mynx/.entry.json @@ -83,7 +83,7 @@ }, { "file_path" : "2005_mynx.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2005/mynx/index.html b/2005/mynx/index.html index 55e76888b..e85e16ac0 100644 --- a/2005/mynx/index.html +++ b/2005/mynx/index.html @@ -88,6 +88,7 @@ @@ -141,7 +142,7 @@ Location: CA - Canada

      To build:

      -
          make
      +
          make

      There is an alternate version that scans for (ONLY scans) the string https as a starting point. See alternate code below.

      Bugs and (Mis)features:

      @@ -149,11 +150,11 @@ as a starting point. See alternate code below.

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 2005 mynx bugs.

      To use:

      -
          ./mynx http://<domain>
      +
          ./mynx http://<domain>

      You can specify a port by appending to the domain :port. See notes below on the issue of https.

      Try:

      -
          ./mynx http://www.textfiles.com
      +
          ./mynx http://www.textfiles.com
       
           ./mynx manual.html

      Alternate code:

      @@ -171,11 +172,11 @@ to either come up with a pipeline (or some other command line) that allows it to work with https or to update the code to support https they may. Otherwise you must just appreciate the entry for what it once was.

      Alternate build:

      -
          make alt
      +
          make alt

      Alternate use:

      Use mynx.alt as you would mynx. You’d have to specify a port at the end of the URL like:

      -
          ./mynx.alt https://www.ioccc.org:443
      +
          ./mynx.alt https://www.ioccc.org:443

      but again unless you have a clever workaround or hack to the problem, this sadly won’t work.

      Judges’ remarks:

      @@ -188,16 +189,16 @@ get a functioning LAMP stack.

      I was rather impressed by last year’s mini webserver. So much so that it inspired me to try my hand at writing the client side complement.

      A typical build command would be:

      -
          cc -o mynx mynx.c
      +
          cc -o mynx mynx.c

      While some others like to be a little different:

      -
          cc -o mynx mynx.c -lnsl -lsocket
      +
          cc -o mynx mynx.c -lnsl -lsocket

      I even managed to figure out a basic configure script, given last year’s example, which is kinda of useful when you consider how many OSes put all the network functions in a variety of places. So a simpler build command sequence would be:

      -
          cd source ; ./configure ; make
      +
          cd source ; ./configure ; make

      After which, the rest of the documentation can be read by saying:

      -
          ./mynx ../manual.html
      +
          ./mynx ../manual.html

      To build:

      -
          make
      +
          make

      There is an alternate version of this entry which should work for Windows by setting binary mode on stdout. See alternate code below.

      To use:

      -
          ./persano p q [num frames]
      +
          ./persano p q [num frames]

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Open the GIF files with a viewer capable of displaying animated GIFs and watch closely at the bottom of the picture (you may need to use gifsicle - a great tool to @@ -162,7 +163,7 @@ let it work with Windows.

      Alternate use:

      Use persano.alt as you would persano above.

      Alternate try:

      -
          ./persano.alt 3 16 > knot3-16.gif
      +
          ./persano.alt 3 16 > knot3-16.gif

      Follow the same instructions, using different tools if necessary, as the above try section.

      Judges’ remarks:

      @@ -179,7 +180,7 @@ linker option).

      knot writes animated GIF images of rendered torus knots to standard output.

      SYNOPSIS

      -
          ./persano p q [num frames]
      +
          ./persano p q [num frames]

      DESCRIPTION

      A (p,q)-torus knot is a closed, non-intersecting curve on the surface of a @@ -190,10 +191,10 @@ resulting curve will not be a knot (that is, imagining the resulting cu a loop of rubber, there will be a way to bend, twist and stretch it, without cutting it 1, until it ends up looking just like a circle embedded in R3 2).

      Sample usage:

      -
          ./persano 3 2 1 > foo.gif
      +
          ./persano 3 2 1 > foo.gif

      writes a non-animated GIF (a single frame) stream of a rendered trefoil knot to the file foo.gif.

      -
          ./persano 5 2
      +
          ./persano 5 2

      writes a GIF stream with a rendering of Solomon’s Seal knot to standard output; since the number of frames is not specified, an animation with @@ -265,10 +266,10 @@ was not implemented in order to avoid the Unisys patent can no longer be used.persano.alt.c - alternative source

    • persano.orig.c - original source
    • try.sh - how to run
    • -
    • 2005_persano.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2005_persano.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2005/sykes/.entry.json b/2005/sykes/.entry.json index 800303865..4283bbe41 100644 --- a/2005/sykes/.entry.json +++ b/2005/sykes/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "2005_sykes.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2005/sykes/index.html b/2005/sykes/index.html index 2be403ea7..55a43f05f 100644 --- a/2005/sykes/index.html +++ b/2005/sykes/index.html @@ -88,6 +88,7 @@ @@ -141,15 +142,15 @@ Location: FI - Republic of Finland

      To build:

      -
          make
      +
          make

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 2005 sykes bugs.

      To use:

      -
          ./sykes binary_file
      +
          ./sykes binary_file

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      For those who fondly remember their first PET, this entry will start you @@ -160,12 +161,12 @@ after the C pre-processor gets finished with it!

      We downloaded the ROM contents to use the emulator in PET mode as follows:

      -
          wget http://www.zimmers.net/anonftp/pub/cbm/firmware/computers/pet/basic-2-c000.901465-01.bin
      +
          wget http://www.zimmers.net/anonftp/pub/cbm/firmware/computers/pet/basic-2-c000.901465-01.bin
           wget http://www.zimmers.net/anonftp/pub/cbm/firmware/computers/pet/basic-2-d000.901465-02.bin
           wget http://www.zimmers.net/anonftp/pub/cbm/firmware/computers/pet/edit-2-n.901447-24.bin
           wget http://www.zimmers.net/anonftp/pub/cbm/firmware/computers/pet/kernal-2.901465-03.bin

      We then created:

      -
          dd bs=2k count=1 if=/dev/zero of=nullfill.bin
      +
          dd bs=2k count=1 if=/dev/zero of=nullfill.bin

      For your convenience, we have added the above mentioned files to this entry directory. They were used to form the pet.rom file.

      Author’s remarks:

      @@ -180,7 +181,7 @@ to not infringe the rules.

      Compile the program, then test the 6502 emulation like this:

      -
          ./sykes 6502test
      +
          ./sykes 6502test

      A basic test is done for each instruction and addressing mode, all tests should pass. At the end of the tests, it loops forever - break out with control-C.

      @@ -196,15 +197,15 @@ Transactor.

      Make sure you have a terminal window of 40x25 chars or bigger, and then run the emulator like this:

      -
          ./sykes pet.rom
      +
          ./sykes pet.rom

      You should see the startup message. Try typing in some BASIC - for instance:

          PRINT "HELLO, WORLD"

      There is an optional numeric parameter, which controls the speed. For a slower cursor blink, try

      -
          ./sykes pet.rom 6
      +
          ./sykes pet.rom 6

      and for faster

      -
          ./sykes pet.rom 2
      +
          ./sykes pet.rom 2

      The default is 4.

      The control keys are as follows:

          ^A HOME
      @@ -243,7 +244,7 @@ The filenames must be upper case in order to be loaded by the emulator.

      Supplied as a demonstration is a compiled-for-6502 version a chess program (heh, I found a use for a previous losing entry :) ). Try:

      -
          ./sykes chess
      +
          ./sykes chess

      It works as you would expect (it plays very badly). There’s no castling or en-passant, and to win you must actually take the opponent’s king.

      You can write your own programs too, any 6502 @@ -327,7 +328,7 @@ course, the pet.rom is not my work. So I ask the user to download i from the Internet. This is to avoid directly infringing any copyright.

      Finally

      What does this do?

      -
          ./sykes pet.rom -1
      +
          ./sykes pet.rom -1

      Have fun!

      To build:

      -
          make
      +
          make

      To use:

      -
          ./timwi < bf_program
      +
          ./timwi < bf_program

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      Unlike most BF interpreters that we have been receiving for the last few years, this one, in our opinion, is the @@ -218,10 +219,10 @@ hardest thing to figure out is how it finds the matching square brackets.

    • Makefile - entry Makefile
    • timwi.orig.c - original source
    • try.sh - how to run
    • -
    • 2005_timwi.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2005_timwi.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2005/toledo/.entry.json b/2005/toledo/.entry.json index e5d22f844..9fa69e40a 100644 --- a/2005/toledo/.entry.json +++ b/2005/toledo/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "2005_toledo.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2005/toledo/index.html b/2005/toledo/index.html index ebc43a907..4707e053f 100644 --- a/2005/toledo/index.html +++ b/2005/toledo/index.html @@ -88,6 +88,7 @@ @@ -141,18 +142,18 @@ Location: MX - United Mexican States

      To build:

      -
          make
      +
          make

      To use:

      -
          ./toledo [a ...]
      +
          ./toledo [a ...]

      Try:

      -
          ./toledo a
      +
          ./toledo a
           ./toledo a b

      Alternate code:

      Two alternate versions of this entry, toledo2.c and toledo3.c are provided.

      Alternate build:

      To compile the alternate versions:

      -
          make alt
      +
          make alt

      Alternate use:

      Use Use toledo2 and toledo3 as you would toledo above.

      Judges’ remarks:

      @@ -170,14 +171,14 @@ single function.

      This is a chess program, it can work in two modes: two-players, and one player (always white) against the machine. To get the first mode, run the program without arguments:

      -
          ./toledo
      +
          ./toledo

      The other mode is accessible running the program with one argument (5-ply analysis):

      -
          ./toledo a
      +
          ./toledo a

      Two arguments for 6-ply analysis:

      -
          ./toledo a b
      +
          ./toledo a b

      And each successive argument will analyze one ply more. There is no ply limit, but beyond 7 ply is very slow, try it at your own risk and computing @@ -266,10 +267,10 @@ and compiles faster… but I’m still not seeing the difference.

    • toledo.orig.c - original source
    • toledo2.c - alternative source
    • toledo3.c - alternative source
    • -
    • 2005_toledo.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2005_toledo.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2005/vik/.entry.json b/2005/vik/.entry.json index a38d4604e..6662fe293 100644 --- a/2005/vik/.entry.json +++ b/2005/vik/.entry.json @@ -67,7 +67,7 @@ }, { "file_path" : "2005_vik.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2005/vik/index.html b/2005/vik/index.html index 3a234a4dd..c29571fdd 100644 --- a/2005/vik/index.html +++ b/2005/vik/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      To use:

      -
          ./vik [file.map]
      +
          ./vik [file.map]

      Try:

      -
          ./vik maze.map
      +
          ./vik maze.map

      Judges’ remarks:

      An amazing use of the X libraries with twisty code passages, all different. One risks running in code path circles as main() is called again and again. Be @@ -177,18 +178,18 @@ backward).

      Compile the source code and link in X libraries if necessary. The program takes three options which have to be typed in a specific order as described below.

      -
          ./vik [-w <width>] [mapfile]
      +
          ./vik [-w <width>] [mapfile]

      where:

          width   - Specifies the width of the window
           mapfile - Filename containing a map

      Examples

      Start the engine using a built in labyrinth and texture bitmaps:

      -
          ./vik
      +
          ./vik

      Start the engine and loads the labyrinth defined in the file maze.map:

      -
          ./vik maze.map
      +
          ./vik maze.map

      Start the engine using maze.map in a window that is 400 pixels wide:

      -
          ./vik -w 400 maze.map
      +
          ./vik -w 400 maze.map

      Note that the mapfile has to be the last argument and the -w option if present has to be the first. The map definition files and the bitmap files should be located in the current directory.

      @@ -262,10 +263,10 @@ application a little bit.

    • a.bmp - texture bitmap
    • b.bmp - texture bitmap
    • c.bmp - texture bitmap
    • -
    • 2005_vik.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2005_vik.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2005/vince/.entry.json b/2005/vince/.entry.json index 8caf9f4cc..39bd90588 100644 --- a/2005/vince/.entry.json +++ b/2005/vince/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2005_vince.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2005/vince/index.html b/2005/vince/index.html index 52f1d223a..1b32dbab1 100644 --- a/2005/vince/index.html +++ b/2005/vince/index.html @@ -88,6 +88,7 @@ @@ -143,9 +144,9 @@ Location: US - United States of America

      To build:

      Before building, make sure that you have the OpenGL development libraries installed.

      -
          make
      +
          make

      To use:

      -
          ./vince
      +
          ./vince

      Try:

      When running this in the program’s window try hitting space a few times and see what happens!

      @@ -154,7 +155,7 @@ what happens!

      also has the recursive CPP macro (which sneaked in accidentally) removed.

      Alternate build:

      To compile this alternate version:

      -
          make alt
      +
          make alt

      Alternate use:

      Use vince.alt as you would vince above.

      Alternate try:

      @@ -240,10 +241,10 @@ problem.
    • Makefile - entry Makefile
    • vince.alt.c - alternative source
    • vince.orig.c - original source
    • -
    • 2005_vince.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2005_vince.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2006/birken/.entry.json b/2006/birken/.entry.json index 85f6bcee7..e5bfb3b66 100644 --- a/2006/birken/.entry.json +++ b/2006/birken/.entry.json @@ -155,7 +155,7 @@ }, { "file_path" : "2006_birken.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2006/birken/index.html b/2006/birken/index.html index 72d93dff3..67f2c3472 100644 --- a/2006/birken/index.html +++ b/2006/birken/index.html @@ -88,6 +88,7 @@ @@ -141,15 +142,15 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: uses gets() - change to fgets() if possible

      For more detailed information see 2006 birken bugs.

      To use:

      -
          ./birken < file.tofu
      +
          ./birken < file.tofu

      Try:

      -
          ./try.sh
      +
          ./try.sh

      etc.

      Judges’ remarks:

      Q: EDAMAME?

      @@ -223,10 +224,10 @@ out to the one who discovers the hidden program within the source.

    • shift.tofu - TOFU circuit
    • zuse2.tofu - TOFU circuit
    • zuse.tofu - TOFU circuit
    • -
    • 2006_birken.tar.bz2 - download entry tarball

    Secondary files

    Secondary files

      +
    • 2006_borsanyi.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2006/grothe/.entry.json b/2006/grothe/.entry.json index c0915ff7f..2b45903d6 100644 --- a/2006/grothe/.entry.json +++ b/2006/grothe/.entry.json @@ -75,7 +75,7 @@ }, { "file_path" : "2006_grothe.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2006/grothe/index.html b/2006/grothe/index.html index 397be9ea1..6ce0b3d0e 100644 --- a/2006/grothe/index.html +++ b/2006/grothe/index.html @@ -88,6 +88,7 @@ @@ -141,12 +142,12 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      To use:

      -
          ./grothe carrier_freq pixelclock horizontal_total < some_input.txt
      +
          ./grothe carrier_freq pixelclock horizontal_total < some_input.txt

      Try:

      Put on your “electronic ears” and then try:

      -
          ./try.sh
      +
          ./try.sh

      You may find using a tunable scanning electronic ear helps.

      Judges’ remarks:

      @@ -165,9 +166,9 @@ parameters:

      horizontal_total - total scan along the horizontal axis

    If you have xvidtune installed you can get the pixelclock and horizontal_total with the following command

    -
        xvidtune -show | head -n 1 | awk '{ print "pixelclock " $2 * 1000000 " horizontal_total = " $6 }'
    +
        xvidtune -show | head -n 1 | awk '{ print "pixelclock " $2 * 1000000 " horizontal_total = " $6 }'

    Example from my laptops:

    -
        ./grothe 65000000 10000000 1344 < twinkle.txt
    +
        ./grothe 65000000 10000000 1344 < twinkle.txt

    Even if the user gets a setting off, the sound will usually be able to be heard on AM at a multiple of the original frequency.

    @@ -250,10 +251,10 @@ Kuhn’s and Ross J. Anderson’s.

  • test.txt - sample input
  • try.sh - how to run
  • twinkle.txt - sample input
  • -
  • 2006_grothe.tar.bz2 - download entry tarball
  • Secondary files

      +
    • 2006_grothe.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2006/hamre/.entry.json b/2006/hamre/.entry.json index 6ed5b5d23..ff76e02a6 100644 --- a/2006/hamre/.entry.json +++ b/2006/hamre/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2006_hamre.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2006/hamre/index.html b/2006/hamre/index.html index 7796c8e6a..e7bf4cb7b 100644 --- a/2006/hamre/index.html +++ b/2006/hamre/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: NO - Kingdom of Norway (

      To build:

      -
          make
      +
          make

      To use:

      -
          ./hamre math_expression_string
      +
          ./hamre math_expression_string

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      An irrationally coded source presents rational things!

      A rational person might want to attempt the @@ -162,7 +163,7 @@ an obfuscated one.

      supported operators are: +, - (binary and unary), *, / and (). Run it by supplying an expression as the first argument, and the normalized result will be written to stdout.

      -
          ./hamre '-1+4/3*(2+1/(3/2*(7/2-7/3+1/6)))/2'
      +
          ./hamre '-1+4/3*(2+1/(3/2*(7/2-7/3+1/6)))/2'
           2/3

      If you do not supply an argument, the calculator will crash. Other arguments are ignored. Supplying more arguments may further limit the @@ -208,10 +209,10 @@ some language, meaningful to the purpose(s) of the macro, I hope.

    • Makefile - entry Makefile
    • hamre.orig.c - original source
    • try.sh - how to run
    • -
    • 2006_hamre.tar.bz2 - download entry tarball

    Secondary files

    Secondary files

      +
    • 2006_meyer.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2006/monge/.entry.json b/2006/monge/.entry.json index c5980f8d5..18a118cfd 100644 --- a/2006/monge/.entry.json +++ b/2006/monge/.entry.json @@ -59,7 +59,7 @@ }, { "file_path" : "2006_monge.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2006/monge/index.html b/2006/monge/index.html index d6f8e8822..d7965967b 100644 --- a/2006/monge/index.html +++ b/2006/monge/index.html @@ -88,6 +88,7 @@ @@ -142,7 +143,7 @@ Location: IT - Italian Republic (<

      To build:

      Make sure you have the SDL1 (not SDL2!) development environment installed.

      -
          make
      +
          make

      There is alternate version that lets you redefine the width and height and number of iterations to use. See Alternate code below.

      Bugs and (Mis)features:

      @@ -151,23 +152,23 @@ of iterations to use. See Alternate code below.

    For more detailed information see 2006 monge bugs.

    To use:

    -
        ./monge expression ...
    +
        ./monge expression ...

    Incorrect formulas will ungracefully crash the program.

    Try:

    -
        ./try.sh
    +
        ./try.sh

    Alternate code:

    This alternate code lets you specify the width and height of the image as well as the number of iterations to perform.

    Alternate build:

    To use the default values, the same as monge.c, just do:

    -
        make alt
    +
        make alt

    But if you wish to actually make use of it you will want to redefine one or more of the variables W, H and I. The defaults are (respectively) 400, 300 and \128. If you wish to change the image size to 500x500 but keep the iterations the same then do:

    -
        make clobber WIDTH=500 HEIGHT=500 alt
    +
        make clobber WIDTH=500 HEIGHT=500 alt

    If you wish to keep the dimensions the same but change the iterations to 512:

    -
        make clobber ITERATIONS=512 alt
    +
        make clobber ITERATIONS=512 alt

    If you specify a value less than 1 for any of these it sets it back to the default. The value 1 was selected arbitrarily and such a small number as 1 will not do anything useful but as long as it’s at least 1 it’ll not be redefined. @@ -176,7 +177,7 @@ anyway.

    Alternate use:

    Use monge.alt exactly as you would monge above.

    Alternate try:

    -
        ./try.alt.sh
    +
        ./try.alt.sh

    Judges’ remarks:

    For those who are familiar with the previous IOCCC entries, this program is best described as “1994/tvr meets @@ -193,11 +194,11 @@ effort to work on both i386 and x86_64. Portable it is

    1. Compile using the Makefile, or just run:
    -
        gcc monge.c -o monge -O3 `sdl-config --libs --cflags`
    +
        gcc monge.c -o monge -O3 `sdl-config --libs --cflags`
    1. Run:
    -
        ./monge "z = 0" "z = z*z + c; Abs2(z) < 4"
    +
        ./monge "z = 0" "z = z*z + c; Abs2(z) < 4"
    1. Keep clicking with left or right button to zoom in or out.

    2. Use the number pad + and - to increase/decrease the iteration count when @@ -240,35 +241,35 @@ as you like (as understood by the C function isspace()).

      • Mandelbrot:
      -
          ./monge "z=1" "z=z*z+c; Abs2(z)<4"
      +
          ./monge "z=1" "z=z*z+c; Abs2(z)<4"
      • Mandelbrot (return time variation):
      -
          ./monge "z=c" "z=z*z+c; Abs2(z-c)>0.0001"
      +
          ./monge "z=c" "z=z*z+c; Abs2(z-c)>0.0001"
      • Julia, for c=0.31+i*0.5:
      -
          ./monge "z=c; c=0.31+i*0.5" "z=z*z+c; Abs2(z)<4"
      +
          ./monge "z=c; c=0.31+i*0.5" "z=z*z+c; Abs2(z)<4"
      • Julia (return time variation), for c=0.31+i*0.5:
      -
          ./monge "z=c; c=0.31+i*0.5" "z=z*z+c; Abs2(z-c)>0.0001"
      +
          ./monge "z=c; c=0.31+i*0.5" "z=z*z+c; Abs2(z-c)>0.0001"
      • Newton, for x^3-1:
      -
          ./monge "z=c" "p=z; z=0.6666*z+0.3333/(z*z); Abs2(p-z) > 0.001"
      +
          ./monge "z=c" "p=z; z=0.6666*z+0.3333/(z*z); Abs2(p-z) > 0.001"
      • Newton-Mandelbrot:
      -
          ./monge "z=0" "p=z; z=z-(z*z*z + (c-1)*z - c)/(3*z*z+c-1); Abs2(p-z) > 0.001"
      +
          ./monge "z=0" "p=z; z=z-(z*z*z + (c-1)*z - c)/(3*z*z+c-1); Abs2(p-z) > 0.001"
      • Phoenix, Mandelbrot version:
      -
          ./monge "z=0; q=0" "t=z; z=z*z+Re(c)+Im(c)*q; q=t; Abs2(z)<4"
      +
          ./monge "z=0; q=0" "t=z; z=z*z+Re(c)+Im(c)*q; q=t; Abs2(z)<4"
      • Phoenix, Julia version for c=0.56667-i*0.5:
      -
          ./monge "z=c; c=0.56667-i*0.5; q=0" "t=z; z=z*z+Re(c)+Im(c)*q; q=t; Abs2(z)<4"
      +
          ./monge "z=c; c=0.56667-i*0.5; q=0" "t=z; z=z*z+Re(c)+Im(c)*q; q=t; Abs2(z)<4"

      Compilation and portability

      This program will only work on x86 (with an x87 FPU) or x86_64 machines, but it requires the SDL library.

      @@ -352,10 +353,10 @@ too big (>1) the pixel is recalculated.

    3. monge.orig.c - original source
    4. try.alt.sh - how to run alternative code
    5. try.sh - how to run
    6. -
    7. 2006_monge.tar.bz2 - download entry tarball
    8. Secondary files

        +
      • 2006_monge.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/2006/night/.entry.json b/2006/night/.entry.json index 77aa156cc..5ad79959a 100644 --- a/2006/night/.entry.json +++ b/2006/night/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2006_night.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2006/night/index.html b/2006/night/index.html index ecc55fed8..22c6f4294 100644 --- a/2006/night/index.html +++ b/2006/night/index.html @@ -88,6 +88,7 @@ @@ -141,16 +142,16 @@ Location: US - United States of America

        To build:

        -
            make
        +
            make

        There is an alternate version that supports arrow keys. See the alternate code section below.

        To use:

        -
            ./night
        +
            ./night

        Alternate code:

        This version allows you to use arrow keys instead of the more awkward wasd keys.

        Alternate build:

        -
            make alt
        +
            make alt

        Alternate use:

        Use night.alt as you would night above.

        Judges’ remarks:

        @@ -217,7 +218,7 @@ preprocessed code is over 80KB in length, hindering the preprocessor’s ability to deobfuscate.

        Keypad support was removed to save space. To restore, modify the following two macros to:

        -
            #define ATG srand(time(0)); initscr(); cbreak(); noecho(); start_color(); keypad(stdscr,1);
        +
            #define ATG srand(time(0)); initscr(); cbreak(); noecho(); start_color(); keypad(stdscr,1);
             #define AGG A&2?KEY_UP:KEY_DOWN:A&1?KEY_RIGHT:KEY_LEFT

        Code on!

        To build:

        -
            make alt
        +
            make alt

        We recommend the alt version so that you can see what this looked like back in 2006. If you wish to see the original faster version see original code below.

        To use:

        -
            ./slone.alt
        +
            ./slone.alt

        Try:

        The alternate version, which we recommend that you use in order to see what is happening with modern systems, and to not flash too quickly, which can be problematic for some people, can be configured to different speeds by way of the value used in usleep(). The default is 75000 but you can easily change it. To do so try:

        -
            make clobber SLEEP=70000 clobber alt
        +
            make clobber SLEEP=70000 clobber alt
             ./sloane.alt

        If you wish to make it like the original, as if the below Original code was being used, you can do:

        -
            make SLEEP=0 clobber alt
        +
            make SLEEP=0 clobber alt
             ./sloane.alt

        Original code:

        Should you wish to see the original you may do so with the original code, sloane.c.

        Original build:

        -
            make clobber all
        +
            make clobber all

        Original use:

        -
            ./sloane
        +
            ./sloane

        WARNING: if you are easily overstimulated with fast movement or have photosensitivity please be careful running this version and instead see the above!

        @@ -242,10 +243,10 @@ place? Can you find a smaller encoding?

      • Makefile - entry Makefile
      • sloane.alt.c - alternative source
      • sloane.orig.c - original source
      • -
      • 2006_sloane.tar.bz2 - download entry tarball

      Secondary files

        +
      • 2006_sloane.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/2006/stewart/.entry.json b/2006/stewart/.entry.json index 1691aa97c..9ee6830da 100644 --- a/2006/stewart/.entry.json +++ b/2006/stewart/.entry.json @@ -363,7 +363,7 @@ }, { "file_path" : "2006_stewart.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2006/stewart/index.html b/2006/stewart/index.html index 7a0237e0b..dc2175cab 100644 --- a/2006/stewart/index.html +++ b/2006/stewart/index.html @@ -88,6 +88,7 @@ @@ -141,9 +142,9 @@ Location: US - United States of America

        To build:

        -
            make
        +
            make

        To use:

        -
            ./stewart width_and_height iterations file > file.xbm
        +
            ./stewart width_and_height iterations file > file.xbm
             convert file.xbm file.png

        where file is one of:

            altar box box2 box3 build carpet circles cross cross2 cross3
        @@ -154,7 +155,7 @@ Location: US - United States of America
         

        NOTE: you cannot specify a different width from height; it’s one number.

        NOTE: convert(1) belongs to ImageMagick.

        Try:

        -
            ./try.sh
        +
            ./try.sh

        After running the program on a few files it will ask you if you wish to run it on the remaining files.

        The script will try converting the xbm files created by the program to png @@ -171,7 +172,7 @@ a reasonably experienced user who can parse formats in their mind. :-)

        Author’s remarks:

        Execution

        The program should be run with the following

        -
            ./stewart <m> <n> <ifs>
        +
            ./stewart <m> <n> <ifs>

        where:

            m   = The size of the picture (picture will be m X m in size).
             n   = The number of iterations to run (More will make for a
        @@ -181,7 +182,7 @@ a reasonably experienced user who can parse formats in their mind. :-)

        on standard out. Minimal checking is done on the arguments mainly that there are 3. Wrong arguments will cause the program to bomb out.

        Example:

        -
            ./stewart 1024 1000000 gasket > gasket.xbm
        +
            ./stewart 1024 1000000 gasket > gasket.xbm

        Compilation/Testing

        The program compiles without warning with gcc -ansi -Wall. lint also seems to like the code. This must be a bug in lint.

        @@ -330,10 +331,10 @@ choice from a file size standpoint. 1024x1024 image is 641k in size.

      • tree4 - sample input
      • tree - sample input
      • triangle - sample input
      • -
      • 2006_stewart.tar.bz2 - download entry tarball

      Secondary files

        +
      • 2006_stewart.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/2006/sykes1/.entry.json b/2006/sykes1/.entry.json index 02a0cc6b9..e19dad63b 100644 --- a/2006/sykes1/.entry.json +++ b/2006/sykes1/.entry.json @@ -67,7 +67,7 @@ }, { "file_path" : "2006_sykes1.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2006/sykes1/index.html b/2006/sykes1/index.html index a075a09d3..259ede5bc 100644 --- a/2006/sykes1/index.html +++ b/2006/sykes1/index.html @@ -88,6 +88,7 @@ @@ -141,7 +142,7 @@ Location: FI - Republic of Finland

        To build:

        -
            make
        +
            make

        There is an alt version based on the author’s remarks. The try.sh script will compile and use both but if you wish to see the alternate version specifically see the Alternate code section below.

        @@ -150,18 +151,18 @@ specifically see the Alternate code section below.
            STATUS: INABIAF - please **DO NOT** fix

        For more detailed information see 2006 sykes1 bugs.

        To use:

        -
            ./sykes1
        +
            ./sykes1

        Next point your browser to the file: sykes1.html.

        Try:

        -
            ./sykes1 10
        +
            ./sykes1 10

        Refresh your browser.

        You might also try:

        -
            ./try.sh
        +
            ./try.sh

        This will run both the original entry and the alt code to show some differences.

        Also try:

        If you have all day :-) and wish to find out how fast your machine can solve the maximum:

        -
            time ./sykes1 19186
        +
            time ./sykes1 19186

        This was done on a Rocky Linux 9.2 server with Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz with 16 cores (via HyperThreading):

            real        6m35.524s
             user        6m35.159s
        @@ -173,17 +174,17 @@ maximum:

        Alternate code:

        This alternate code is based on the author’s remarks.

        Alternate build:

        -
            make alt
        +
            make alt

        Alternate use:

        Use sykes1.alt as you would sykes1 above.

        Alternate try:

        The try.sh script will use both versions to show some differences. You can do so like:

        -
            ./try.sh
        +
            ./try.sh

        Judges’ remarks:

        Read the sykes1.html page source. Now then read the C source. Confused? :-) If it’s not clear try:

        -
            diff -s sykes1.c sykes1.html
        +
            diff -s sykes1.c sykes1.html

        For extra credit, understand what happens when you give this entry an negative number argument, and why.

        See the author’s remarks for how to make your own shapes as well.

        @@ -200,7 +201,7 @@ together. I have not known anyone to solve it in this way - you would need to be very lucky indeed to stumble across a solution.

        Instructions

        Compile the program, then test that it works:

        -
            ./sykes1
        +
            ./sykes1

        Shortly you should see the first solution pop out on your screen. It shows you how to build the cube piece by piece, rendered in glorious 3D ASCII.

        @@ -210,18 +211,18 @@ open the file sykes1.html. This html file is just a co the browser display for you a nice animated GIF, showing you how to build the cube. Rendered in glorious 3D color.

        Want to see another solution? Try:

        -
            ./sykes1 some_number
        +
            ./sykes1 some_number

        The program will discard solutions up to the number, and output numbered solution. Refresh your browser window to see the new solution.

        Try some more - there are exactly 19186 solutions to choose from.

        If you have a fast machine you might try the last solution:

        -
            ./sykes1 19186
        +
            ./sykes1 19186

        On my machine this takes about half an hour to run.

        Implementation

        The implementation is an optimized recursive algorithm that tries to fit the pieces into the cube one by one. The cube pieces are defined near the start of the program:

        -
            int s[ ] = { 186, 94, 1426, 3098
        +
            int s[ ] = { 186, 94, 1426, 3098
                     ,1047 , 122 , 1082 , 3083 , 1039
                     , 569 , 527 , 1054 , 531  }  ;

        Each piece is a bitmap, and represents a 3x3x3 cube.

        @@ -256,7 +257,7 @@ shape:

        the pieces, and provided that a solution is possible, it will be found.

        For example, if you modify line 13 of the source like this, the program will solve for a different piece set:

        -
            int s[ ] = { 187, 94, 402, 3098
        +
            int s[ ] = { 187, 94, 402, 3098

        And of course you can make your own.

        After the pieces are defined, the first thing the program does it to fit them into a 4x4 cube. It collects every possible placing of each @@ -334,10 +335,10 @@ advantage - at least I don’t violate any of those old Unisys patents!

      • bedlam-cubes.pdf - instructions on how to make your own cube
      • solving-bedlam-cube.mp4 - spoiler movie showing the solution
      • try.sh - how to run
      • -
      • 2006_sykes1.tar.bz2 - download entry tarball

      Secondary files

        +
      • 2006_sykes1.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/2006/sykes2/.entry.json b/2006/sykes2/.entry.json index 9f138bfa0..7cfde54b3 100644 --- a/2006/sykes2/.entry.json +++ b/2006/sykes2/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2006_sykes2.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2006/sykes2/index.html b/2006/sykes2/index.html index f7785325c..5e912377d 100644 --- a/2006/sykes2/index.html +++ b/2006/sykes2/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: FI - Republic of Finland

        To build:

        -
            make
        +
            make

        To use:

        -
            ./sykes2
        +
            ./sykes2

        Try:

        -
            ./try.sh
        +
            ./try.sh

        This will repeatedly remake the program and run it then sleep for one second for a nice show of time.

        Judges’ Comments:

        @@ -194,10 +195,10 @@ multiple times per second for a long time. Run at your own risk!

      • Makefile - entry Makefile
      • sykes2.orig.c - original source
      • try.sh - how to run
      • -
      • 2006_sykes2.tar.bz2 - download entry tarball

      Secondary files

        +
      • 2006_sykes2.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/2006/toledo1/.entry.json b/2006/toledo1/.entry.json index b76eb07f8..9ca1df9bf 100644 --- a/2006/toledo1/.entry.json +++ b/2006/toledo1/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2006_toledo1.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2006/toledo1/index.html b/2006/toledo1/index.html index 9c30da72a..f5ff0668d 100644 --- a/2006/toledo1/index.html +++ b/2006/toledo1/index.html @@ -88,6 +88,7 @@ @@ -141,12 +142,12 @@ Location: MX - United Mexican States

        To build:

        -
            make
        +
            make

        To use:

        -
            ./toledo1 [0-9][0-9]
        +
            ./toledo1 [0-9][0-9]

        where [0-9][0-9] is a two digit number.

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Judges’ remarks:

        For most of the arguments (e.g. those above) the resulting path is not circular, but at least one starting point yields a circular path.

        @@ -157,7 +158,7 @@ be expected, and some dump core?

        visit the 64 squares without repeating them?

        If not, this program does it, just run it with an argument giving initial position.

        -
            ./toledo1 11       # start is A8
        +
            ./toledo1 11       # start is A8
             ./toledo1 18       # start is H8
             ./toledo1 81       # start is A1
             ./toledo1 88       # start is H1
        @@ -192,10 +193,10 @@ Nevertheless, don’t be dismayed, jar, jar. :-)

      • Makefile - entry Makefile
      • toledo1.orig.c - original source
      • try.sh - how to run
      • -
      • 2006_toledo1.tar.bz2 - download entry tarball

      Secondary files

      Secondary files

        +
      • 2006_toledo2.tar.bz2 - download entry tarball
      • index.html - this web page
      • A - binary support file
      • B - binary support file
      • diff --git a/2006/toledo3/.entry.json b/2006/toledo3/.entry.json index c04c52a54..4e0e59313 100644 --- a/2006/toledo3/.entry.json +++ b/2006/toledo3/.entry.json @@ -67,7 +67,7 @@ }, { "file_path" : "2006_toledo3.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2006/toledo3/index.html b/2006/toledo3/index.html index 748216c8d..d0c5a354c 100644 --- a/2006/toledo3/index.html +++ b/2006/toledo3/index.html @@ -88,6 +88,7 @@ @@ -141,14 +142,14 @@ Location: MX - United Mexican States

        To build:

        -
            make
        +
            make

        The author provided two alternate versions, one which adds a status bar and another that makes it text only. The author also provided a version that they tested with Windows. See alternate code below.

        To use:

        -
            ./toledo3 [1 | 2 | 3 [b]]
        +
            ./toledo3 [1 | 2 | 3 [b]]

        Try:

        -
            ./toledo3 1
        +
            ./toledo3 1

        Alternate code:

        The author provided two additional versions, toledo3-sbar.c and toledo3-txt.c. Respectively these create a status bar and @@ -172,7 +173,7 @@ the code for Deep Blue.

        So I managed to do a graphical X11 chess program (‘WYSIAIE’, or ‘What You See Is An IOCCC Entry’). Pointing and clicking to move pieces is the only required action, and of course the command-line options:

        -
            ./toledo3        # Two-players mode (useful if you don't have a board at hand)
        +
            ./toledo3        # Two-players mode (useful if you don't have a board at hand)
             ./toledo3 1      # Human white - Computer black, level 1 (fast)
             ./toledo3 2      # Human white - Computer black, level 2 (medium)
             ./toledo3 3      # Human white - Computer black, level 3 (slow)
        @@ -196,7 +197,7 @@ optimizations use valuable IOCCC characters.

        number generator.

        Because it is resource-hungry, I strongly recommend to compile it using maximum optimization. With GCC you can use:

        -
            gcc -O3 -fexpensive-optimizations prog.c -o prog -lX11
        +
            gcc -O3 -fexpensive-optimizations prog.c -o prog -lX11

        KNOWN “FEATURES”

        1. Because this is my second X11 program (the first was @@ -254,10 +255,10 @@ rules) creates a status display about gameplay on the window title bar.

        2. toledo3-sbar.c - source to create a status bar
        3. toledo3-txt.c - source to make the game text
        4. layer.c - windows portability source
        5. -
        6. 2006_toledo3.tar.bz2 - download entry tarball

      Secondary files

        +
      • 2006_toledo3.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/2011/akari/.entry.json b/2011/akari/.entry.json index 190ed2bc3..dacd6b6cf 100644 --- a/2011/akari/.entry.json +++ b/2011/akari/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "2011_akari.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2011/akari/index.html b/2011/akari/index.html index 7bd62bb46..119c1ec87 100644 --- a/2011/akari/index.html +++ b/2011/akari/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: US - United States of America

        To build:

        -
            make
        +
            make

        To use:

        -
            ./akari [ input_file | - ] [ output_file | - ]  [even]
        +
            ./akari [ input_file | - ] [ output_file | - ]  [even]

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Judges’ remarks:

        Akari is an image downsampling utility that accepts 3 input formats:

          @@ -171,7 +172,7 @@ will read from stdin.

          scanlines. By default Akari will keep odd pixels on odd scanlines.

          Examples:

          -
              gcc akari.c -o akari
          +
              gcc akari.c -o akari
               ./akari < example.ppm > odd_output.ppm
               ./akari - - even < example.ppm > even_output.ppm
               ./akari example.ppm odd_output.ppm
          @@ -192,22 +193,22 @@ the included example.ppm.

          Anything that is not parsable as PGM or PPM will be downsampled as ASCII art. Since the source code is formatted as ASCII art, it’s only natural to try:

          -
              ./akari akari.c akari2.c
          +
              ./akari akari.c akari2.c

          akari2.c is also a valid C program, and accepts up to 1 argument. By default, this second program reads text from stdin and writes expanded output to stdout. If the extra argument is specified, the output text will also pass through a rot13 filter.

          -
              gcc akari2.c -o akari2
          +
              gcc akari2.c -o akari2
               ./akari2 < input.txt > expanded_output.txt
               ./akari2 rot13 < input.txt > expanded_and_rot13_output.txt

          You can combine the two programs together to have just a regular rot13 filter:

          -
              ./akari2 rot13 < input.txt | ./akari > rot13.txt
          +
              ./akari2 rot13 < input.txt | ./akari > rot13.txt

          Of course, we wouldn’t stop with just 2 programs, you can downsample the source again and get yet another C program:

          -
              ./akari < akari.c | ./akari > akari3.c
          +
              ./akari < akari.c | ./akari > akari3.c

          We must go deeper:

          -
              ./akari < akari.c | ./akari | ./akari > akari4.c
          +
              ./akari < akari.c | ./akari | ./akari > akari4.c

          akari3.c and akari4.c are still (mostly valid) C programs. gcc -Wall will output a few warnings, but still produce output executables. The output executables each print a message to stdout.

          @@ -243,10 +244,10 @@ a brainf#$% program in a C program, for example. For comparison, a
        • akari.orig.c - original source
        • example.ppm - input image
        • try.sh - how to run
        • -
        • 2011_akari.tar.bz2 - download entry tarball

        Secondary files

          +
        • 2011_akari.tar.bz2 - download entry tarball
        • index.html - this web page
        • README.md - markdown source for this web page
        • .entry.json - description of entry in JSON
        • diff --git a/2011/blakely/.entry.json b/2011/blakely/.entry.json index 00134cbf2..0c23d691a 100644 --- a/2011/blakely/.entry.json +++ b/2011/blakely/.entry.json @@ -67,7 +67,7 @@ }, { "file_path" : "2011_blakely.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2011/blakely/index.html b/2011/blakely/index.html index 1e28e538c..5b235b94d 100644 --- a/2011/blakely/index.html +++ b/2011/blakely/index.html @@ -88,6 +88,7 @@ @@ -141,14 +142,14 @@ Location: GB - United Kingdom of Great

          To build:

          -
              make
          +
              make

          To use:

          Zoom out and make your terminal window 53 or more lines deep.

          -
              ./blakely < blakely.c | head -300
          +
              ./blakely < blakely.c | head -300

          Try:

          -
              ./try.sh
          +
              ./try.sh

          For those who have a lot of time, try:

          -
              ./blakely < t0_3.dat
          +
              ./blakely < t0_3.dat

          though one might or might not need to kill it, depending on your boredom threshold.

          Judges’ remarks:

          @@ -158,14 +159,14 @@ if given its own source as input, and allows to check if your garden is a Garden of Eden, all in one source.

          If you have enough time to spare, put the plan of your garden in a text file, and run:

          -
              ./blakely - < garden.txt
          +
              ./blakely - < garden.txt

          Author’s remarks:

          This program uses a well-known algorithm in order to display pi to fifteen decimal places. The source-layout itself demonstrates the importance of using the correct amount of whitespace in code and the clear superiority of spaces over tabs.

          In order to see the main feature of the code, type:

          -
              ./blakely < blakely.c
          +
              ./blakely < blakely.c

          and wait for about four seconds before using Ctrl-C (or whatever) to end the program. The results are best viewed in a terminal window at least 60 characters high and wide. Alternatively, redirect the output to a separate file @@ -176,12 +177,12 @@ Life”, using standard input as a starting grid. The layout of the source-code is such that it evolves to a digital representation of the first 15 decimal places of pi after 4 time steps. This was setup using the other feature of the program which can be demonstrated as follows:

          -
              ./blakely - < 3.dat
          +
              ./blakely - < 3.dat

          The program will first display the grid given in 3.dat, and then three more grids (taking a few minutes to display the last). Waiting for any more grids will take a substantial amount of time. The final grid has been put into evolve_to_3.dat, and if you type

          -
              ./blakely < evolve_to_3.dat
          +
              ./blakely < evolve_to_3.dat

          then the 3 will reappear after three time steps.

          As should now be clear, this use of the program will attempt to evolve a given setup backwards in time according to the Life rules. The resulting grid is clearly not @@ -329,10 +330,10 @@ universe.

        • evolve_to_3.dat - input data
        • t0_3.dat - input data
        • try.sh - how to run
        • -
        • 2011_blakely.tar.bz2 - download entry tarball

        Secondary files

          +
        • 2011_blakely.tar.bz2 - download entry tarball
        • index.html - this web page
        • README.md - markdown source for this web page
        • .entry.json - description of entry in JSON
        • diff --git a/2011/borsanyi/.entry.json b/2011/borsanyi/.entry.json index 5bf8cb13f..d1786b9c4 100644 --- a/2011/borsanyi/.entry.json +++ b/2011/borsanyi/.entry.json @@ -67,7 +67,7 @@ }, { "file_path" : "2011_borsanyi.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2011/borsanyi/index.html b/2011/borsanyi/index.html index a63a9967a..044dbf2dc 100644 --- a/2011/borsanyi/index.html +++ b/2011/borsanyi/index.html @@ -88,6 +88,7 @@ @@ -141,15 +142,15 @@ Location: DE - Federal Republic of Germ

          To build:

          -
              make
          +
              make

          Bugs and (Mis)features:

          The current status of this entry is:

              STATUS: INABIAF - please **DO NOT** fix

          For more detailed information see 2011 borsanyi bugs.

          To use:

          -
              ./borsanyi < some_data_file
          +
              ./borsanyi < some_data_file

          Try:

          -
              ./try.sh
          +
              ./try.sh

          Judges’ remarks:

          This is a nice quick histogram plotter. A useful utility when you need to look at the distribution of some @@ -223,10 +224,10 @@ and each of them is put into its own bin afterwards. But where are the bins?data.1 - sample input

        • data.2 - sample input
        • data.3 - sample input
        • -
        • 2011_borsanyi.tar.bz2 - download entry tarball

        Secondary files

          +
        • 2011_borsanyi.tar.bz2 - download entry tarball
        • index.html - this web page
        • README.md - markdown source for this web page
        • .entry.json - description of entry in JSON
        • diff --git a/2011/dlowe/.entry.json b/2011/dlowe/.entry.json index 354d4e93f..b0637eaec 100644 --- a/2011/dlowe/.entry.json +++ b/2011/dlowe/.entry.json @@ -387,7 +387,7 @@ }, { "file_path" : "2011_dlowe.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2011/dlowe/index.html b/2011/dlowe/index.html index cbc6b7c24..8d36904ce 100644 --- a/2011/dlowe/index.html +++ b/2011/dlowe/index.html @@ -88,6 +88,7 @@ @@ -141,23 +142,23 @@ Location: US - United States of America

          To build:

          -
              make
          +
              make

          Bugs and (Mis)features:

          The current status of this entry is:

              STATUS: missing or dead link - please provide them
               STATUS: INABIAF - please **DO NOT** fix

          For more detailed information see 2011 dlowe bugs.

          To use:

          -
              ./dlowe -<n_iterations> corpus1/ [...] corpus0/ < start.net > trained.net
          +
              ./dlowe -<n_iterations> corpus1/ [...] corpus0/ < start.net > trained.net

          NOTE: In the above command, the directory args MUST end in a /.

          Then to use trained.net:

          -
              ./dlowe file [file ...] < trained.net
          +
              ./dlowe file [file ...] < trained.net

          Try:

          Try these pre-trained networks:

          -
              ./try.sh
          +
              ./try.sh

          NOTE: The dlowe-aux-data/ directory, which try.sh refers to, was created by:

          -
              tar -jxf dlowe-aux-data.tar.bz2
          +
              tar -jxf dlowe-aux-data.tar.bz2

          Judges’ remarks:

          This entry is a ghoulish example of a brain (dead?) neural network classifier. It comes with a set of corpora for you to try.

          @@ -166,7 +167,7 @@ It comes with a set of corpora for you to try.

          on the C code of entries that were supplied to the 20Th IOCCC.

          The ioccc-winlose-trained.net was trained using the earlystop.pl tool:

          -
              rm -f ioccc-winlose-trained.net
          +
              rm -f ioccc-winlose-trained.net
               ./earlystop.pl ioccc-winlose-trained.net ioccc_won_training/ ioccc_lost_training/ ioccc_won_test/ ioccc_lost_test/

          where:

            @@ -191,7 +192,7 @@ that did not win were flushed to /dev/null.

            dlowe-aux-data.tar.bz2 tarball.

            The dlowe.c was explicitly excluded from this trailing set, so this test is interesting:

            -
                ./dlowe dlowe.c < dlowe-aux-data/ioccc-winlose-trained.net
            +
                ./dlowe dlowe.c < dlowe-aux-data/ioccc-winlose-trained.net

            NOTE: this is done in try.sh.

            The match of dlowe.c to the lose/win trailed network was:

                dlowe.c 0.125108
            @@ -203,7 +204,7 @@ mean it will win or lose a future IOCCC. On the other hand … it just might!

            While we cannot supply you with the losing IOCCC source code, the author did supply a number data sets on which to test:

            We created the english-trained.net as follows:

            -
                ./dlowe -8000 dlowe-aux-data/english-1/ dlowe-aux-data/english-0/ < /dev/null > dlowe-aux-data/english-trained.net
            +
                ./dlowe -8000 dlowe-aux-data/english-1/ dlowe-aux-data/english-0/ < /dev/null > dlowe-aux-data/english-trained.net
            • dlowe-aux-data/english-0/ Non-English (French) text

            • @@ -211,7 +212,7 @@ Non-English (French) text

              English (non-French) text

            We created the png-trained.net as follows:

            -
                ./dlowe -8000 png-1/ png-0/ < /dev/null > dlowe-aux-data/png-trained.net
            +
                ./dlowe -8000 png-1/ png-0/ < /dev/null > dlowe-aux-data/png-trained.net
            • dlowe-aux-data/png-0/ Non-png (gif) images

            • @@ -219,7 +220,7 @@ Non-png (gif) images

              png (non-gif) images

            We created the xor-trained.net as follows:

            -
                ./dlowe -8000 dlowe-aux-data/xor-1/ dlowe-aux-data/xor-0/ < /dev/null > dlowe-aux-data/xor-trained.net
            +
                ./dlowe -8000 dlowe-aux-data/xor-1/ dlowe-aux-data/xor-0/ < /dev/null > dlowe-aux-data/xor-trained.net
            • dlowe-aux-data/xor-0 Data that XORs to 0

            • @@ -242,7 +243,7 @@ which can be trained, using on-line neuron.

              The neurons’ activation function is the logistic function 1 / (1 + e ^ -x).

              Classifying

              -
                  ./dlowe file [file ...] < trained.net
              +
                  ./dlowe file [file ...] < trained.net

              To classify files, one specifies a trained network (on stdin) and one or more files to classify. The program will output one line per successfully-classified file to stderr, with the filename and the classification: a number between 0 @@ -251,7 +252,7 @@ and 1.

              trained, but it’s geared toward interpretation as a probability or a confidence.

              Training

              -
                  ./dlowe -<n_iterations> corpus1/ [...] corpus0/ < start.net > end.net
              +
                  ./dlowe -<n_iterations> corpus1/ [...] corpus0/ < start.net > end.net

              NOTE: The directory args must end in a / for them to work.

              To train a network, one specifies a starting network (on stdin), two or more corpora (directories containing training data), and the number of training @@ -415,10 +416,10 @@ by a network trained to recognize IOCCC entries

            • dlowe-aux-data/png-1/obfuscate4e.png - training image for neural networks
            • dlowe-aux-data/png-1/obfuscation-decoder.png - training image for neural networks
            • dlowe-aux-data/png-1/obfuscation_methods.png - training image for neural networks
            • -
            • 2011_dlowe.tar.bz2 - download entry tarball

            Secondary files

              +
            • 2011_dlowe.tar.bz2 - download entry tarball
            • index.html - this web page
            • README.md - markdown source for this web page
            • dlowe-aux-data/english-trained.net - trained neural network for English text
            • diff --git a/2011/eastman/.entry.json b/2011/eastman/.entry.json index d0d7328cf..172676457 100644 --- a/2011/eastman/.entry.json +++ b/2011/eastman/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2011_eastman.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2011/eastman/index.html b/2011/eastman/index.html index f0d1d7b30..82cda0d1f 100644 --- a/2011/eastman/index.html +++ b/2011/eastman/index.html @@ -88,6 +88,7 @@ @@ -141,14 +142,14 @@ Location: US - United States of America

              To build:

              -
                  make
              +
                  make

              To use:

              -
                  ./eastman
              +
                  ./eastman

              NOTE: to restore your cursor in your shell, try reset.

              Try:

              Run the program. Quit it (ctrl-c/intr). Resize your terminal window. Run it again. Try doing this a number of times with different sizes each time.

              -
                  ./eastman
              +
                  ./eastman

              NOTE: to restore your cursor in your shell, try reset.

              Judges’ remarks:

              This round program will generate a classic spherical result!

              @@ -173,7 +174,7 @@ is also just part of the texture, not an actual raytraced shadow.

              so try enlarging the window to get higher resolution. Don’t resize while the program is running, though. It only checks the size once, when it starts up.

              To compile:

              -
                  cc -lm eastman.c
              +
                  cc -lm eastman.c

              Portability

              It should be completely portable. I’ve tested with gcc on Mac OS X 10.7 (Lion) and Fedora 10. I would expect it to work in any Unix-like environment.

              @@ -224,10 +225,10 @@ better. And so on.

            • Makefile - entry Makefile
            • eastman.orig.c - original source
            • boing-ball.mp4 - original Amiga bouncing ball demo
            • -
            • 2011_eastman.tar.bz2 - download entry tarball

            Secondary files

              +
            • 2011_eastman.tar.bz2 - download entry tarball
            • index.html - this web page
            • README.md - markdown source for this web page
            • .entry.json - description of entry in JSON
            • diff --git a/2011/fredriksson/.entry.json b/2011/fredriksson/.entry.json index d9d7e64db..20477aa14 100644 --- a/2011/fredriksson/.entry.json +++ b/2011/fredriksson/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2011_fredriksson.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2011/fredriksson/index.html b/2011/fredriksson/index.html index 5d1eefd27..bc8ea63a3 100644 --- a/2011/fredriksson/index.html +++ b/2011/fredriksson/index.html @@ -88,6 +88,7 @@ @@ -141,15 +142,15 @@ Location: FI - Republic of Finland

              To build:

              -
                  make
              +
                  make

              Bugs and (Mis)features:

              The current status of this entry is:

                  STATUS: INABIAF - please **DO NOT** fix

              For more detailed information see 2011 fredriksson bugs.

              To use:

              -
                  ./fredriksson [-icvtnk#] regexp < file
              +
                  ./fredriksson [-icvtnk#] regexp < file

              Try:

              -
                  ./try.sh
              +
                  ./try.sh

              NOTE: you need to be allowed to change your stack size or else the last command in the script would likely cause the program to dump core, which is why the script checks the exit code of ulimit first.

              @@ -165,7 +166,7 @@ program and calls it. As an exercise, try writing the compressor.

              Implements a variant of grep.

              Usage

              To search regexp from file, do:

              -
                  ./fredriksson [-icvtnk#] regexp < file
              +
                  ./fredriksson [-icvtnk#] regexp < file

              Pipes might not work, see the section Limitations. The options -i, -c, -v and -n are the classic ones:

                @@ -220,11 +221,11 @@ expressions by putting ] as the first character, and putting
              • You can use this in place of cat. Just say
              -
                  ./fredriksson -k3 cat < file
              +
                  ./fredriksson -k3 cat < file
              • Like with cat, you can append line numbers too:
              -
                  ./fredriksson -nk3 cat < file
              +
                  ./fredriksson -nk3 cat < file

              Other features

              • It is assumed that the user knows how to feed correct input to the @@ -256,7 +257,7 @@ you can easily use long long instead,

              • Depending on the file, it might require a lot of stack space. If the program segfaults (because of this), say

              -
                  ulimit -s unlimited
              +
                  ulimit -s unlimited

              cross your fingers, hope it is enough, and try again.

              • Assumes C99 standard, because of the one very long line. Most C compilers @@ -284,7 +285,7 @@ as well as its name and commands to build and run it, all extracts and builds that, and then calls it. More precisely, the command to build is

              -
                  gcc -O3 ag.c -o ag
              +
                  gcc -O3 ag.c -o ag

              To change that you need to edit the char array p[] and (possibly) two specially encoded constants, -~('('*'(') and 'C'*' '-'-'. The extracted source (ag.c) is obfuscated as well.

              @@ -333,10 +334,10 @@ Two’s complement representation of integers is also abused. E.g. instead of writing x++ or x-1, it is much better to write x=-~x and ~-x.

            • No numerical values, other than in the initialized char array, try

            -
                ./fredriksson -ck0 [0-9] < fredriksson.c
            +
                ./fredriksson -ck0 [0-9] < fredriksson.c

            This should print 1, as there is a number 3 in the char array (only). You can also try

            -
                ./fredriksson -ck0 [0-9] < ag.c
            +
                ./fredriksson -ck0 [0-9] < ag.c

            after running fredriksson at least once (since this generates that ag.c file), and this should print 0.

            Secondary files

              +
            • 2011_fredriksson.tar.bz2 - download entry tarball
            • index.html - this web page
            • README.md - markdown source for this web page
            • .entry.json - description of entry in JSON
            • diff --git a/2011/goren/.entry.json b/2011/goren/.entry.json index dc5145db4..d835b4d66 100644 --- a/2011/goren/.entry.json +++ b/2011/goren/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "2011_goren.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2011/goren/index.html b/2011/goren/index.html index a0f9d4982..b36fa4de2 100644 --- a/2011/goren/index.html +++ b/2011/goren/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: IL - State of Israel (

              To build:

              -
                  make
              +
                  make

              To use:

              -
                  echo "some text" | ./goren
              +
                  echo "some text" | ./goren

              Try:

              -
                  ./try.sh
              +
                  ./try.sh

              Judges’ remarks:

              In the words of René François Ghislain Magritte Magritte:

              @@ -153,9 +154,9 @@ Location: IL - State of Israel (

              One may ask the surrealist question:

              -
                  echo 'If | is just a representation of a pipe, then how can data stuff it?' | ./goren
              +
                  echo 'If | is just a representation of a pipe, then how can data stuff it?' | ./goren

              However if one takes a firm stand and declares:

              -
                  echo '| is just a representation of a pipe because I say so! So stuff it!' | ./goren
              +
                  echo '| is just a representation of a pipe because I say so! So stuff it!' | ./goren

              something happens! Why?

              Author’s remarks:

              This program was written in homage to Rene @@ -220,10 +221,10 @@ It does work on 64-bit Linux, because all functions are below 4GB.

            • goren.orig.c - original source
            • MagrittePipe.jpg - this is not a pipe
            • try.sh - how to run
            • -
            • 2011_goren.tar.bz2 - download entry tarball

            Secondary files

              +
            • 2011_goren.tar.bz2 - download entry tarball
            • index.html - this web page
            • README.md - markdown source for this web page
            • .entry.json - description of entry in JSON
            • diff --git a/2011/hamaji/.entry.json b/2011/hamaji/.entry.json index 18ef8a527..58e8fa6d9 100644 --- a/2011/hamaji/.entry.json +++ b/2011/hamaji/.entry.json @@ -148,7 +148,7 @@ }, { "file_path" : "2011_hamaji.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2011/hamaji/index.html b/2011/hamaji/index.html index e25114aac..1633cf945 100644 --- a/2011/hamaji/index.html +++ b/2011/hamaji/index.html @@ -88,6 +88,7 @@ @@ -144,14 +145,14 @@ Location: JP - Japan

              To build:

              -
                  make
              +
                  make

              To use:

              -
                  ./hamaji < a_nonogram_file
              +
                  ./hamaji < a_nonogram_file

              Try:

              -
                  ./try.sh
              +
                  ./try.sh

              If you have perl installed you should be able to reproduce dragon.nono like:

              -
                  perl c2nono.pl hamaji.c | ./hamaji
              +
                  perl c2nono.pl hamaji.c | ./hamaji

              Judges’ remarks:

              This program solves Nonograms which is also known as “Paint by Numbers”.

              @@ -260,7 +261,7 @@ with the well obfuscated code.

              Portability

              This program uses two C99 features. One line comments and long long. GCC’s -ansi -pedantic check should pass:

              -
                  cc -ansi -pedantic -std=c99 hamaji.c
              +
                  cc -ansi -pedantic -std=c99 hamaji.c

              I checked my program with gcc-4.6.2 on linux, llvm-gcc-4.2 on Mac, and clang-3.0 on Mac.

              Note that the behavior of scanf(3) differs on linux and mac, but this @@ -269,7 +270,7 @@ program supports both semantics.

              memory layout, undefined evaluation order (e.g., a[i++]=i), etc. This program won’t work if the size of long long literal is less than 8. By grepping the source code of gcc

              -
                  grep LONG_LONG_TYPE_SIZE gcc/config/*/*
              +
                  grep LONG_LONG_TYPE_SIZE gcc/config/*/*

              I found long long may be 32bit integers only on AVR.

              A few more things

              This code is considered as a new year’s postcard in @@ -287,7 +288,7 @@ was randomly generated. The codegolf.nono and https://web.archive.org/web/20130218055139/http://codegolf.com/paint-by-numbers.

              You can reproduce dragon.nono from hamaji.c using c2nono.pl:

              -
                  perl c2nono.pl hamaji.c | ./hamaji
              +
                  perl c2nono.pl hamaji.c | ./hamaji

              To build:

              -
                  make
              +
                  make

              To use:

              -
                  ./hou 'expression'
              +
                  ./hou 'expression'

              Try:

              -
                  ./try.sh
              +
                  ./try.sh

              As the script asks you, what does the last one mean? Can you get it to report a different value? Hint: it’s in this file, kind of.

              Judges’ remarks:

              @@ -154,11 +155,11 @@ warnings under the most strict pedantic mode of gcc and clang.

              The first example, along with the correct result appears in the source code. What does it mean?

              The calculator obeys the precedence rules and allows parenthesis.

              -
                  ./hou '1+2*3'
              +
                  ./hou '1+2*3'
                   ./hou '(1+2)*3'

              What exactly does the text formatting do?

              What does this evaluate to in C?

              -
                  +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
              +
                  +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+

              Self documenting source

              Comments would almost be redundant. :-}

              The ASCII art is valid C code

              @@ -236,10 +237,10 @@ it produces something resembling the bitmask hash table as part of its output.Makefile - entry Makefile
            • hou.orig.c - original source
            • try.sh - how to run
            • -
            • 2011_hou.tar.bz2 - download entry tarball

            Secondary files

              +
            • 2011_hou.tar.bz2 - download entry tarball
            • index.html - this web page
            • README.md - markdown source for this web page
            • .entry.json - description of entry in JSON
            • diff --git a/2011/index.html b/2011/index.html index 1289a7620..781982c67 100644 --- a/2011/index.html +++ b/2011/index.html @@ -86,6 +86,7 @@ diff --git a/2011/konno/.entry.json b/2011/konno/.entry.json index 5d200555d..6267397bf 100644 --- a/2011/konno/.entry.json +++ b/2011/konno/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2011_konno.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2011/konno/index.html b/2011/konno/index.html index 18c9d21ee..b566bd61b 100644 --- a/2011/konno/index.html +++ b/2011/konno/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: JP - Japan

              To build:

              -
                  make
              +
                  make

              To use:

              -
                  ./konno lower_case_word
              +
                  ./konno lower_case_word

              Try:

              -
                  ./try.sh
              +
                  ./try.sh

              Judges’ remarks:

              This tiny program outputs what looks like a tiny keyboard. OK, so the letters are missing. But that is no problem because @@ -192,10 +193,10 @@ Can you then minimize the size of that code?

            • Makefile - entry Makefile
            • konno.orig.c - original source
            • try.sh - how to run
            • -
            • 2011_konno.tar.bz2 - download entry tarball

            Secondary files

              +
            • 2011_konno.tar.bz2 - download entry tarball
            • index.html - this web page
            • README.md - markdown source for this web page
            • .entry.json - description of entry in JSON
            • diff --git a/2011/richards/.entry.json b/2011/richards/.entry.json index 7bd9476cf..b71c7914f 100644 --- a/2011/richards/.entry.json +++ b/2011/richards/.entry.json @@ -59,7 +59,7 @@ }, { "file_path" : "2011_richards.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2011/richards/index.html b/2011/richards/index.html index 3282c4aa5..1eef6b4f5 100644 --- a/2011/richards/index.html +++ b/2011/richards/index.html @@ -88,6 +88,7 @@ @@ -141,15 +142,15 @@ Location: US - United States of America

              To build:

              -
                  make
              +
                  make

              Bugs and (Mis)features:

              The current status of this entry is:

                  STATUS: doesn't work with some platforms - please help us fix

              For more detailed information see 2011 richards bugs.

              To use:

              -
                  echo expression | ./richards
              +
                  echo expression | ./richards

              Try:

              -
                  ./try.sh
              +
                  ./try.sh

              Judges’ remarks:

              Oh no, yet another dc-style calculator? (see @@ -231,10 +232,10 @@ flags:

            • richards.orig.c - original source
            • try.alt.sh - how to run alternative code
            • try.sh - how to run
            • -
            • 2011_richards.tar.bz2 - download entry tarball

            Secondary files

              +
            • 2011_richards.tar.bz2 - download entry tarball
            • index.html - this web page
            • README.md - markdown source for this web page
            • .entry.json - description of entry in JSON
            • diff --git a/2011/toledo/.entry.json b/2011/toledo/.entry.json index 4b177fb95..4db889952 100644 --- a/2011/toledo/.entry.json +++ b/2011/toledo/.entry.json @@ -67,7 +67,7 @@ }, { "file_path" : "2011_toledo.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2011/toledo/index.html b/2011/toledo/index.html index 659524df8..be2f0149d 100644 --- a/2011/toledo/index.html +++ b/2011/toledo/index.html @@ -88,6 +88,7 @@ @@ -142,12 +143,12 @@ Location: MX - United Mexican StatesTo build:

              If you have X11 installed:

              -
                  make
              +
                  make

              There are two alternate versions, one that lets you reconfigure the controls and size and another that should work for Windows. See Alternate code below.

              To use:

              -
                  ./toledo
              +
                  ./toledo

              Alternate code:

              The first alt version, toledo.alt.c, allows you to reconfigure the controls and the dimensions more easily.

              @@ -168,7 +169,7 @@ have the right names you can define the macros FIRE, FORWARD< HEIGHT= 288

          but you can change them about however you like, even with other keys. For instance to swap LEFT and RIGHT:

          -
              make clobber LEFT=XK_Right:XK_d RIGHT=XK_Left:XK_a alt
          +
              make clobber LEFT=XK_Right:XK_d RIGHT=XK_Left:XK_a alt

          but you can specify something completely else and you can pick and choose which controls you wish to redefine. You might also wish to change the dimensions of the game, WIDTH and HEIGHT which have an arbitrarily selected lower limit as @@ -184,7 +185,7 @@ the source early on, right before the code gets hard to follow, or using the alternate version.

          Like Oscar’s previous winning X11 program for the 19th IOCCC, if you remove both the X11 include files and replace them with

          -
              #include "layer.c"
          +
              #include "layer.c"

          you ought to be able to compile and run this program on Windows. NOTE: this is what toledo.alt2.c is for.

          Author’s remarks:

          @@ -379,10 +380,10 @@ another program.

        • toledo.orig.c - original source
        • keysym.h - included header file
        • layer.c - translation layer to make 3D Tanks game
        • -
        • 2011_toledo.tar.bz2 - download entry tarball

        Secondary files

          +
        • 2011_toledo.tar.bz2 - download entry tarball
        • index.html - this web page
        • README.md - markdown source for this web page
        • .entry.json - description of entry in JSON
        • diff --git a/2011/vik/.entry.json b/2011/vik/.entry.json index 7111e1f49..8e0a8b187 100644 --- a/2011/vik/.entry.json +++ b/2011/vik/.entry.json @@ -75,7 +75,7 @@ }, { "file_path" : "2011_vik.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2011/vik/index.html b/2011/vik/index.html index a345b8c88..891bd349d 100644 --- a/2011/vik/index.html +++ b/2011/vik/index.html @@ -88,6 +88,7 @@ @@ -141,7 +142,7 @@ Location: US - United States of America

          To build:

          -
              make
          +
              make

          There is an alternate version that should work for Windows. See alternate code below.

          Bugs and (Mis)features:

          @@ -149,14 +150,14 @@ code below.

              STATUS: INABIAF - please **DO NOT** fix

          For more detailed information see 2011 vik bugs.

          To use:

          -
              ./vik file.mod > audio_file.raw
          +
              ./vik file.mod > audio_file.raw

          If you have mplayer(1):

          -
              ./vik file.mod | mplayer -demuxer rawaudio -
          +
              ./vik file.mod | mplayer -demuxer rawaudio -

          Alternatively, you can convert the file to a WAV:

          -
              ./vik file.mod > file.raw; ./raw2wav file.raw > file.wav
          +
              ./vik file.mod > file.raw; ./raw2wav file.raw > file.wav

          and then play file.wav with a program that can play WAV files.

          Try:

          -
              ./try.sh
          +
              ./try.sh

          The script checks that you have mplayer(1) installed and if it is it will pipe vik to mplayer. In this case it will also use raw2wav to convert the file to a WAV file. If mplayer(1) cannot be found it will just use raw2wav. This @@ -168,7 +169,7 @@ Archive.

          This version is based on the author’s remarks and it should work for Windows.

          Alternate build:

          Assuming that make is similar enough try:

          -
              make alt
          +
              make alt

          Alternate use:

          Use vik.alt as you would vik above.

          Judges’ remarks:

          @@ -178,7 +179,7 @@ in a most pleasing manner if you don’t like tremolo or vibrato.

          initialized 32MB array. Can you tell what that partial initialization for?

          Does it take your system a long time to compile? You may want to do:

          -
              cc -S vik.c
          +
              cc -S vik.c

          and examine the resulting assembly file vik.s. On some platforms the assembly file is about 128MB in size!

          NOTE: The randowan.mod and mad_world.mod files were @@ -225,12 +226,12 @@ Bertilsson, also known as Deelite:

    Build

    Compiling for Unix systems (including cygwin) is straight forward:

    -
        gcc -o vik vik.c
    +
        gcc -o vik vik.c

    Usage

    Convert MOD file to raw 44.1kHz stereo audio file

    -
        ./vik mad_world.mod > audio_file.raw
    +
        ./vik mad_world.mod > audio_file.raw

    Listen to the MOD file (streaming to mplayer)

    -
        ./vik randowan.mod | mplayer -demuxer rawaudio -
    +
        ./vik randowan.mod | mplayer -demuxer rawaudio -

    (Don’t forget the last - as it makes mplayer read from stdin.)

    Obfuscation

    The IOCCC rules did not put a limit on the entropy of the source code, @@ -256,7 +257,7 @@ that the program relies on writing binary data to stdout.

    Microsoft compilers adds a carriage return to newlines, and to compile the program with this platform, the following line can be added after the main declaration in order for the program to run correctly:

    -
        _setmode(_fileno(stdout), 0x8000);
    +
        _setmode(_fileno(stdout), 0x8000);

    NOTE: this is what the alternate version is for.

    Limitations

    The program only runs when a valid MOD file is passed as argument. If @@ -292,10 +293,10 @@ no argument is passed, the program crashes.

  • randowan.mod - 4-channel Protracker module sound data
  • raw2wav - convert raw format to wav format
  • try.sh - how to run
  • -
  • 2011_vik.tar.bz2 - download entry tarball
  • Secondary files

      +
    • 2011_vik.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2011/zucker/.entry.json b/2011/zucker/.entry.json index 95b0c9fbc..742571f70 100644 --- a/2011/zucker/.entry.json +++ b/2011/zucker/.entry.json @@ -59,7 +59,7 @@ }, { "file_path" : "2011_zucker.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2011/zucker/index.html b/2011/zucker/index.html index 69b4a1666..c2a4a8d01 100644 --- a/2011/zucker/index.html +++ b/2011/zucker/index.html @@ -88,6 +88,7 @@ @@ -141,14 +142,14 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      There is an alternate version which should work for Windows which distinguishes binary mode from text mode. See alternate code below.

      To use:

      -
          ./zucker > image.ppm
      +
          ./zucker > image.ppm

      Now open image.ppm with your image viewer of choice.

      Try:

      -
          ./try.sh
      +
          ./try.sh

      After running try.sh, open the PPM images ioccc.ppm, hello.ppm and image2.ppm with your image viewer of choice.

      Alternate code:

      @@ -156,7 +157,7 @@ binary mode from text mode. See alternate code bel binary mode on stdout which the author noted would be necessary for systems that distinguish binary and text.

      Alternate build:

      -
          make alt
      +
          make alt

      Alternate use:

      Use zucker.alt as you would zucker above.

      Alternate try:

      @@ -170,7 +171,7 @@ The vector font is proportional.

      What it does:

      This program makes pretty pictures. To see the default output, try running

      -
          ./zucker > ioccc2011.ppm
      +
          ./zucker > ioccc2011.ppm

      On the author’s 2.5 GHz MacBook Pro, this command takes approximately 1 minute and 18 seconds to run – your runtime may vary. You will need an image viewer capable of displaying Netpbm images in @@ -179,20 +180,20 @@ well; otherwise ImageMagick and/or GraphicsMagick are both capable of displaying Netpbm files, and are available on multiple platforms.

      With macOS you can type at the command line:

      -
          open ioccc2021.ppm
      +
          open ioccc2021.ppm

      and it will open image in the default application Preview.app.

      To use ImageMagick you might do something like:

      -
          convert ioccc2011.ppm ioccc2011.png
      +
          convert ioccc2011.ppm ioccc2011.png

      and then open ioccc2011.png in your viewer of choice.

      To use GraphicsMagick you might do something like:

      -
          gm convert ioccc2011.ppm ioccc2011.png
      +
          gm convert ioccc2011.ppm ioccc2011.png

      and then open ioccc2011.png in your viewer of choice.

      Aside from the default image, you may create your own by running the program as follows:

      -
          ./zucker "your text" > image.ppm
      +
          ./zucker "your text" > image.ppm

      To mitigate long runtime, the program can be invoked in a “preview” mode by appending -preview to the command line arguments, like so:

      -
          ./zucker faster\! -preview > image.ppm
      +
          ./zucker faster\! -preview > image.ppm

      If your platform distinguishes between binary and text streams, you may need to insert some code to reopen standard output in binary mode at the start of main() (the provided alternate version will set binary mode @@ -306,10 +307,10 @@ Python, respectively).

    • zucker.orig.c - original source
    • sphere-tracing.pdf - research paper on antialiased ray tracing
    • try.sh - how to run
    • -
    • 2011_zucker.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2011_zucker.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2012/blakely/.entry.json b/2012/blakely/.entry.json index ab9ed2e05..108a71a6f 100644 --- a/2012/blakely/.entry.json +++ b/2012/blakely/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2012_blakely.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2012/blakely/index.html b/2012/blakely/index.html index b02a6b2f0..da9618772 100644 --- a/2012/blakely/index.html +++ b/2012/blakely/index.html @@ -88,6 +88,7 @@ @@ -141,15 +142,15 @@ Location: GB - United Kingdom of Great

      To build:

      -
          make
      +
          make

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 2012 blakely bugs.

      To use:

      -
          ./blakely "RPN formula" resolution > output.gif
      +
          ./blakely "RPN formula" resolution > output.gif

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      Several IOCCC themes (RPN calculator, animated @@ -169,7 +170,7 @@ resolution, and an animated GIF showing a fly-around of the resulting surface is output to stdout.

      Usage

      The program should be run as:

      -
          ./blakely xy* 32 > pic.gif
      +
          ./blakely xy* 32 > pic.gif

      where the first parameter is a RPN expression, and the second is the width of the required GIF, up @@ -201,7 +202,7 @@ and more complex expressions take longer to compute. For example, increasing the resolution of ripple.gif to 250 took ~35 minutes to render on an i7 processor.

      -
          ./blakely xy* 32 > saddle.gif
      +
          ./blakely xy* 32 > saddle.gif
       
           ./blakely xx*yy*1++d5*ct/ 64 > ripple.gif

      Algorithm

      @@ -263,10 +264,10 @@ questions.)

    • Makefile - entry Makefile
    • blakely.orig.c - original source
    • try.sh - how to run
    • -
    • 2012_blakely.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2012_blakely.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2012/deckmyn/.entry.json b/2012/deckmyn/.entry.json index fc291e42d..7ad515a98 100644 --- a/2012/deckmyn/.entry.json +++ b/2012/deckmyn/.entry.json @@ -67,7 +67,7 @@ }, { "file_path" : "2012_deckmyn.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2012/deckmyn/deckmyn.html b/2012/deckmyn/deckmyn.html index 52bb18e5f..636dbc124 100644 --- a/2012/deckmyn/deckmyn.html +++ b/2012/deckmyn/deckmyn.html @@ -83,6 +83,7 @@ @@ -124,7 +125,7 @@

      USER MANUAL

      Calling the program

      -
          ./deckmyn "`cat deckmyn.c`" "`cat musicfile`" > output.pbm
      +
          ./deckmyn "`cat deckmyn.c`" "`cat musicfile`" > output.pbm

      Then display output.pbm.

      This minimalistic music notator expects two command line arguments. The first is the font description embedded in the source code. Notice that you don’t pass the @@ -186,7 +187,7 @@ clef. "K" followed by any other letter will just default to a stand

      Examples

      Blank music paper (with G clef):

      -
          ./deckmyn "`cat deckmyn.c`" "sz sa x  s1 x  s1 x  s1 x  s1 x  s1 "> blank.pbm
      +
          ./deckmyn "`cat deckmyn.c`" "sz sa x  s1 x  s1 x  s1 x  s1 x  s1 "> blank.pbm

      With an F clef:

          ./deckmyn "`cat deckmyn.c`" "KF sz sa x  s1 x  s1 x  s1 x  s1 x  s1 "> blank.pbm

      Notice how only the first staff (or any staff) needs to have the full length.

      diff --git a/2012/deckmyn/index.html b/2012/deckmyn/index.html index d1ada52fd..dce6eaeef 100644 --- a/2012/deckmyn/index.html +++ b/2012/deckmyn/index.html @@ -88,6 +88,7 @@ @@ -141,15 +142,15 @@ Location: BE - Kingdom of Belgium

      To build:

      -
          make
      +
          make

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 2012 deckmyn bugs.

      To use:

      -
          ./deckmyn "$(cat deckmyn.c)" "$(cat musicfile.txt)" > sheetmusic.pbm
      +
          ./deckmyn "$(cat deckmyn.c)" "$(cat musicfile.txt)" > sheetmusic.pbm

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      The C of this entry is definitely sharp. The program cleverly uses its own source at runtime to define the notes, time signature and accidental bitmaps.

      @@ -168,14 +169,14 @@ is not done in the author’s remarks, however.

      You need the source code and example input (either one of the example files, or manual input as below) ready and a program capable of showing .pbm bitmap format images.

      -
          ./deckmyn "`cat deckmyn.c`" "`cat example_greensleeves`" > greensleeves.pbm
      +
          ./deckmyn "`cat deckmyn.c`" "`cat example_greensleeves`" > greensleeves.pbm

      If you have macOS you can open the image like:

      -
          open greensleeves.pbm
      +
          open greensleeves.pbm

      … otherwise, you’ll have to open it in your viewer of choice how you would normally open an image.

      -
          ./deckmyn "`cat deckmyn.c`" "KF m44c4 c4 g4 g4 :  a4 a4 g2 :; " > short_bass.pbm
      +
          ./deckmyn "`cat deckmyn.c`" "KF m44c4 c4 g4 g4 :  a4 a4 g2 :; " > short_bass.pbm

      If you have macOS you can open the image like:

      -
          open short_bass.pbm
      +
          open short_bass.pbm

      … otherwise, you’ll have to open it in your viewer of choice how you would normally open an image.

      Description

      @@ -276,10 +277,10 @@ character nested conditional expression.
    • example_beethoven - music notation
    • example_greensleeves - music notation
    • try.sh - how to run
    • -
    • 2012_deckmyn.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2012_deckmyn.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • deckmyn.md - markdown source for deckmyn.html
    • diff --git a/2012/dlowe/.entry.json b/2012/dlowe/.entry.json index d4862f62b..352b9013c 100644 --- a/2012/dlowe/.entry.json +++ b/2012/dlowe/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "2012_dlowe.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2012/dlowe/index.html b/2012/dlowe/index.html index 86ea8d107..9eae0f0b7 100644 --- a/2012/dlowe/index.html +++ b/2012/dlowe/index.html @@ -88,6 +88,7 @@ @@ -141,15 +142,15 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 2012 dlowe bugs.

      To use:

      -
          ./dlowe
      +
          ./dlowe

      Try:

      -
          ./dlowe
      +
          ./dlowe

      Watch for a while if you like, then press a key within the window.

      Use up and down keys to escape death.

      Judges’ remarks:

      @@ -234,10 +235,10 @@ abuse of the arithmetic properties of magic numbers.

    • dlowe.c - entry source
    • Makefile - entry Makefile
    • dlowe.orig.c - original source
    • -
    • 2012_dlowe.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2012_dlowe.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • dead.d - data file
    • diff --git a/2012/endoh1/.entry.json b/2012/endoh1/.entry.json index 357c49609..a18b04f37 100644 --- a/2012/endoh1/.entry.json +++ b/2012/endoh1/.entry.json @@ -235,7 +235,7 @@ }, { "file_path" : "2012_endoh1.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2012/endoh1/index.html b/2012/endoh1/index.html index b83f5acb4..56f86ea85 100644 --- a/2012/endoh1/index.html +++ b/2012/endoh1/index.html @@ -88,6 +88,7 @@ @@ -140,7 +141,7 @@ Location: JP - Japan -
          make
      +
          make

      There are two alt versions that let you control the compile time variables that control the fluid behaviour and the added variables to speed up or slow down the fluid as well as setting a timeout (if not 0): one for the original black and @@ -149,12 +150,12 @@ judges at the time of the contest). Another version is the deobfuscated version provided by the author as well. See the Alternate code section below for more details.

      To use:

      -
          ./endoh1 < file
      +
          ./endoh1 < file

      WARNING: if you’re sensitive to/don’t like flashing colours/text or just want to see what this looks like not going so fast then you might wish to try the Alternate code instead.

      Try:

      -
          ./try.bw.sh endoh1.c
      +
          ./try.bw.sh endoh1.c
           ./try.sh endoh1.c
       
           ./try.bw.sh pour-out.txt
      @@ -170,39 +171,39 @@ the fluid and change the behaviour of the fluid. The file
       endoh1.alt2.c is deobfuscated and was provided by the author.

      Alternate build:

      For the default values, try:

      -
          make alt
      +
          make alt

      In the alt versions a default time of 10 seconds is set as an alarm so that one can more easily go through the list of files to see them all in succession, for fun. That is controlled by the variable TIMER at compilation. For instance if you wish to change the value to 5:

      -
          make clobber TIMER=5 alt
      +
          make clobber TIMER=5 alt

      If you want to disable the alarm time, set it to 0:

      -
          make clobber TIMER=0 alt
      +
          make clobber TIMER=0 alt

      It cannot be < 0 or > 60 (arbitrarily selected).

      The SLEEP variable is to delay the time between updates to make it easier to see and to not flash too quickly. The code protects against a value < 0 and defaults to 12321 but you can change it to. For instance to slow it down you could increase the sleep time from 12321 to 50000:

      -
          make clobber SLEEP=50000 alt
      +
          make clobber SLEEP=50000 alt

      If you wish to speed it up you might decrease the sleep time from 12321 to 9999:

      -
          make clobber SLEEP=9999 alt
      +
          make clobber SLEEP=9999 alt

      WARNING: the lower the value the faster it will flash so be careful if you’re sensitive to this.

      If you wish to change the gravity factor, pressure factor and/or viscosity factor, you should redefine the values GRAVITY, PRESSURE and/or VISCOSITY macros, respectively. For instance if you wish to change the viscosity and pressure factors but leave the other values alone:

      -
          make clobber VISCOSITY=X PRESSURE=Y alt
      +
          make clobber VISCOSITY=X PRESSURE=Y alt

      where X and Y are numbers or the letter I and which are, respectively, the viscosity and pressure factors. There is no attempt to check the value or type because doing so prevents the macros from being defined to I which would prevent the author’s remarks about it from being done.

      You might also wish to try redefining the macros G, P and/or V. For instance:

      -
          make clobber GRAVITY=5 PRESSURE=5 VISCOSITY=5 alt
      +
          make clobber GRAVITY=5 PRESSURE=5 VISCOSITY=5 alt

      You might try even:

      -
          make clobber GRAVITY=I alt
      +
          make clobber GRAVITY=I alt

      See the author’s remarks for details on these macros where:

          G = GRAVITY
           P = PRESSURE
      @@ -213,10 +214,10 @@ and endoh1_color above.

      Alternate try:

      To see two different ways run on the source file and each of the text files, try:

      -
          ./try.alt.sh
      +
          ./try.alt.sh

      The second run of each will be with the gravity factor set to I.

      To see the same thing but in the original uncoloured version, try:

      -
          ./try.alt.bw.sh
      +
          ./try.alt.bw.sh

      Judges’ remarks:

      Let’s play Jeopardy!

      A: An obfuscated program that deals with complex numbers and produces animated ASCII graphics. @@ -231,7 +232,7 @@ entry.

      Synopsis

      DO NOT FORGET -DG=1 -DP=4 -DV=8 and make your terminal window larger than 80 x 25.

      -
          cc endoh1.c -DG=1 -DP=4 -DV=8 -D_BSD_SOURCE -o endoh1 -lm
      +
          cc endoh1.c -DG=1 -DP=4 -DV=8 -D_BSD_SOURCE -o endoh1 -lm
           ./endoh1 < endoh1.c
           ./endoh1 < logo.txt
           ./endoh1 < column.txt
      @@ -284,7 +285,7 @@ comments. It also uses usleep(3), which may require -D_BSD_SO
       to build with no warning. Under these conditions, it should be portable.
       At least, recent compilers with -std=c99 -Wall -W -Wextra -pedantic say
       nothing.

      -
          gcc -DG=1 -DP=4 -DV=8 -D_BSD_SOURCE -std=c99 -Wall -W -Wextra -pedantic endoh1.c
      +
          gcc -DG=1 -DP=4 -DV=8 -D_BSD_SOURCE -std=c99 -Wall -W -Wextra -pedantic endoh1.c
       
           clang -DG=1 -DP=4 -DV=8 -D_BSD_SOURCE -std=c99 -Wall -W -Wextra -pedantic endoh1.c

      I expect it to work in any Unix-like environment. VTxxx/ANSI sequences are @@ -376,10 +377,10 @@ provided many configuration files.

    • try.bw.sh - try.alt.bw.sh
    • try.sh - how to run in color
    • endoh1_color.c - alternative source using terminal 256 colors
    • -
    • 2012_endoh1.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2012_endoh1.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2012/endoh2/.entry.json b/2012/endoh2/.entry.json index 58bce9544..93755a343 100644 --- a/2012/endoh2/.entry.json +++ b/2012/endoh2/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "2012_endoh2.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2012/endoh2/index.html b/2012/endoh2/index.html index b72b092f7..58eb73c63 100644 --- a/2012/endoh2/index.html +++ b/2012/endoh2/index.html @@ -88,6 +88,7 @@ @@ -141,18 +142,18 @@ Location: JP - Japan

      To build:

      -
          make
      +
          make

      To use:

      -
          ./endoh2 > pi.c
      +
          ./endoh2 > pi.c
           gcc -o pi pi.c
           ./pi > 314.c

      and:

      -
          ./endoh2 e > e.c\
      +
          ./endoh2 e > e.c\
           gcc -o e e.c
           ./e > 271.c

      …

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      A pi/e @@ -213,12 +214,12 @@ willy-nilly.

      warning, it requires two C99 features: allow string literal to be more than 509 characters and not requiring a return in main(). In fact, recent compilers with -std=c99 -Wall -W -Wextra -pedantic would say nothing.

      -
          gcc -std=c99 -Wall -W -Wextra -pedantic spigot.c
      +
          gcc -std=c99 -Wall -W -Wextra -pedantic spigot.c
           clang -std=c99 -Wall -W -Wextra -pedantic spigot.c

      I’ve tested with gcc-4.6.3 and clang-3.0 on Linux (Ubuntu 12.04) and gcc-4.5.3 and clang-3.1 on Cygwin.

      Synopsis

      -
          cc endoh2.c -o endoh2
      +
          cc endoh2.c -o endoh2
       
           ./endoh2 > pi.c
           cat pi.c
      @@ -270,10 +271,10 @@ unless -std=c99 option is given.

    • endoh2.orig.c - original source
    • try.sh - how to run
    • find-font-table.rb - tool used to find the magic string
    • -
    • 2012_endoh2.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2012_endoh2.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2012/grothe/.entry.json b/2012/grothe/.entry.json index ef5fd5244..46b289b5d 100644 --- a/2012/grothe/.entry.json +++ b/2012/grothe/.entry.json @@ -52,7 +52,7 @@ }, { "file_path" : "2012_grothe.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2012/grothe/index.html b/2012/grothe/index.html index 37b93a8c5..23f5fbb8d 100644 --- a/2012/grothe/index.html +++ b/2012/grothe/index.html @@ -88,6 +88,7 @@ @@ -144,16 +145,16 @@ Location: FR - French Republic (

      To build:

      -
          make
      +
          make

      To use:

      To create a shared secret shared among M people with N+1 needed to reconstruct:

      -
          ./grothe -secret 1-/dev/urandom 2-/dev/urandom ... \
      +
          ./grothe -secret 1-/dev/urandom 2-/dev/urandom ... \
               N-/dev/urandom 1+shared1 2+shared2 ... M+sharedM

      To reconstruct the original (an arbitrary combination of N+1 or more shared files with their proper numbers):

      -
          ./grothe I-sharedI J-sharedJ K-sharedK ... +reconstructed
      +
          ./grothe I-sharedI J-sharedJ K-sharedK ... +reconstructed

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      Also known as ‘Best abuse of the judging process’.

      The IOCCC 2012 submission page didn’t enforce the 2048 meaningful character @@ -184,12 +185,12 @@ into 3 parts and require two of them be available to extract the original recipe

      Example usage

      To split a secret into 4 pieces of which at least 3 will be needed to get it (in this case the cookie recipe) back:

      -
          ./grothe \
      +
          ./grothe \
               -cookie_recipe.txt\
               1-/dev/urandom 2-/dev/urandom\
               1+cookie_piece1.dat 2+cookie_piece2.dat 3+cookie_piece3.dat 4+cookie_piece4.dat

      To put the recipe back together using the first, second and fourth pieces:

      -
          ./grothe \
      +
          ./grothe \
               1-cookie_piece1.dat 2-cookie_piece2.dat 4-cookie_piece4.dat
               +cookie_recipe_restore.txt

      Limitations

      @@ -253,10 +254,10 @@ need to be so trying to figure it out can be a bit tough.

    • grothe.orig.c - original source
    • cookie_recipe.txt - cookie recipe
    • try.sh - how to run
    • -
    • 2012_grothe.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2012_grothe.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • cookie_piece1.dat - binary support file
    • diff --git a/2012/hamano/.entry.json b/2012/hamano/.entry.json index 946caefa7..7aabc7868 100644 --- a/2012/hamano/.entry.json +++ b/2012/hamano/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2012_hamano.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2012/hamano/index.html b/2012/hamano/index.html index e5c6a1f75..22c298de7 100644 --- a/2012/hamano/index.html +++ b/2012/hamano/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: JP - Japan

      To build:

      -
          make
      +
          make

      To use:

      -
          ./hamano < textfile > output.pdf
      +
          ./hamano < textfile > output.pdf

      Try:

      -
          ./try.sh
      +
          ./try.sh

      The script will generate a number of PDF files and it will suggest you look at them as well. You can read hint.pdf with a PDF reader like acroread hint.pdf or evince hint.pdf. With macOS you can do open hint.pdf which by default @@ -155,13 +156,13 @@ directly instead.

      the PDF file will then be compiled as C (itself!) and executed so that it shows README.md!

      That procedure looks like:

      -
          ./hamano < README.md > hint.pdf
      +
          ./hamano < README.md > hint.pdf
           cc -xc hint.pdf -o hint
           ./hint

      Another PDF generated is an obfuscated Hello World! program (obfuscated inside the PDF). Once this is done it will compile the PDF as if it was C (itself!). It will look like:

      -
          echo 'int main(){puts("Hello World!");}' | ./hamano > hello.pdf
      +
          echo 'int main(){puts("Hello World!");}' | ./hamano > hello.pdf
           cc -xc hello.pdf -o hello
           ./hello | cc -Wno-implicit-function-declaration -xc - -o ./hello2
       
      @@ -232,10 +233,10 @@ embedded font in the fragmented glyph?

    • Makefile - entry Makefile
    • hamano.orig.c - original source
    • try.sh - how to run
    • -
    • 2012_hamano.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2012_hamano.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2012/hou/.entry.json b/2012/hou/.entry.json index bf3485b1e..91d819a70 100644 --- a/2012/hou/.entry.json +++ b/2012/hou/.entry.json @@ -107,7 +107,7 @@ }, { "file_path" : "2012_hou.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2012/hou/hint.html b/2012/hou/hint.html index 64b896220..5b7d49520 100644 --- a/2012/hou/hint.html +++ b/2012/hou/hint.html @@ -83,6 +83,7 @@ @@ -124,9 +125,9 @@

      Judges’ comments:

      To build:

      -
          make hou
      +
          make hou

      To run:

      -
          ./hou syntax-file file-to-process
      +
          ./hou syntax-file file-to-process

      Try (Unix):

      The results are best viewed in a 80x25 console with ANSI colors.

          less hou.c
      @@ -170,11 +171,11 @@ in the regular expression by escaping it with [] or ““.

      The following regular expression operators are supported:

          () [] * + ? | ""

      For example, one can use the following expression to match a certain declaration statement in hou.c:

      -
          "char"[ *]*[a-zA-Z_][0-9a-zA-Z_]*[ ]*((=[0-9a-zA-Z_ ]+)|(\[[0-9a-zA-Z_ ]*\]))?[ ]*(,[ *]*[a-zA-Z_][0-9a-zA-Z_]*[ ]*((=[0-9a-zA-Z_ ]+)|(\[[0-9a-zA-Z_ ]*\]))?[ ]*)*;
      +
          "char"[ *]*[a-zA-Z_][0-9a-zA-Z_]*[ ]*((=[0-9a-zA-Z_ ]+)|(\[[0-9a-zA-Z_ ]*\]))?[ ]*(,[ *]*[a-zA-Z_][0-9a-zA-Z_]*[ ]*((=[0-9a-zA-Z_ ]+)|(\[[0-9a-zA-Z_ ]*\]))?[ ]*)*;

      The regex engine is also algorithmically efficient. To illustrate the point, ansi.txt contains a pathological expression [2] that guarantees a hang for the competing Perl engine while matching itself. Try to compare these two engines:

      -
          ./hou ansi.txt ansi.txt
      +
          ./hou ansi.txt ansi.txt
           perl patho.pl < ansi.txt

      Finally, there are a few limitations…

        diff --git a/2012/hou/index.html b/2012/hou/index.html index 6809f230f..ab8f147a9 100644 --- a/2012/hou/index.html +++ b/2012/hou/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: CN - People’s Republic of C

        To build:

        -
            make
        +
            make

        To use:

        -
            ./hou syntax-file file-to-process
        +
            ./hou syntax-file file-to-process

        Try:

        -
            ./try.sh
        +
            ./try.sh

        View the remarks.htm file in your web browser.

        The result is best viewed in a 80x25 console with ANSI colors.

        Try (Windows):

        @@ -183,12 +184,12 @@ in the regular expression by escaping it with [] or ""
            () [] * + ? | ""

        For example, one can use the following expression to match a certain declaration statement in hou.c:

        -
                "char"[ *]*[a-zA-Z_][0-9a-zA-Z_]*[ ]*((=[0-9a-zA-Z_ ]+)|(\[[0-9a-zA-Z_ ]*\]))?[ ]*(,[ *]*[a-zA-Z_][0-9a-zA-Z_]*[ ]*((=[0-9a-zA-Z_ ]+)|(\[[0-9a-zA-Z_ ]*\]))?[ ]*)*;
        +
                "char"[ *]*[a-zA-Z_][0-9a-zA-Z_]*[ ]*((=[0-9a-zA-Z_ ]+)|(\[[0-9a-zA-Z_ ]*\]))?[ ]*(,[ *]*[a-zA-Z_][0-9a-zA-Z_]*[ ]*((=[0-9a-zA-Z_ ]+)|(\[[0-9a-zA-Z_ ]*\]))?[ ]*)*;

        The regex engine is also algorithmically efficient. To illustrate the point, ansi.txt contains a pathological expression 1 that guarantees a hang for the competing Perl engine while matching itself. Try to compare these two engines:

        -
            ./hou ansi.txt ansi.txt
        +
            ./hou ansi.txt ansi.txt
             perl patho.pl < ansi.txt

        Limitations

        Finally, there are a few limitations…

        @@ -260,10 +261,10 @@ amount of spaghetti branches and virtual thread creations. Finally, the VM in
      • try.sh - how to run
      • header.htm - HTML header
      • perl-notes.txt - notes about patho.pl
      • -
      • 2012_hou.tar.bz2 - download entry tarball

      Secondary files

        +
      • 2012_hou.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/2012/index.html b/2012/index.html index 691fbc864..c0eb7f7b3 100644 --- a/2012/index.html +++ b/2012/index.html @@ -86,6 +86,7 @@ diff --git a/2012/kang/.entry.json b/2012/kang/.entry.json index 708a8c73a..04a49fef1 100644 --- a/2012/kang/.entry.json +++ b/2012/kang/.entry.json @@ -91,7 +91,7 @@ }, { "file_path" : "2012_kang.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2012/kang/index.html b/2012/kang/index.html index af205701f..f57ae6c41 100644 --- a/2012/kang/index.html +++ b/2012/kang/index.html @@ -88,6 +88,7 @@ @@ -141,13 +142,13 @@ Location: KR - Republic of Korea (

        To build:

        -
            make
        +
            make

        There is alternate code which fixes some German at the expense of other German. See Alternate code below for the (fun) rationale here.

        To use:

        -
            echo "full spelling of an English cardinal numeral less than a quadrillion" | ./kang
        +
            echo "full spelling of an English cardinal numeral less than a quadrillion" | ./kang

        Try:

        -
            ./try.sh # try various languages
        +
            ./try.sh # try various languages
         
             ./en.sh # English 0 through 13
         
        @@ -164,15 +165,15 @@ deal with it :-) It also breaks other words too and this happens only for one
         letter change. With this one should hopefully be able to really appreciate the
         subtlety of this entry even more.

        Alternate build:

        -
            make alt
        +
            make alt

        Alternate use:

        -
            echo "full spelling of an English cardinal numeral less than a quadrillion" | ./kang.alt
        +
            echo "full spelling of an English cardinal numeral less than a quadrillion" | ./kang.alt
         
             echo vier | ./kang.alt
         
             echo uno | ./kang.alt

        Alternate try:

        -
            ./try.alt.sh # try various languages
        +
            ./try.alt.sh # try various languages
         
             ./en.alt.sh # English 0 through 13
         
        @@ -188,9 +189,9 @@ German, Italian, Russian, and Spanish numerals.

        colloquial year numbers of the last millennium.

        We’ve added a linefeed to the print format for convenience.

        Can you explain why:

        -
            echo f hundr|./kang
        +
            echo f hundr|./kang

        correctly reports 500 but:

        -
            echo hundr|./kang
        +
            echo hundr|./kang

        does not report 100, instead printing 0?

        Author’s remarks:

        Synopsis

        @@ -325,10 +326,10 @@ proof-reading remarks.

      • en.sh - English words for 1 through 13
      • try.alt.sh - how to run alternate code
      • try.sh - how to run
      • -
      • 2012_kang.tar.bz2 - download entry tarball

      Secondary files

        +
      • 2012_kang.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/2012/konno/.entry.json b/2012/konno/.entry.json index 20fc9e10f..0fa99a515 100644 --- a/2012/konno/.entry.json +++ b/2012/konno/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "2012_konno.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2012/konno/index.html b/2012/konno/index.html index 576064105..38d375bc5 100644 --- a/2012/konno/index.html +++ b/2012/konno/index.html @@ -88,6 +88,7 @@ @@ -141,13 +142,13 @@ Location: JP - Japan

        To build:

        -
            make
        +
            make

        There is an unobfuscated version of this entry. See Alternate code below.

        To use:

        -
            ./konno N
        +
            ./konno N

        Try:

        -
            ./try.sh
        +
            ./try.sh
         
             # you can also specify numbers to try before the random and preselected ones:
             ./try.sh 111 222 333 444 555 666 777 888 999
        @@ -157,7 +158,7 @@ selects ten numbers to try.

        An alternate version of this entry, konno.alt.c, is provided. This alternate code is an unobfuscated version of the winning code.

        Alternate build:

        -
            make alt
        +
            make alt

        Alternate use:

        Use konno.alt as you would konno above.

        Judges’ remarks:

        @@ -170,7 +171,7 @@ This alternate code is an unobfuscated version of the winning code.

        automaton patterns.

        Try:

        -
            ./konno 30
        +
            ./konno 30
             ./konno 90
             ./konno 102
             ./konno 109
        @@ -178,9 +179,9 @@ patterns.

        There are 256 (from 0 through 255) possible rules.

        Obfuscation

        This program uses bit operations. I think

        -
            7&O<<!o>>!o+29
        +
            7&O<<!o>>!o+29

        is an interesting operation. This isn’t equal to

        -
            7&O>>29
        +
            7&O>>29

        operation. What is the operation doing?

        Limitation

        This program assumes that the size of int is 4.

        @@ -212,10 +213,10 @@ patterns.

      • konno.alt.c - alternative source
      • konno.orig.c - original source
      • try.sh - how to run
      • -
      • 2012_konno.tar.bz2 - download entry tarball

      Secondary files

        +
      • 2012_konno.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/2012/omoikane/.entry.json b/2012/omoikane/.entry.json index deb411d9c..58f630cb4 100644 --- a/2012/omoikane/.entry.json +++ b/2012/omoikane/.entry.json @@ -75,7 +75,7 @@ }, { "file_path" : "2012_omoikane.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2012/omoikane/index.html b/2012/omoikane/index.html index 648aacf51..6e621712c 100644 --- a/2012/omoikane/index.html +++ b/2012/omoikane/index.html @@ -88,6 +88,7 @@ @@ -141,13 +142,13 @@ Location: US - United States of America

        To build:

        -
            make
        +
            make

        There is an alternate version that will read from the compiled file itself, in case you don’t have a /dev/urandom file. There is also a version that should theoretically work with Windows which distinguishes binary and text. See alternate code below.

        To use:

        -
            ./nyaruko [seed.txt] < original.bin > output.c
        +
            ./nyaruko [seed.txt] < original.bin > output.c
             bash output.c > key.c
             perl output.c > data.c
         
        @@ -159,7 +160,7 @@ theoretically work with Windows which distinguishes binary and text. See
         file or use the alternate version which reads in the compiled
         binary itself.

        Try:

        -
            ./try.sh
        +
            ./try.sh

        The script try.sh will check if you have perl before trying to use the perl parts of the script.

        Alternate code:

        @@ -171,14 +172,14 @@ is like the first except it also should theoretically work with Windows, setting binary mode on stdin and stdout.

        Alternate build:

        For the first version:

        -
            make alt
        +
            make alt

        For the second version:

        -
            make alt2
        +
            make alt2

        Alternate use:

        Use nyaruko.alt or nyaruko.alt2 as you would nyaruko above.

        Alternate try:

        For the first alternate version:

        -
            ./try.alt.sh
        +
            ./try.alt.sh

        We have no way to test the second version, sorry (tm Canada :-) )!

        Judges’ remarks:

        The judges have nothing to add that has not already been written about in the @@ -187,24 +188,24 @@ binary mode on stdin and stdout.

        Usage

        Nyaruko is a binary to text filter. Given some input on stdin, Nyaruko will produce C code that reproduces this input on stdout:

        -
            ./nyaruko < original.bin > output.c
        +
            ./nyaruko < original.bin > output.c
             gcc output.c -o output
             ./output > regenerated.bin

        Output is encrypted, but both key and data are included in the output. To separate the key from the data, run these commands:

        -
            bash output.c > key.c
        +
            bash output.c > key.c
             perl output.c > data.c

        The key-less data.c still compiles, but produces a different message on stdout instead of the original input. This message is a hint to why the code is formatted the way it is.

        To combine the key and data, concatenate them together in either order:

        -
            cat key.c data.c > output.c
        +
            cat key.c data.c > output.c
             cat data.c key.c > output.c

        By default, Nyaruko generates a unique random key for every message, using /dev/urandom as the seed. If given an extra command line argument, Nyaruko will seed using that file instead of /dev/urandom:

        -
            ./nyaruko seed.txt < input.bin > output.c
        +
            ./nyaruko seed.txt < input.bin > output.c

        This makes the output key deterministic, allowing the same key to be shared across different files. On operating systems that do not have /dev/urandom, users should always specify this extra seed argument to avoid indeterministic @@ -297,10 +298,10 @@ JavaScript.

      • try.alt.sh - how to run alternative code
      • try.sh - how to run
      • spoiler.html - SPOILER WARNING
      • -
      • 2012_omoikane.tar.bz2 - download entry tarball

      Secondary files

        +
      • 2012_omoikane.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/2012/tromp/.entry.json b/2012/tromp/.entry.json index 80461d3ac..5b803a8a9 100644 --- a/2012/tromp/.entry.json +++ b/2012/tromp/.entry.json @@ -67,7 +67,7 @@ }, { "file_path" : "2012_tromp.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2012/tromp/how.html b/2012/tromp/how.html index c600e4c37..2f18d9cf4 100644 --- a/2012/tromp/how.html +++ b/2012/tromp/how.html @@ -83,6 +83,7 @@ diff --git a/2012/tromp/index.html b/2012/tromp/index.html index 3ca265a86..2cc256794 100644 --- a/2012/tromp/index.html +++ b/2012/tromp/index.html @@ -88,6 +88,7 @@ @@ -141,7 +142,7 @@ Location: US - United States of America

        To build:

        -
            make all            # On a 64-bit machine (default)
        +
            make all            # On a 64-bit machine (default)
         
             make tromp32                # On a 32-bit machine

        Bugs and (Mis)features:

        @@ -149,13 +150,13 @@ Location: US - United States of America
            STATUS: INABIAF - please **DO NOT** fix

        For more detailed information see 2012 tromp bugs.

        To use:

        -
            ./tromp [-b]
        +
            ./tromp [-b]

        Use ./tromp32 as you would ./tromp if on a 32-bit machine.

        To use:

        -
            cat ascii-prog.blc data | ./tromp -b
        +
            cat ascii-prog.blc data | ./tromp -b
             cat binary-prog.Blc data | ./tromp

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Judges’ remarks:

        The judges dare to say that the data files this entry is processing are more obfuscated than the entry itself.

        @@ -206,23 +207,23 @@ notation) which is the identity function. When its encoding 0010 is fed into the universal machine, it will simply copy the input to the output (well, not that simply, since each byte is smashed to bits and rebuilt from scratch). Voila: a half byte cat:

        -
            $ echo " Hello, world" | ./tromp
        +
            $ echo " Hello, world" | ./tromp
             Hello, world

        Since the least significant 4 bits of the first byte are just arbitrary padding that is ignored by the program, any character from ASCII 32 (space) through 47 (/) will do, e.g.:

        -
            $ echo "*Hello, world" | ./tromp
        +
            $ echo "*Hello, world" | ./tromp
             Hello, world

        Bad programs

        If the input doesn’t start with a valid program, that is, if the interpreter reaches end-of-file during program parsing, it will crash in some way. E.g. the following might dump core:

        -
            echo -n "U" | ./tromp
        +
            echo -n "U" | ./tromp

        Furthermore, the interpreter requires the initial encoded lambda term to be closed, that is, variable n can only appear within at least n enclosing lambdas. For instance, here the term \ 5 is not closed, causing the interpreter to crash when looking into a null-pointer environment:

        -
            echo ">Hello, world" | ./tromp
        +
            echo ">Hello, world" | ./tromp

        will likely dump core.

        Since these properties can be checked when creating BLC programs, @@ -265,7 +266,7 @@ as a self interpreter in BLC it is downright minuscule at 232 bits (29 bytes):

        -
            $ (cat uni8.Blc; echo " Ni hao") | ./tromp
        +
            $ (cat uni8.Blc; echo " Ni hao") | ./tromp
             Ni hao

        A prime number sieve

        Even shorter than the self-interpreter is this prime number sieve in 167 bits @@ -281,7 +282,7 @@ as a self interpreter in BLC it is downright minuscule at 232 bits (29 bytes):

        The nth bit in the output indicates whether n is prime:

        -
            $ cat primes.blc | ./tromp -b | head -c 70
        +
            $ cat primes.blc | ./tromp -b | head -c 70
             0011010100010100010100010000010100000100010100010000010000010100000100

        For those who prefer to digest their primes in decimal, there is oddindices.Blc, which will print the indices of all odd characters (with @@ -308,7 +309,7 @@ separated by a given character:

        60 8191a00167fb cbcfdf65f7c0 a20

        It expects n arbitrary characters of input, and draws a space filling Hilbert curve of order n:

        -
            $  (cat hilbert.Blc; echo -n "1") | ./tromp
        +
            $  (cat hilbert.Blc; echo -n "1") | ./tromp
              _
             | |
         
        @@ -370,7 +371,7 @@ followed by a ], followed by the input for the Brainfuck program.A BLC assembler
         

        Writing BLC programs can be made slightly less painful with this parser that translates single-letter-variable lambda calculus into BLC:

        -
            $ echo "\f\x f (f (f x))" > three
        +
            $ echo "\f\x f (f (f x))" > three
             $ cat parse.Blc three | ./tromp
             000001110011100111010

        Converting between bits and bytes

        @@ -378,21 +379,21 @@ translates single-letter-variable lambda calculus into BLC:

        BLC and BLC8. If you assemble a byte oriented program, you’ll need to compact it into BLC8:

        So we could assemble an input reversing program as

        -
            echo "\a a ((\b b b) (\b \c \d \e d (b b) (\f f c e))) (\b \c c)" > reverse
        +
            echo "\a a ((\b b b) (\b \c \d \e d (b b) (\f f c e))) (\b \c c)" > reverse
             cat parse.Blc reverse | ./tromp > reverse.blc

        and change it to BLC8 with

        -
            $ cat deflate.Blc reverse.blc | ./tromp > rev.Blc
        +
            $ cat deflate.Blc reverse.blc | ./tromp > rev.Blc
             $ wc rev.Blc
                 0 1 9 rev.Blc

        and then try it out with:

        -
            $ cat rev.Blc - | ./tromp
        +
            $ cat rev.Blc - | ./tromp
             Hello, world!
             ^D
             !dlrow ,olleH

        Symbolic Lambda Calculus reduction

        BLC8 program symbolic.Blc shows individual reduction steps on symbolic lambda terms. Here it is used to show the calculation of 2^3 in Church numerals:

        -
            $ echo "(\f\x f (f (f x))) (\f\x f (f x))" > threetwo
        +
            $ echo "(\f\x f (f (f x))) (\f\x f (f x))" > threetwo
             $ cat parse.Blc threetwo | ./tromp > threetwo.blc
             $ cat symbolic.Blc threetwo.blc | ./tromp
             (\a \b a (a (a b))) (\a \b a (a b))
        @@ -415,11 +416,11 @@ numeral 8.

        Taking only the first line of output gives us a sort of BLC disassembler, an exact inverse of the above assembler. The prime number sieve disassembles as follows:

        -
            $ cat symbolic.Blc primes.blc | ./tromp | head -1
        +
            $ cat symbolic.Blc primes.blc | ./tromp | head -1
             \a (\b b (b ((\c c c) (\c \d \e e (\f \g g) ((\f c c f ((\g g g) (\g f (g g)))) (\f \g \h \i i g (h (d f))))) (\c \d \e b (e c))))) (\b \c c (\d \e d) b)

        Hardly any less obfuscated…

        The last line of

        -
            cat symbolic.Blc primes.blc | ./tromp | head -16
        +
            cat symbolic.Blc primes.blc | ./tromp | head -16

        starts out as

            \a \b b (\c \d c) (\c c (\d \e d) (\d d (\e \f f) (\e e (\f \g g) ((\f (\g \h \i

        The \a is for ignoring the rest of the input (to which the universal machine @@ -444,7 +445,7 @@ Syntax which relies on the highly optimized Haskell runtime system for evaluation. Of course individual BLC programs running under the interpreter perform much worse than that same program written in Haskell.

        Our interpreter copes well with extra levels of interpretation:

        -
            $ time cat primes.blc | ./tromp -b | head -c 210 > /dev/null
        +
            $ time cat primes.blc | ./tromp -b | head -c 210 > /dev/null
             real    0m0.043s
             $ time cat uni.blc primes.blc | ./tromp -b | head -c 210 > /dev/null
             real    0m0.191s
        @@ -527,10 +528,10 @@ Higher Order Symbol. Comput. 20, 3 (September 2007), 199-207.
         
      • primes.pl - post process tromp output to print primes
      • try.sh - how to run
      • hw.bf - bf source code
      • -
      • 2012_tromp.tar.bz2 - download entry tarball

      Secondary files

        +
      • 2012_tromp.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • bf.Blc - sample input
      • diff --git a/2012/vik/.entry.json b/2012/vik/.entry.json index 1a148dc3d..67f8aaf97 100644 --- a/2012/vik/.entry.json +++ b/2012/vik/.entry.json @@ -67,7 +67,7 @@ }, { "file_path" : "2012_vik.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2012/vik/index.html b/2012/vik/index.html index 13cebb256..d8dca996a 100644 --- a/2012/vik/index.html +++ b/2012/vik/index.html @@ -88,6 +88,7 @@ @@ -141,7 +142,7 @@ Location: US - United States of America

        To build:

        -
            make
        +
            make

        This entry requires Zlib.

        There is an alternate version which might work for Windows. See Alternate code section below.

        @@ -151,21 +152,21 @@ code section below.

        For more detailed information see 2012 vik bugs.

        To use:

        To embed text (from file or command line):

        -
            ./vik e base.png filename > encodedimg.png
        +
            ./vik e base.png filename > encodedimg.png

        or

        -
            ./vik e base.png SomeRandomText > encodedimg.png
        +
            ./vik e base.png SomeRandomText > encodedimg.png

        To extract the embedded text:

        -
            ./vik d encodedimg.png
        +
            ./vik d encodedimg.png

        To embed a PNG into another:

        -
            ./vik e base.png source.png > encodedimg.png
        +
            ./vik e base.png source.png > encodedimg.png

        To extract the embedded PNG:

        -
            ./vik d encodedimg.png > restored.png
        +
            ./vik d encodedimg.png > restored.png

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Alternate code:

        For those few who might use Windows this alternate code might work.

        Alternate build:

        -
            make alt
        +
            make alt

        Alternate use:

        Use vik.alt as you would vik above.

        Judges’ remarks:

        @@ -196,12 +197,12 @@ into another image and extracted, the bitmap data is also a valid possible to get the bitmap data from the extracted image, and run it through any of the previous winning brainfuck interpreters, but I thought it would be easier to include an interpreter in the program to avoid the hassle:

        -
            ./vik e ioccc.png chocolate.png > encodedimg.png
        +
            ./vik e ioccc.png chocolate.png > encodedimg.png
             ./vik b encodedimg.png

        It is of course also possible to embed a brainfuck program as a text file (as explained above) and decode it, e.g.:

        -
            ./vik e ioccc.png .+[.+] > encodedimg.png
        +
            ./vik e ioccc.png .+[.+] > encodedimg.png
             ./vik b encodedimg.png

        Obfuscation

        I really wanted to keep the program simple, so instead of adding multiple macros @@ -221,7 +222,7 @@ binary data to stdout.

        compile the program on this platform, the following line can be added after the variable declarations in the main declaration in order to run correctly:

        -
            _setmode(_fileno(stdout), 0x8000);
        +
            _setmode(_fileno(stdout), 0x8000);

        NOTE: this is what the Alternate code does.

        Limitations

        The program doesn’t have many error checks so passing in invalid arguments @@ -275,10 +276,10 @@ pretty good) design of the code.

      • chocolate.png - encoding image
      • ioccc.png - encoding image
      • try.sh - how to run
      • -
      • 2012_vik.tar.bz2 - download entry tarball

      Secondary files

        +
      • 2012_vik.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/2012/zeitak/.entry.json b/2012/zeitak/.entry.json index e2235bbf6..50c13b47b 100644 --- a/2012/zeitak/.entry.json +++ b/2012/zeitak/.entry.json @@ -147,7 +147,7 @@ }, { "file_path" : "2012_zeitak.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2012/zeitak/index.html b/2012/zeitak/index.html index 5ca636742..20ebd07b3 100644 --- a/2012/zeitak/index.html +++ b/2012/zeitak/index.html @@ -88,6 +88,7 @@ @@ -141,16 +142,16 @@ Location: IL - State of Israel (

        To build:

        -
            make
        +
            make

        There is an alternate version that is slightly deobfuscated. See alternate code below.

        To use:

        -
            ./zeitak < file
        +
            ./zeitak < file

        where file is the file to be checked for nesting errors. For example, you may try incorrect.c and the program itself. You may also run it on text files that are not code.

        Try:

        -
            make test
        +
            make test

        NOTE: the program prints an error and exits on the first nesting error so it will not detect multiple issues.

        Alternate code:

        @@ -158,7 +159,7 @@ will not detect multiple issues.

        deobfuscated by the author. You may find reading it helpful in your attempt to understand this extremely subtle entry.

        Alternate build:

        -
            make alt
        +
            make alt

        Alternate use:

        Use zeitak.alt as you would zeitak above.

        Judges’ remarks:

        @@ -188,7 +189,7 @@ around it’s position.

      • Ignores parenthesis inside strings or character constants, so no errors will be detected in the following line:
      -
          printf(")");
      +
          printf(")");
      @@ -197,7 +198,7 @@ will be detected in the following line:
    • Escapes (e.g. \") are ignored, so the following line will produce an error:
    -
        printf("\"");
    +
        printf("\"");

    Obfuscation

    IOCCC entries already contain entries without digits, control-flow keywords and certain operators in their source. This entry has an @@ -273,10 +274,10 @@ at least two bytes long.

  • incorrect.quote-esc.c - example source with incorrect quote escape
  • incorrect.single.quote.c - example source with incorrect single quote
  • incorrect.txt - example source with incorrect text
  • -
  • 2012_zeitak.tar.bz2 - download entry tarball
  • Secondary files

      +
    • 2012_zeitak.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2013/birken/.entry.json b/2013/birken/.entry.json index 2fc6deeb6..90957c908 100644 --- a/2013/birken/.entry.json +++ b/2013/birken/.entry.json @@ -275,7 +275,7 @@ }, { "file_path" : "2013_birken.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2013/birken/index.html b/2013/birken/index.html index bd496cb91..e190c5cb6 100644 --- a/2013/birken/index.html +++ b/2013/birken/index.html @@ -88,6 +88,7 @@ @@ -141,12 +142,12 @@ Location: US - United States of America

      To build:

      -
          make alt
      +
          make alt

      We recommend that you use the alt version first to see what this entry looked like back in 2013 (with a configurable speed). If you wish to use the original version see the original code section below.

      To use:

      -
          ./birken.alt < 17_columns_wide_paint_by_numbers_file
      +
          ./birken.alt < 17_columns_wide_paint_by_numbers_file

      NOTE: if your terminal is messed up after running this (perhaps from exiting before it finishes) try using reset to restore the terminal. This will clear the screen.

      @@ -157,7 +158,7 @@ be problematic for some people, can be configured to different speeds by way of the value used in usleep(3). The default is 13500 but you can reconfigure it should you wish (see below).

      To see the program run on each text file, try:

      -
          ./try.alt.sh
      +
          ./try.alt.sh

      If you have perl installed it will also try a random run.

      Finding the ‘right’ default value was a fine line; the default, 15000 microseconds (0.015 seconds), will take quite a while to finish but it allows @@ -165,29 +166,29 @@ one to more easily see what is going on. Even easier to see would be 25000 but these values make it quite slow and one could easily lose interest. Like some other entries where this was made an alternate version it is configurable at compile time. If you wish to speed it up by 100% you can instead do:

      -
          make clobber SLEEP=7500 alt
      +
          make clobber SLEEP=7500 alt

      and then try birken.alt as above.

      If you wish to speed that up 200% (300% total) you can use instead try SLEEP=3750. Doing this you might find the right value to your liking; use ctrl-c to terminate the program early but note that the terminal is likely to be messed up. In that case try:

      -
          reset
      +
          reset

      to make it sane again (running to completion will do that for you).

      Original code:

      The original code will run faster with modern systems which is likely to make it hard to see the art of the entry but you may do so if you wish.

      Original build:

      -
          make all
      +
          make all

      Original use:

      Use birken as you would birken.alt above.

      Original try:

      To use the demo script with the original code, try:

      -
          ./try.sh
      +
          ./try.sh

      PLEASE be careful if you are sensitive to flashing colours!

      Judges’ remarks:

      This program also wins the “Most amusing abuse of the iocccsize tool” award; although not the absolute best: it is possible to achieve 0 by writing:

      -
          /* *\
      +
          /* *\
           /....

      The game of Tetris had been used in many endeavors, from studying algorithmic complexity to treating @@ -346,11 +347,11 @@ call to fflush(3) (N.B: see birken.alt.c 2013-07-30-v17. The first line of the program is reproduced below.

      char_ = “’”“/”;

      If that line is added to the top of any program, the tool will report a size of 8.

      -
          $ ./iocccsize -i < prog.c
      +
          $ ./iocccsize -i < prog.c
           8

      When that line is deleted from this program, the tool properly reports the secondary size limit of the program as 2048.

      -
          $ ./iocccsize -i < birken.c
      +
          $ ./iocccsize -i < birken.c
           2048

      Although this bug provides an easy means of circumventing contest rule 2, as demonstrated from the size value, this entry is not necessarily striving for a @@ -371,7 +372,7 @@ Pajitnov’s original 1984

      Carefully selected variable names also yielded wonderful expressions like l=0, O=0, O=1 and while(O). "Tetris" also makes a second appearance of sorts:

      -
          [T][e][t]--; while(R+i) { s
      +
          [T][e][t]--; while(R+i) { s

      The source is formatted to resemble the Tetris play-field mid-game. It is also an homage to all the past IOCCC entries formatted as a compact @@ -578,10 +579,10 @@ Brothers 2, Nintendo, 1987.

    • toad.txt - sprites in this textual format
    • try.alt.sh - how to run alternative code
    • try.sh - how to run
    • -
    • 2013_birken.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2013_birken.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2013/cable1/.entry.json b/2013/cable1/.entry.json index a7392d71e..cde741908 100644 --- a/2013/cable1/.entry.json +++ b/2013/cable1/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "2013_cable1.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2013/cable1/index.html b/2013/cable1/index.html index eb67f2dc8..17cf26b7f 100644 --- a/2013/cable1/index.html +++ b/2013/cable1/index.html @@ -88,6 +88,7 @@ @@ -141,28 +142,28 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      To use:

      -
          ./cable1 name group1 group2
      +
          ./cable1 name group1 group2

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      Partisan may be defined as a strong supporter of a cause, party or person. We need not limit ourselves to the two major political parties in the US today.

      Let us consider:

      -
          ./cable1 Cooper Mac PC
      +
          ./cable1 Cooper Mac PC

      Simon works for Apple, so you would expect Mac. :-) Landon is a long time Mac user:

      -
          ./cable1 Noll Mac PC
      +
          ./cable1 Noll Mac PC

      That works too! Now Leo brings PCs to the IOCCC judging for cross-platform testing:

      -
          ./cable1 Broukhis Mac PC
      +
          ./cable1 Broukhis Mac PC

      We can test other people. The late Steve Jobs:

      -
          ./cable1 Jobs Mac PC
      +
          ./cable1 Jobs Mac PC

      That works! How about Bill?

      -
          ./cable1 Gates Mac PC
      +
          ./cable1 Gates Mac PC

      A PC guy as expected. What about that other Steve?

      -
          ./cable1 Ballmer Mac PC
      +
          ./cable1 Ballmer Mac PC

      Humm .. maybe there is a hidden reason he is leaving the late Micro$oft? :-) Why late? Because:

      @@ -231,10 +232,10 @@ function declarations are invalid in C99 (but still accepts them).

    • cable1.orig.c - original source
    • dead-ms-tweet.jpg - tweet image
    • try.sh - how to run
    • -
    • 2013_cable1.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2013_cable1.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2013/cable2/.entry.json b/2013/cable2/.entry.json index fad14c326..8dd3d6923 100644 --- a/2013/cable2/.entry.json +++ b/2013/cable2/.entry.json @@ -91,7 +91,7 @@ }, { "file_path" : "2013_cable2.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2013/cable2/index.html b/2013/cable2/index.html index 76f22be4b..12961fe13 100644 --- a/2013/cable2/index.html +++ b/2013/cable2/index.html @@ -88,6 +88,7 @@ @@ -141,16 +142,16 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 2013 cable2 bugs.

      To use:

      -
          ./cable2 file.bmp [color]
      +
          ./cable2 file.bmp [color]

      Try:

      For different OCR examples:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      We can confirm that this is the first time the IOCCC has been used to peer-review a new research. We had quite a bit of fun with a sharpie and a @@ -277,10 +278,10 @@ obfuscations.

    • mixed_sizes.bmp - PC bitmap image
    • multi_color.bmp - PC bitmap image
    • typeset.bmp - PC bitmap image
    • -
    • 2013_cable2.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2013_cable2.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2013/cable3/.entry.json b/2013/cable3/.entry.json index 535ca3697..3eb3bb0f6 100644 --- a/2013/cable3/.entry.json +++ b/2013/cable3/.entry.json @@ -115,7 +115,7 @@ }, { "file_path" : "2013_cable3.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2013/cable3/index.html b/2013/cable3/index.html index cc9036e80..4df9fb05b 100644 --- a/2013/cable3/index.html +++ b/2013/cable3/index.html @@ -88,6 +88,7 @@ @@ -141,13 +142,13 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      An alternate version that should compile in Windows/MS Visual Studio is available. See the Alternate code section below.

      To use:

      -
          ./cable3 bios-image-file floppy-image-file [harddisk-image-file]
      +
          ./cable3 bios-image-file floppy-image-file [harddisk-image-file]

      Try:

      -
          ./cable3.sh
      +
          ./cable3.sh

      NOTE: to quit the program type QUITEMU. You might have to be at the top level directory of the drive, A: or C:.

      To send an Alt+XXX key combination, press (^A / Ctrl+A) then the key, so @@ -162,7 +163,7 @@ combinations are left for the discovery of the user.

      An alternate version, which should compile in Windows, is provided.

      Alternate build:

      Assuming make is available and will function:

      -
          make alt
      +
          make alt

      Alternate use:

      Use cable3.alt as you would cable3 above.

      Judges’ remarks:

      @@ -264,7 +265,7 @@ has no stty. Therefore the Makefile includes a -D opti non-UNIX platforms. For example, for Windows/MS Visual Studio, instead of the Makefile definition of KB, use something slightly different - add the following entry to the Preprocessor Definitions list in the Project Properties page:

      -
          KB=(kb=H(8),kbhit())&&(r[1190]=getch(),H(7))
      +
          KB=(kb=H(8),kbhit())&&(r[1190]=getch(),H(7))

      NOTE: this is done in the Alternate code.

      POSIX portability note

      The code as supplied uses implicit function declarations for POSIX file I/O and @@ -273,14 +274,14 @@ architecture. For some systems (e.g. 32-bit Mac OS X, which uses 64-bit file offsets) this is not the case, and to run successfully on these systems, you will need to explicitly declare these functions by adding the appropriate include to the top of the source:

      -
          #include <unistd.h>
      +
          #include <unistd.h>

      NOTE: this has been done in cable3.c.

      Usage

      -
          ./cable3 bios-image-file floppy-image-file [harddisk-image-file]
      +
          ./cable3 bios-image-file floppy-image-file [harddisk-image-file]

      PLEASE NOTE that under Unices the keyboard must be in raw mode for the emulator to work properly. Therefore the emulator is best run from a shell script that looks something like:

      -
          stty cbreak raw -echo min 0
      +
          stty cbreak raw -echo min 0
           ./cable3 bios floppy.img harddisk.img
           stty cooked echo

      See the cable3.sh script.

      @@ -291,7 +292,7 @@ the fd.img provided, which is a FreeDOS boot disk.

      put the keyboard into raw mode (and afterwards it needs to be put back to cooked). So, run the emulator using something like this script (provided as cable3.sh):

      -
          stty cbreak raw -echo min 0
      +
          stty cbreak raw -echo min 0
           ./cable3 bios fd.img
           stty cooked echo

      To use the emulator - floppy + HD mode

      @@ -299,7 +300,7 @@ cooked). So, run the emulator using something like this script (provided as whole bunch of software which is in the included file hd.img.

      For the more adventurous, you can start off with (for example) a blank 40MB image file called hd.img made using e.g. Makefile. Then use:

      -
          stty cbreak raw -echo min 0
      +
          stty cbreak raw -echo min 0
           ./cable3 bios fd.img hd.img
           stty cooked echo

      Preparing the hard disk for use in the emulator is done just like a real PC. @@ -525,10 +526,10 @@ the source size down. Other compilers are likely to produce similar warnings.

      screenshot_win3_on_macosx.png - Screenshots of some applications running on macOS
    • sc-ioccc.terminal - configuration file will correctly display console apps
    • bios.asm - BIOS source in assembly
    • -
    • 2013_cable3.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2013_cable3.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • bios - custom BIOS
    • diff --git a/2013/dlowe/.entry.json b/2013/dlowe/.entry.json index 658c7cb27..62e8c4d2f 100644 --- a/2013/dlowe/.entry.json +++ b/2013/dlowe/.entry.json @@ -67,7 +67,7 @@ }, { "file_path" : "2013_dlowe.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2013/dlowe/index.html b/2013/dlowe/index.html index b1a7b96e8..1531f1724 100644 --- a/2013/dlowe/index.html +++ b/2013/dlowe/index.html @@ -88,6 +88,7 @@ @@ -141,30 +142,30 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 2013 dlowe bugs.

      To use:

      -
          ./dlowe [number...]
      +
          ./dlowe [number...]

      where [number...] is one or more number, space separated.

      Try:

      -
          ./try.sh
      +
          ./try.sh

      What is different about the above if you do something like:

      -
          echo 'IOCCC winning entry 2013/dlowe' > ioccc.txt
      +
          echo 'IOCCC winning entry 2013/dlowe' > ioccc.txt
           ./try.sh
           rm -f ioccc.txt

      ?

      To make it simpler to see try showing just the different line like:

      -
          ./diff.sh
      +
          ./diff.sh

      Judges’ remarks:

      We liked how this entry used Unicode, specifically UTF-8, in a somewhat obfuscated way.

      Also, why doesn’t it crash but instead produces a correct output when called with one argument or when all arguments are equal?

      For extra fun, compile and run fun.c:

      -
          #include <stdio.h>
      +
          #include <stdio.h>
           int main() {
               printf("%d %d %d\n", (int)(-1.0/0.0), (int)(0.0/0.0), (int)(1.0/0.0));
           }
      @@ -178,19 +179,19 @@ with one argument or when all arguments are equal?

      Which one is correct? :)

      NOTE: make all will compile fun.c but to provide a different compiler you can do something like:

      -
          make CC=clang fun
      +
          make CC=clang fun

      Author’s remarks:

      sparkl

      A tiny implementation of command-line sparkline data visualization.

      Synopsis

      -
          $ ./sparkl 0 1 2 3 4 5 6 7
      +
          $ ./sparkl 0 1 2 3 4 5 6 7
           ▁▂▃▄▅▆▇▉
       
           $ echo "sparkline of file lengths: $(wc -c * | awk '{print $1}' | xargs ./sparkl)"
           sparkline of file sizes: ▁▁▁▃▃▂▁▂▁▁▉

      NOTE: this has been provided in slflen.sh so you can try:

      -
          ./slflen.sh
      +
          ./slflen.sh

      instead (which try.sh also uses).

      Description

      This is a handy little tool for visualizing numeric series from the @@ -249,10 +250,10 @@ implementation is completely independent.)

    • fun.c - compile and run for extra run
    • slflen.sh - generate sparkline of file lengths
    • try.sh - how to run
    • -
    • 2013_dlowe.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2013_dlowe.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2013/endoh1/.entry.json b/2013/endoh1/.entry.json index ff6d781ba..413916837 100644 --- a/2013/endoh1/.entry.json +++ b/2013/endoh1/.entry.json @@ -75,7 +75,7 @@ }, { "file_path" : "2013_endoh1.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2013/endoh1/index.html b/2013/endoh1/index.html index fbcb9e741..6235bde83 100644 --- a/2013/endoh1/index.html +++ b/2013/endoh1/index.html @@ -88,6 +88,7 @@ @@ -141,17 +142,17 @@ Location: JP - Japan

      To build:

      -
          make
      +
          make

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 2013 endoh1 bugs.

      To use:

      -
          ./endoh1 [file.lazy]
      +
          ./endoh1 [file.lazy]

      Try:

      -
          ./try.sh
      +
          ./try.sh

      You might also enjoy running:

      -
          cc -E endoh1.c | less
      +
          cc -E endoh1.c | less

      Judges’ remarks:

      We liked this entry because it can serve as a standalone program as well as an include file; and, as usual, because its input data is at least as obfuscated as @@ -160,7 +161,7 @@ the program itself.

      4x longer to compile it with -O3 than without, compared to clang’s 2x.

      Author’s remarks:

      Remarks

      -
          less endoh1.c
      +
          less endoh1.c
           gcc -o endoh1 endoh1.c
           ./endoh1

      … Isn’t there any more to it?

      @@ -169,12 +170,12 @@ the program itself.

      especially, Lazy K.

      This program will shine when it is used as a library. For example, hello.lazy is a “Hello world” program written in Lazy K.

      -
          $ lazy hello.lazy
      +
          $ lazy hello.lazy
           Hello, world!

      where lazy is a reference implementation of Lazy K. At the same time, hello.lazy is a valid C program that uses endoh1.c as a library.

      -
          $ gcc -o hello -xc hello.lazy
      +
          $ gcc -o hello -xc hello.lazy
           $ ./hello
           Hello, world!

      In other words, this program is a kind of polyglot.

      @@ -210,7 +211,7 @@ section.

    Recent compilers with -Wall -W -Wextra -pedantic say nothing.

    -
        gcc -Wall -W -Wextra -pedantic prog.c
    +
        gcc -Wall -W -Wextra -pedantic prog.c
         clang -Wall -W -Wextra -pedantic prog.c
         tcc -Wall -W -Wextra -pedantic prog.c

    I think it will work on almost all platforms. I confirmed:

    @@ -235,11 +236,11 @@ evaluates it.

    combinator calculus. The rewriting rules are shown in the shape of the code.

    Abuse of function pointers

    Consider a sequence of function applications in C:

    -
        s(x)(x)(x)(x)...
    +
        s(x)(x)(x)(x)...

    What type should s have? Unfortunately, C does not provide a “recursive type”, such as typedef f (*f)();.

    So, I used a heavily nested function pointer type:

    -
        typedef void *(*(*(*...(*(f))()...)())())
    +
        typedef void *(*(*(*...(*(f))()...)())())

    This limits how many arguments one function can be consecutively applied to. But you can increase the number by tweaking the definition of macro p.

    Code duplication by macros

    @@ -255,7 +256,7 @@ environment which is a reference to non-local variable.

    (It is feasible by dynamic code generation, but it is far from portable.)

    So, I addressed this issue by generating many function definitions statically by (ab)using macros:

    -
        void *x1; void f1(void *y) { return apply(x1, y); }
    +
        void *x1; void f1(void *y) { return apply(x1, y); }
         void *x2; void f2(void *y) { return apply(x2, y); }
         void *x3; void f3(void *y) { return apply(x3, y); }
         ...
    @@ -301,10 +302,10 @@ solver.

  • hello.lazy - lazy input
  • rot13.ed - ed script
  • tac.lazy - lazy input
  • -
  • 2013_endoh1.tar.bz2 - download entry tarball
  • Secondary files

      +
    • 2013_endoh1.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2013/endoh2/.entry.json b/2013/endoh2/.entry.json index 943cdb61a..da343aa6a 100644 --- a/2013/endoh2/.entry.json +++ b/2013/endoh2/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2013_endoh2.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2013/endoh2/index.html b/2013/endoh2/index.html index c82d7afb8..f630313c2 100644 --- a/2013/endoh2/index.html +++ b/2013/endoh2/index.html @@ -88,6 +88,7 @@ @@ -141,9 +142,9 @@ Location: JP - Japan

      To build:

      -
          make
      +
          make

      To use:

      -
          make check
      +
          make check

      You’ll need to have both Ruby and ImageMagick installed to run all the automated checks.

      @@ -152,7 +153,7 @@ section to enjoy the entry. The Makefile check

      Try:

      -
          less jpeg.c
      +
          less jpeg.c

      Next look at jpeg.jpg in an image viewer program.

      Judges’ remarks:

      This is a program which, when fed its own source, generates a program that @@ -232,10 +233,10 @@ which is distributed in MIT License:

    • Makefile - entry Makefile
    • endoh2.orig.c - original source
    • ocr.rb - test suite support file
    • -
    • 2013_endoh2.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2013_endoh2.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2013/endoh3/.entry.json b/2013/endoh3/.entry.json index 9036a612c..c0ee54799 100644 --- a/2013/endoh3/.entry.json +++ b/2013/endoh3/.entry.json @@ -91,7 +91,7 @@ }, { "file_path" : "2013_endoh3.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2013/endoh3/index.html b/2013/endoh3/index.html index 9f207ad2e..6ac65823d 100644 --- a/2013/endoh3/index.html +++ b/2013/endoh3/index.html @@ -88,6 +88,7 @@ @@ -141,18 +142,18 @@ Location: JP - Japan

      To build:

      -
          make
      +
          make

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 2013 endoh3 bugs.

      To use:

      -
          ./endoh3
      +
          ./endoh3

      This program plays sound. See FAQ 3.10 - How do I compile and use an IOCCC entry that requires sound? if you do not know how to set your system up for this or if you want to verify that everything is oky.

      Try:

      -
          ./try.sh
      +
          ./try.sh
       
           ./try.sh ABC
       
      @@ -180,20 +181,20 @@ will remain the same for historical purposes.

      This is a sound synthesizer for a subset of ABC music notation.

      Try:

      -
          cc -o endoh3 endoh3.c
      +
          cc -o endoh3 endoh3.c
           echo "CDEFGABc" | ./endoh3 > /dev/dsp

      If /dev/dsp is not available on your system, use an OSS sound wrapper such as padsp or aoss:

      -
          echo "CDEFGABc" | ./endoh3 | padsp tee /dev/dsp > /dev/null
      +
          echo "CDEFGABc" | ./endoh3 | padsp tee /dev/dsp > /dev/null

      If you are using Mac OS X, try sox like so:

      -
          echo "CDEFGABc" | ./endoh3 | sox -q -traw -r8000 -b8 -e unsigned-integer - -tcoreaudio
      +
          echo "CDEFGABc" | ./endoh3 | sox -q -traw -r8000 -b8 -e unsigned-integer - -tcoreaudio

      If that does not work, use the attached script to convert the output into a wave file format:

      -
          echo "CDEFGABc" | ./endoh3 | ruby wavify.rb > cde.wav
      +
          echo "CDEFGABc" | ./endoh3 | ruby wavify.rb > cde.wav

      and play cde.wav.

      You can also enjoy some music scores that I attached. With /dev/dsp you can do so like:

      -
          cat twinkle.abc | ./endoh3 > /dev/dsp
      +
          cat twinkle.abc | ./endoh3 > /dev/dsp
           cat menuet.abc | ./endoh3 > /dev/dsp

      but you should be able to modify it a way to meet your system requirements as described above.

      @@ -257,7 +258,7 @@ But I do not attach it to protect you from W****r.

      You know, it is “the famous song”.

      Spoiler

      Here is a magical expression which I found by brute-force:

      -
          (c % 32 + 5) * 9 / 5 % 13 + n / 32 * 12 - 22
      +
          (c % 32 + 5) * 9 / 5 % 13 + n / 32 * 12 - 22

      Interestingly, it converts an ASCII number of ABC notes to the corresponding tone number.

          'C' (ASCII  67) =>  3
      @@ -287,7 +288,7 @@ found this approximation by using the     for(c = 0; c < len; c++) putchar(a = n * D);
      +
          for(c = 0; c < len; c++) putchar(a = n * D);

      where D is a frequency and a is a variable whose type is char. By assigning float to char variable, the implicit type conversion is performed from float to char (modulo 256).

      @@ -328,10 +329,10 @@ squashing them into just one for-loop.

    • twinkle.abc - sample input
    • wavify.rb - post process output to form a WAV sound file
    • yankee.abc - sample input
    • -
    • 2013_endoh3.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2013_endoh3.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2013/endoh4/.entry.json b/2013/endoh4/.entry.json index edc504b66..2889ae6c8 100644 --- a/2013/endoh4/.entry.json +++ b/2013/endoh4/.entry.json @@ -1227,7 +1227,7 @@ }, { "file_path" : "2013_endoh4.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2013/endoh4/index.html b/2013/endoh4/index.html index 3005fb6d5..febd71198 100644 --- a/2013/endoh4/index.html +++ b/2013/endoh4/index.html @@ -88,6 +88,7 @@ @@ -141,10 +142,10 @@ Location: JP - Japan

      To build:

      -
          make
      +
          make

      If you wish to change the size (see the Author’s remarks below) you can do so with the SIZE variable. For instance you can do:

      -
          make clobber SIZE=50,50 all
      +
          make clobber SIZE=50,50 all

      but you can also do this directly with the endoh4.sh script as described below.

      Bugs and (Mis)features:

      @@ -152,22 +153,22 @@ described below.

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 2013 endoh4 bugs.

      To use:

      -
          ./endoh4 < file
      +
          ./endoh4 < file
           ./endoh4.sh file

      The second form is preferable as it will temporarily make the cursor invisible as recommended by the author. If no file is specified in the ./endoh4.sh command line it will feed to the program endoh4.c.

      Try:

      -
          ./endoh4.sh cube.txt
      +
          ./endoh4.sh cube.txt

      Hit ctrl-c to end the program.

      The author recommends the use of xterm.

      For an example, if you are a football/soccer fan, try:

      -
          ./endoh4.sh solids/archimedian-solid/a11-truncated-icosahedron.txt
      +
          ./endoh4.sh solids/archimedian-solid/a11-truncated-icosahedron.txt

      You can provide more than one file:

      -
          ./endoh4.sh solids/archimedian-solid/a11-truncated-icosahedron.txt cube.txt
      +
          ./endoh4.sh solids/archimedian-solid/a11-truncated-icosahedron.txt cube.txt

      Hit ctrl-c/intr to go to the next file.

      If you wish to change the size to 50,50 without passing any arg:

      -
          SIZE=50,50 ./endoh4.sh
      +
          SIZE=50,50 ./endoh4.sh

      Not specifying a file feeds endoh4.c to the program.

      Judges’ remarks:

      This program is formatted as the net for a tetrahedron (hint: try feeding the @@ -203,17 +204,17 @@ triangulated) clang, and tcc. It should not trigger warnings with -pedantic and -Wextra.

      Tips

      You may want to use tput to hide the terminal cursor.

      -
          tput civis
      +
          tput civis
           ./endoh4 < cube.txt
           tput cnorm

      or

      -
          ./endoh4.sh cube.txt
      +
          ./endoh4.sh cube.txt

      Bonuses

      You can change the screen size. Let the aspect ratio be about 3:1.

      -
          cc -DS=120,40 -o endoh4 endoh4.c
      +
          cc -DS=120,40 -o endoh4 endoh4.c

      The shape of this code is the geometric net of a regular tetrahedron. So, try:

      -
          ./endoh4 < endoh4.c # or ./endoh4.sh
      +
          ./endoh4 < endoh4.c # or ./endoh4.sh

      The solids/ directory includes various solid data:

      Secondary files

        +
      • 2013_endoh4.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/2013/hou/.entry.json b/2013/hou/.entry.json index 8d70936c1..e23960b9c 100644 --- a/2013/hou/.entry.json +++ b/2013/hou/.entry.json @@ -91,7 +91,7 @@ }, { "file_path" : "2013_hou.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2013/hou/doc/example.html b/2013/hou/doc/example.html index 19df03cbe..363333c16 100644 --- a/2013/hou/doc/example.html +++ b/2013/hou/doc/example.html @@ -83,6 +83,7 @@ diff --git a/2013/hou/index.html b/2013/hou/index.html index 9426b21c8..a32cf4c71 100644 --- a/2013/hou/index.html +++ b/2013/hou/index.html @@ -88,6 +88,7 @@ @@ -141,18 +142,18 @@ Location: CN - People’s Republic of C

        To build:

        -
            make all
        +
            make all

        Bugs and (Mis)features:

        The current status of this entry is:

            STATUS: INABIAF - please **DO NOT** fix

        For more detailed information see 2013 hou bugs.

        To use:

        -
            ./hou [scene-file-name] [options]
        +
            ./hou [scene-file-name] [options]

        Follow the instructions in stdout, preferably with an auto-refreshing PPM image viewer ready. Refresh the image every time the output refreshes, all effects should be more or less recognizable when you see 16.

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Try opening the file noted by the program then let the program run a while and every so often reopen the file, to see how it changes. The author suggests that you leave the program running overnight to see what happens. If however you do @@ -181,7 +182,7 @@ program.

        raytraced image.

        NOTE: the author refers to a.c, placed in a gzipped file a.c.gz. We do not include it but it can be generated like:

        -
            cc -Wall hou.c -o hou -lm
        +
            cc -Wall hou.c -o hou -lm
             ./hou > a.c

        but there is no need to do this as the Makefile takes care of it without even needing to create a temporary file.

        @@ -189,7 +190,7 @@ needing to create a temporary file.

        Using hou

        This program is a programmable rendering engine with a built-in default scene. The standard command line is:

        -
            ./hou [scene-file-name] [options]
        +
            ./hou [scene-file-name] [options]

        As hou runs, it writes a progressively refining image to a ppm file specified in the scene. The initialization may take a while, but once it’s done, a rough preview should be available in seconds. Leave hou running for the night, and you @@ -363,10 +364,10 @@ frequently found in other PPM implementations.

      • luna.jpg - sample image data
      • old_default.jpg - sample image data
      • otherroom.jpg - sample image data
      • -
      • 2013_hou.tar.bz2 - download entry tarball

      Secondary files

        +
      • 2013_hou.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • doc/camera.png - documentation support image
      • diff --git a/2013/index.html b/2013/index.html index 8a897a1cf..0e784951c 100644 --- a/2013/index.html +++ b/2013/index.html @@ -86,6 +86,7 @@ @@ -155,9 +156,9 @@ authors submitted very different styles of entries.

        had to print a value 2053 or less when the -i flag was used.

        Several people discovered an undocumented feature in that certain comments such as:

        -
                ///*
        +
                ///*

        or:

        -
                *\
        +
                *\
                 /

        were not correctly parsed by the tool. The guidelines stated:

            In cases where the above summary and the algorithm implemented by
        diff --git a/2013/mills/.entry.json b/2013/mills/.entry.json
        index 484d0e1f4..e678dc737 100644
        --- a/2013/mills/.entry.json
        +++ b/2013/mills/.entry.json
        @@ -35,7 +35,7 @@
         	},
         	{
         	    "file_path" : "2013_mills.tar.bz2",
        -	    "inventory_order" : 100000,
        +	    "inventory_order" : 1415926535,
         	    "OK_to_edit" : false,
         	    "display_as" : "tbz2",
         	    "display_via_github" : false,
        diff --git a/2013/mills/index.html b/2013/mills/index.html
        index 3309ed669..d79b04e0e 100644
        --- a/2013/mills/index.html
        +++ b/2013/mills/index.html
        @@ -88,6 +88,7 @@
             
        @@ -141,15 +142,15 @@ Location: US - United States of America
         
         
         

        To build:

        -
            make
        +
            make

        Bugs and (Mis)features:

        The current status of this entry is:

            STATUS: INABIAF - please **DO NOT** fix

        For more detailed information see 2013 mills bugs.

        To use:

        -
            ./mills
        +
            ./mills

        Try:

        -
            ./mills &
        +
            ./mills &

        While that is running, point your favorite browser at: http://localhost:8224.

        Judges’ remarks:

        @@ -170,7 +171,7 @@ doing so. For details as to why this is necessary, feel free to Google "TIME_WAIT", "SO_REUSEADDR" and "SO_REUSEPORT" (with the quotes). And while you are there, click on an ad. They could use the money.

        It would be possible to fix this by adding

        -
            n=1,setsockopt(s,SOL_SOCKET,SO_REUSEADDR,&n,sizeof n),
        +
            n=1,setsockopt(s,SOL_SOCKET,SO_REUSEADDR,&n,sizeof n),

        at an appropriate spot in the code (an exercise left to the reader). However, as this limitation is documented, it is not technically a bug.

        Details of Operation

        @@ -252,10 +253,10 @@ curious impressionable youth trying to learn about sockets on the Internet.

      • mills.c - entry source
      • Makefile - entry Makefile
      • mills.orig.c - original source
      • -
      • 2013_mills.tar.bz2 - download entry tarball

      Secondary files

        +
      • 2013_mills.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/2013/misaka/.entry.json b/2013/misaka/.entry.json index d18cf019b..c62d5c7a7 100644 --- a/2013/misaka/.entry.json +++ b/2013/misaka/.entry.json @@ -59,7 +59,7 @@ }, { "file_path" : "2013_misaka.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2013/misaka/index.html b/2013/misaka/index.html index 173278afb..bb897e36b 100644 --- a/2013/misaka/index.html +++ b/2013/misaka/index.html @@ -88,6 +88,7 @@ @@ -141,19 +142,19 @@ Location: US - United States of America

        To build:

        -
            make
        +
            make

        This will build a bunch of versions of the code. See the author’s details for information on all of these builds.

        To use:

        -
            ./horizontal_cat [files...] > [output]
        +
            ./horizontal_cat [files...] > [output]
             ./vertical_cat [files...] > [output]

        Try:

        To understand the various intermediate source files that are built, try:

        -
            make understanding
        +
            make understanding

        Also try:

        -
            ./try.sh
        +
            ./try.sh

        NOTE: Use - for standard input. For example:

        -
            ./vertical_cat - -
        +
            ./vertical_cat - -

        Judges’ remarks:

        There is more to cat than mere cats. Be they tall, fat, long or squat, this source code is sure to amuse.

        @@ -176,7 +177,7 @@ judging this entry.

        Overview

        Misaka is a file concatenation utility, with at least two modes of operation:

        -
            cc misaka.c -o horizontal_cat
        +
            cc misaka.c -o horizontal_cat
             ./horizontal_cat [files...] > [output]
         
             ./horizontal_cat misaka.c misaka.c > misaka2.c
        @@ -192,7 +193,7 @@ concatenating files, that function only seem to work if I wanted to concatenate
         files vertically.

        I thought the lack of horizontal concatenation must have been an oversight, so I implemented this utility:

        -
            cc misaka.c -o horizontal_cat
        +
            cc misaka.c -o horizontal_cat
             ./horizontal_cat files...

        horizontal_cat concatenates files horizontally and write the output to stdout. Each input file is padded with spaces on the right so that the @@ -202,7 +203,7 @@ Unlike cat, horizontal_cat loads all input to memory f can specify - multiple times to get stdin multiplied horizontally. For example, if you have seq(1) in your shell, you can add line numbers to both sides of misaka.c like this:

        -
            seq -f '  %.0f  ' 45 | ./horizontal_cat - misaka.c -
        +
            seq -f '  %.0f  ' 45 | ./horizontal_cat - misaka.c -

        Vertical cat

        Because horizontal_cat must know the maximum width of all files before writing any output, all files must be processed at least twice. To support @@ -212,24 +213,24 @@ writing any output, all files must be processed at least twice. To support files vertically, so I included a vertical mode. But supporting vertical mode with command line options would be no fun. Instead, vertical mode is enabled by concatenating the source code horizontally:

        -
            ./horizontal_cat misaka.c misaka.c > misaka2.c
        +
            ./horizontal_cat misaka.c misaka.c > misaka2.c
             gcc misaka2.c -o vertical_cat
             ./vertical_cat files...

        vertical_cat works more or less like cat, except you can use vertical_cat to duplicate stdin:

        -
            ./vertical_cat - -
        +
            ./vertical_cat - -

        Long cat

        After horizontal_cat and vertical_cat, I thought, maybe all I really wanted was just more cats. So I implemented one more mode, this one is enabled by concatenating misaka.c vertically:

        -
            ./vertical_cat misaka.c misaka.c > misaka3.c
        +
            ./vertical_cat misaka.c misaka.c > misaka3.c
             gcc misaka3.c -o long_cat
             ./long_cat

        long_cat outputs ASCII art of a cat to stdout. You can make this cat exponentially longer by concatenating more files vertically (up to 31 levels high, depending on sizeof(int) for your compiler):

        -
            ./vertical_cat misaka.c misaka.c misaka.c > misaka4.c
        +
            ./vertical_cat misaka.c misaka.c misaka.c > misaka4.c
             gcc misaka4.c -o loong_cat
         
             ./vertical_cat misaka.c misaka.c misaka.c misaka.c > misaka5.c
        @@ -239,20 +240,20 @@ high, depending on sizeof(int) for your compiler):

        gcc misaka6.c -o loooooooong_cat

        If your terminal has really thin fonts, you can also make this output fatter by concatenating files horizontally:

        -
            ./vertical_cat misaka.c misaka.c | ./horizontal_cat - - > misaka7.c
        +
            ./vertical_cat misaka.c misaka.c | ./horizontal_cat - - > misaka7.c
             gcc misaka7.c -o long_fat_cat
         
             ./vertical_cat misaka.c misaka.c | ./horizontal_cat - - - > misaka8.c
             gcc misaka8.c -o long_faat_cat

        Output width is determined by the first level of stacked programs, so a triangle like the following will not have horizontally expanded output:

        -
            ./horizontal_cat misaka.c misaka.c | ./vertical_cat misaka.c - > misaka9.c
        +
            ./horizontal_cat misaka.c misaka.c | ./vertical_cat misaka.c - > misaka9.c
             gcc misaka9.c -o same_as_long_cat

        Finally, if you lost track of how many misaka.c you have stacked together, you can feed the source to a brainfuck interpreter to get an overview of how the programs are stacked. Example:

        -
            perl bf.pl misaka9.c
        +
            perl bf.pl misaka9.c

        This outputs:

            MISAKA
             MISAKA MISAKA
        @@ -339,10 +340,10 @@ stackable figure:

      • bf.pl - BF interpreter
      • try.sh - how to run
      • spoiler.html - SPOILER WARNING
      • -
      • 2013_misaka.tar.bz2 - download entry tarball

      Secondary files

        +
      • 2013_misaka.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/2013/morgan1/.entry.json b/2013/morgan1/.entry.json index c5fe166b0..3545ab029 100644 --- a/2013/morgan1/.entry.json +++ b/2013/morgan1/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2013_morgan1.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2013/morgan1/index.html b/2013/morgan1/index.html index 325ebdf78..98e0696f0 100644 --- a/2013/morgan1/index.html +++ b/2013/morgan1/index.html @@ -88,6 +88,7 @@ @@ -141,9 +142,9 @@ Location: FR - French Republic (

        To build:

        -
            make
        +
            make

        To use:

        -
            echo "YYYY/MM/DD" | ./morgan1
        +
            echo "YYYY/MM/DD" | ./morgan1

        where YYYY is the four digit year, MM is the two digit month and DD is two digit day of the month. The arrow keys control the shifting of the date as follows:

        @@ -154,7 +155,7 @@ follows:

      • Down : go backwards 20 days.

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Use the same keys as described above to change the dates each time the program window is in focus.

      Judges’ remarks:

      @@ -260,10 +261,10 @@ unnecessary.

    • Makefile - entry Makefile
    • morgan1.orig.c - original source
    • try.sh - how to run
    • -
    • 2013_morgan1.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2013_morgan1.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2013/morgan2/.entry.json b/2013/morgan2/.entry.json index 0f4e1f69a..52edf14a0 100644 --- a/2013/morgan2/.entry.json +++ b/2013/morgan2/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "2013_morgan2.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2013/morgan2/index.html b/2013/morgan2/index.html index 98aa08032..5c393b416 100644 --- a/2013/morgan2/index.html +++ b/2013/morgan2/index.html @@ -88,6 +88,7 @@ @@ -141,12 +142,12 @@ Location: FR - French Republic (

      To build:

      -
          make
      +
          make

      To use:

      For the console version (ncurses):

      -
          ./morgan2
      +
          ./morgan2

      For the graphical version (X11):

      -
          ./morgan2 X
      +
          ./morgan2 X

      Judges’ remarks:

      The judges enjoyed playing the game almost to completion; if we remember correctly, we managed to place 59 or 60 dominoes. We wonder, what would be @@ -257,10 +258,10 @@ use.

    • morgan2.c - entry source
    • Makefile - entry Makefile
    • morgan2.orig.c - original source
    • -
    • 2013_morgan2.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2013_morgan2.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2013/robison/.entry.json b/2013/robison/.entry.json index ccd372162..0366b1537 100644 --- a/2013/robison/.entry.json +++ b/2013/robison/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2013_robison.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2013/robison/index.html b/2013/robison/index.html index 75dc8be18..7c79ed0c6 100644 --- a/2013/robison/index.html +++ b/2013/robison/index.html @@ -88,6 +88,7 @@ @@ -141,14 +142,14 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      To use:

      -
          ./robison
      +
          ./robison
           # enter an expression
       
           echo expression | ./robison

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      Of integers this prog does a lot,
      plus minus, div times (and what not).

      @@ -239,10 +240,10 @@ With the C lib for strings, you can hack with a flair.

    • Makefile - entry Makefile
    • robison.orig.c - original source
    • try.sh - how to run
    • -
    • 2013_robison.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2013_robison.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2014/birken/.entry.json b/2014/birken/.entry.json index 64c06e5cd..429f9f7e8 100644 --- a/2014/birken/.entry.json +++ b/2014/birken/.entry.json @@ -44,7 +44,7 @@ }, { "file_path" : "2014_birken.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2014/birken/index.html b/2014/birken/index.html index 1b93997ee..147571a0c 100644 --- a/2014/birken/index.html +++ b/2014/birken/index.html @@ -88,6 +88,7 @@ @@ -144,20 +145,20 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      There is alternate code that lets you redefine the port to bind to, in case there is a firewall issue, and also lets you redefine the timing constant, STARDATE. See Alternate code below.

      To use:

      -
          ./prog < some_secret_or_something
      +
          ./prog < some_secret_or_something
       
           ./prog http://host[:port]

      Try:

      -
          ./prog < README.md
      +
          ./prog < README.md

      or maybe:

      -
          echo "IOCCC 2014!" | ./prog
      +
          echo "IOCCC 2014!" | ./prog

      Next, try in another terminal, as the above one is running:

      -
          ./prog http://127.0.0.1:1701
      +
          ./prog http://127.0.0.1:1701

      What happens if you specify instead of a regular file something like /dev/null ?

      But there’s more! Try opening in a browser the same address and then see what @@ -168,9 +169,9 @@ problem for some reason, and it also allows you to change the timing as described by the author. See configuration below.

      Alternate build:

      To specify the port to say, 31337, try:

      -
          make clobber PORT=31337 alt
      +
          make clobber PORT=31337 alt

      To change the timing constant, STARDATE, try:

      -
          make clobber TIME=5000000 alt
      +
          make clobber TIME=5000000 alt

      You can combine them both of course.

      Alternate use:

      Use prog.alt as you would prog above. Remember that ports < 1024 are @@ -194,14 +195,14 @@ a client-side downloader. The hidden transmitted data cannot be reconstructed or even detected from the binary content of the traffic between the client and the server.

      To use web server

      -
          ./prog < secret_file_to_be_downloaded
      +
          ./prog < secret_file_to_be_downloaded

      Try using the program’s source code as the secret file:

      -
          ./prog < prog.c
      +
          ./prog < prog.c

      To use client-side downloader

      -
          ./prog http://host[:port]
      +
          ./prog http://host[:port]

      The optional port defaults to 1701. If the web server instance is started on the same box, try:

      -
          ./prog http://127.0.0.1:1701
      +
          ./prog http://127.0.0.1:1701

      It will incrementally display the contents of the hidden file at a rate of approximately 1 baud.

      The client-side downloader will automatically terminate if the web server is @@ -296,7 +297,7 @@ numerical values.

      Compiler warnings

      For space considerations, the following include statements were dropped resulting in compiler warnings:

      -
          #include <asm/byteorder.h>
      +
          #include <asm/byteorder.h>
           #include <ctype.h>
           #include <netinet/in.h>
           #include <stdlib.h>
      @@ -333,10 +334,10 @@ resulting in compiler warnings:

    • Makefile - entry Makefile
    • prog.alt.c - alternative source
    • prog.orig.c - original source
    • -
    • 2014_birken.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2014_birken.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2014/deak/.entry.json b/2014/deak/.entry.json index 3eca2d081..83df59c14 100644 --- a/2014/deak/.entry.json +++ b/2014/deak/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "2014_deak.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2014/deak/index.html b/2014/deak/index.html index 77545a947..b8b0f505c 100644 --- a/2014/deak/index.html +++ b/2014/deak/index.html @@ -88,6 +88,7 @@ @@ -141,15 +142,15 @@ Location: ZZ - Unknown location

      To build:

      -
          make
      +
          make

      There is an alternate version that the author provided but fixed in 2023 to compile with modern systems and to allow one to reconfigure the constants X1, X2, Y1 and Y2 (which were magic numbers). See Alternate code below.

      To use:

      -
          ./prog
      +
          ./prog

      Try:

      -
          ./prog
      +
          ./prog

      Try changing bounding box coordinates in the source to explore various regions of the fractal.

      Alternate code:

      @@ -157,16 +158,16 @@ various regions of the fractal.

      easily see the difference in what it might look like if the C was more recognisable and also to let you reconfigure the coordinates.

      Alternate build:

      -
          make alt
      +
          make alt

      If you wish to redefine the coordinates you can do so by defining X1, X2, Y1 and/or Y2, which default to: -2, 1, -1.3 and 1.3 respectively. For instance:

      -
          make clobber X1=-3 X2=2 Y1=-2.3 Y2=2.3 alt
      +
          make clobber X1=-3 X2=2 Y1=-2.3 Y2=2.3 alt

      You may pick and choose which ones to redefine.

      Alternate use:

      Use prog.alt as you would prog.

      Alternate try:

      -
          ./try.alt.sh
      +
          ./try.alt.sh

      Judges’ remarks:

      We consider this entry a tribute to all “Abuse of the C preprocessor” and Mandelbrot fractal drawing entries we’ve seen over the years.

      @@ -186,7 +187,7 @@ drawer. There are tools much better suited for drawing fractals.

      The usage of recognizable elements from the C programming language in the application source code is intentionally kept to a bare minimum. If this phrase would not be true, the application would be the following:

      -
          double                                 _[]={-2
      +
          double                                 _[]={-2
           ,1,-1.3                ,1.3,  0,         0,0,0
           ,0               ,0,50, 80,     0,0,0     ,255
           ,               8,0};    int      main       (
      @@ -242,10 +243,10 @@ disables them.

    • prog.alt.c - alternative source
    • prog.orig.c - original source
    • try.alt.sh - how to run alternative code
    • -
    • 2014_deak.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2014_deak.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2014/endoh1/.entry.json b/2014/endoh1/.entry.json index 05ccb49bc..cf82222df 100644 --- a/2014/endoh1/.entry.json +++ b/2014/endoh1/.entry.json @@ -179,7 +179,7 @@ }, { "file_path" : "2014_endoh1.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2014/endoh1/index.html b/2014/endoh1/index.html index b973b9710..facb62122 100644 --- a/2014/endoh1/index.html +++ b/2014/endoh1/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: JP - Japan

      To build:

      -
          make
      +
          make

      To use:

      -
          ./prog > foo.c
      +
          ./prog > foo.c

      Try:

      -
          ./try.sh
      +
          ./try.sh

      The script will ask you if you wish to run make rake but this is not necessary to fully enjoy the entry. make rake will run the rake.sh script and then prog if all is built okay. If rake is not installed then it will check @@ -159,10 +160,10 @@ build main.c.

      Judges’ remarks:

      Big terminals with tiny fonts have their uses in certain cases. One of them is:

      -
          make treacl
      +
          make treacl
           ./treacl

      which is shorthand for:

      -
          ./prog < prog.c > treacle.c
      +
          ./prog < prog.c > treacle.c
           make treacle
           ./treacle

      When using a smartphone to read the output, you may need to @@ -217,10 +218,10 @@ more than 1000 words.

    • src.rb - support program for Rakefile
    • tool.rb - support program for Rakefile
    • vm.c - source code of the VM
    • -
    • 2014_endoh1.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2014_endoh1.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2014/endoh1/spoilers.html b/2014/endoh1/spoilers.html index 2a66e40ff..01ae8a739 100644 --- a/2014/endoh1/spoilers.html +++ b/2014/endoh1/spoilers.html @@ -83,6 +83,7 @@ @@ -134,7 +135,7 @@ the program!

      How did I achieve that?

      It is known that we can mitigate the quine restriction by eval. For example, this is a quine written in Ruby:

      -
          eval s="print 'eval s='; p s"
      +
          eval s="print 'eval s='; p s"

      Note that print appears just once in the program.

      To emulate this approach in C, I adopted the following structure.

          char s[]="<main code>int main() { <VM code> }";
      @@ -230,7 +231,7 @@ renaming and automatic register allocation only for this purpose.

    • gen-prog.c generates prog.c based on main.c.

    You can run the process by rake command. ruby-minisat gem is needed.

    -
        $ gem install ruby-minisat
    +
        $ gem install ruby-minisat
         $ rake

    Tools

    I checked that the following QR code readers can read the output of my program.

    @@ -243,7 +244,7 @@ found at https://play.google.com/store/apps/details?id=com.google.zxing.client.android but it appears to no longer exist.

    You can use tool.rb to convert the output to a png file.

    -
        ./main Hello | ruby tool.rb > hello.png
    +
        ./main Hello | ruby tool.rb > hello.png
     
         $ zbarimg -q hello.png
         QR-Code:Hello
    diff --git a/2014/endoh2/.entry.json b/2014/endoh2/.entry.json
    index 0f2b1c50d..90fefa651 100644
    --- a/2014/endoh2/.entry.json
    +++ b/2014/endoh2/.entry.json
    @@ -43,7 +43,7 @@
     	},
     	{
     	    "file_path" : "2014_endoh2.tar.bz2",
    -	    "inventory_order" : 100000,
    +	    "inventory_order" : 1415926535,
     	    "OK_to_edit" : false,
     	    "display_as" : "tbz2",
     	    "display_via_github" : false,
    diff --git a/2014/endoh2/index.html b/2014/endoh2/index.html
    index 784666d4b..c128f68b0 100644
    --- a/2014/endoh2/index.html
    +++ b/2014/endoh2/index.html
    @@ -88,6 +88,7 @@
         
    @@ -141,11 +142,11 @@ Location: JP - Japan
     
     
     

    To build:

    -
        make
    +
        make

    To use:

    -
        ./prog < input > output
    +
        ./prog < input > output

    Try:

    -
        ./try.sh
    +
        ./try.sh

    Judges’ remarks:

    If you look closely at the source, you will see code that appears to puts C code that includes itself. How and why? Perhaps it is @@ -193,10 +194,10 @@ A is bonding only to T, and C is bonding only to G.

  • Makefile - entry Makefile
  • prog.orig.c - original source
  • try.sh - how to run
  • -
  • 2014_endoh2.tar.bz2 - download entry tarball
  • Secondary files

      +
    • 2014_endoh2.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2014/index.html b/2014/index.html index ff4b8ade0..af6f4f01b 100644 --- a/2014/index.html +++ b/2014/index.html @@ -86,6 +86,7 @@ diff --git a/2014/maffiodo1/.entry.json b/2014/maffiodo1/.entry.json index 139815a2e..5659eb2b7 100644 --- a/2014/maffiodo1/.entry.json +++ b/2014/maffiodo1/.entry.json @@ -99,7 +99,7 @@ }, { "file_path" : "2014_maffiodo1.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2014/maffiodo1/index.html b/2014/maffiodo1/index.html index fe4f8cb92..8c201ed66 100644 --- a/2014/maffiodo1/index.html +++ b/2014/maffiodo1/index.html @@ -88,6 +88,7 @@ @@ -143,13 +144,13 @@ Location: IT - Italian Republic (<

      To build:

      This entry requires SDL to be installed. See FAQ 3.8 if you don’t know how to do this for your system.

      -
          make
      +
          make

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 2014 maffiodo1 bugs.

      To use:

      -
          cat game.level | ./prog 320 200 800 300 128 144 game.rgba game.wav 10343679
      +
          cat game.level | ./prog 320 200 800 300 128 144 game.rgba game.wav 10343679

      The parameters to the program are:

      1. Window width.
      2. @@ -164,7 +165,7 @@ don’t know how to do this for your system.

        note on macOS.

      Try:

      -
          ./giana.sh
      +
          ./giana.sh
       
           ./mario.sh

      If you end up telnetting to the server (feature of mario.sh) you can @@ -175,7 +176,7 @@ try:

      starwars # animated Star Wars 'film'

      If you wish to change the width and height, defaulting at 640 x 480, say to 800 x 800, try:

      -
          ROWS=800 COLS=800 ./mario.sh
      +
          ROWS=800 COLS=800 ./mario.sh
       
           ROWS=800 COLS=800 ./giana.sh

      Judges’ remarks:

      @@ -191,10 +192,10 @@ immediately take effect.

      Author’s remarks:

      Remarks

      Use tabsize=4 to see the magic.

      -
          expand -t 4 prog.c
      +
          expand -t 4 prog.c

      The program returns 0 if the player wins or non-zero if the player loses so you can test it and make something useful (or not), like this:

      -
          cat mario.level | ./prog 320 200 800 300 128 144 mario.rgba mario8.wav 10343679 && telnet telehack.com 23
      +
          cat mario.level | ./prog 320 200 800 300 128 144 mario.rgba mario8.wav 10343679 && telnet telehack.com 23

      and type in: starwars

      This is an engine for platform game. It can be used to create @@ -288,7 +289,7 @@ to create.

      You can input as many objects as you want but the maximum number of objects handled by the program is 333. You can modify this value by editing the source here:

      -
          C[333*7],d=333;
      +
          C[333*7],d=333;

      Each row has six columns:

      1. Screen X : x position of the object in the level.
      2. @@ -403,10 +404,10 @@ Sisters !! :)

      3. giana.level - game level data
      4. mario8.wav - sound file for game
      5. mario.level - game level data
      6. -
      7. 2014_maffiodo1.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2014_maffiodo1.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2014/maffiodo2/.entry.json b/2014/maffiodo2/.entry.json index db5543d97..209756d1e 100644 --- a/2014/maffiodo2/.entry.json +++ b/2014/maffiodo2/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "2014_maffiodo2.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2014/maffiodo2/index.html b/2014/maffiodo2/index.html index 7ffcf34b9..4eb16d299 100644 --- a/2014/maffiodo2/index.html +++ b/2014/maffiodo2/index.html @@ -88,6 +88,7 @@ @@ -141,7 +142,7 @@ Location: IT - Italian Republic (<

      To build:

      -
          make
      +
          make

      There is a 121 byte version provided by the author. See Alternate code below.

      Bugs and (Mis)features:

      @@ -149,16 +150,16 @@ code below.

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 2014 maffiodo2 bugs.

      To use:

      -
          ./prog arg
      +
          ./prog arg

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Alternate code:

      This shorter version is provided by the author. It has a fixed ramp and so not as fun but it’s 121 bytes instead of 140.

      Alternate build:

      -
          make alt
      +
          make alt

      Alternate use:

      -
          cat image.rgb | ./prog.alt
      +
          cat image.rgb | ./prog.alt

      Judges’ remarks:

      On the face of it :-) given what this program does one might wonder what makes this winning entry special. But when you realize the source is small enough for posting @@ -185,24 +186,24 @@ from stdin and print the ASCII ART to stdout.

      Screen size

      If you have a terminal geometry than is different from the common 80x25 you can modify the output width by changing the value of the first variable:

      -
          d=80,
      +
          d=80,

      Something to try

      Type this:

      -
          cat image.rgb | ./prog "  .:;Y0"
      +
          cat image.rgb | ./prog "  .:;Y0"

      You can use your own image. Convert the image to a raw RGB image. Using ImageMagick it’s very simple:

      -
          convert -geometry 80x source.jpg image.rgb
      +
          convert -geometry 80x source.jpg image.rgb

      This program require one parameter or it will crash. The parameter of the program is the conversion ramp. You can use different ramps or create your own (for example using some letters of your name).

      These are some ramps you can try:

      -
          ./prog " :1"
      +
          ./prog " :1"
           ./prog "  .:;Y0"
           ./prog " .:-=+*#%@"
           ./prog "   .,:!-iots&8%#@$"

      121 byte version

      An alternative version of this program is only 121bytes long:

      -
          d=80,e,j;g(){j+=getchar();}main(){for(;;){j=0;g();if(j<0)break;g(g());putchar(" .:#@"[j/3*5>>8]);if(!(++e%d))puts("");}}
      +
          d=80,e,j;g(){j+=getchar();}main(){for(;;){j=0;g();if(j<0)break;g(g());putchar(" .:#@"[j/3*5>>8]);if(!(++e%d))puts("");}}

      This alternative version has a fixed ramp. It’s smaller but it’s not so fun to use…

      To build:

      -
          make
      +
          make

      To use:

      -
          ./prog [arg ..]
      +
          ./prog [arg ..]

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      Think of this as a Maker Faire’s make. :-)

      It works reasonably well. While not super ultra-featured, it does fair well @@ -220,10 +221,10 @@ It will recursively use itself for sub-make (the MAKE= assignment i

    • Makefile - entry Makefile
    • prog.orig.c - original source
    • try.sh - how to run
    • -
    • 2014_morgan.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2014_morgan.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2014/sinon/.entry.json b/2014/sinon/.entry.json index 259be4665..1a4bd05f5 100644 --- a/2014/sinon/.entry.json +++ b/2014/sinon/.entry.json @@ -67,7 +67,7 @@ }, { "file_path" : "2014_sinon.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2014/sinon/index.html b/2014/sinon/index.html index b80a8be19..8e02646fa 100644 --- a/2014/sinon/index.html +++ b/2014/sinon/index.html @@ -88,6 +88,7 @@ @@ -141,13 +142,13 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      To use:

      -
          ./hecate.sh
      +
          ./hecate.sh
       
           ./glock.sh

      Try:

      -
          ./try.sh
      +
          ./try.sh

      This script will ask you if you wish to try again after each run. Type in any character other than y or Y to exit at this point.

      Judges’ remarks:

      @@ -160,7 +161,7 @@ or unspecified behavior?

      under one minute.

      To start, compile and run the program. To resume, compile and run the output repeatedly until you have won/lost the game. For example:

      -
          cp prog.c run.c
      +
          cp prog.c run.c
           gcc -O0 run.c -o run && ./run | tee run.c
           gcc -O2 run.c -o run && ./run | tee run.c
           ...
      @@ -211,7 +212,7 @@ a primary input.

      Sinon has a demo mode that plays the game automatically. Make sure that there are no files named “run” and “run.c” in current directory (they will be overwritten) and run:

      -
          perl prog.c | bash
      +
          perl prog.c | bash

      File size and CRC32 of prog.c are embedded in line 7.

      Process for making Sinon is included in spoiler.html.

      Layout of this code is based on Asada Shino, also known as “Sinon”, @@ -246,10 +247,10 @@ from Sword Art Online.

    • hecate.sh - how to run
    • try.sh - how to run
    • spoiler.html - SPOILER WARNING
    • -
    • 2014_sinon.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2014_sinon.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2014/skeggs/.entry.json b/2014/skeggs/.entry.json index 9c9eb7c21..bd1ba9dee 100644 --- a/2014/skeggs/.entry.json +++ b/2014/skeggs/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "2014_skeggs.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2014/skeggs/index.html b/2014/skeggs/index.html index a3c937478..b4e4f822a 100644 --- a/2014/skeggs/index.html +++ b/2014/skeggs/index.html @@ -88,6 +88,7 @@ @@ -141,9 +142,9 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      To use:

      -
          ./prog
      +
          ./prog

      HINT: Try pressing the left and right arrow keys as needed. Also try pressing space/enter to select options. Pressing Q or Escape may end the fun before you are ready. :-)

      @@ -323,10 +324,10 @@ development of this entry.

    • prog.c - entry source
    • Makefile - entry Makefile
    • prog.orig.c - original source
    • -
    • 2014_skeggs.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2014_skeggs.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2014/vik/.entry.json b/2014/vik/.entry.json index 84c134bff..52b0142d2 100644 --- a/2014/vik/.entry.json +++ b/2014/vik/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "2014_vik.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2014/vik/index.html b/2014/vik/index.html index ea18b8124..073849bf1 100644 --- a/2014/vik/index.html +++ b/2014/vik/index.html @@ -88,6 +88,7 @@ @@ -141,7 +142,7 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      There is an alternate version that will theoretically work with Windows compilers (if anything in Windows works :-) ). See the Alternate code section below.

      @@ -150,24 +151,24 @@ code section below.

          STATUS: known bug - please help us fix

      For more detailed information see 2014 vik bugs.

      To use:

      -
          echo foo | ./prog > audio_file.raw
      +
          echo foo | ./prog > audio_file.raw
       
           echo foo | ./prog | mplayer -demuxer rawaudio -

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Alternate code:

      The alternate code, prog.alt.c, is based on the author’s instructions on how to get it to work with Windows.

      Alternate build:

      -
          make alt
      +
          make alt

      Alternate use:

      Use prog.alt as you would prog above as well as below.

      Judges’ remarks:

      This program sets a new tone for obfuscation. But do you understand what it says about obfuscation? Perhaps:

      -
          ./prog < prog.c > prog.raw
      +
          ./prog < prog.c > prog.raw

      might speak to your coding style? If not, then perhaps:

      -
          ./prog < README.md | mplayer -demuxer rawaudio -
      +
          ./prog < README.md | mplayer -demuxer rawaudio -

      might help? :-)

      Author’s remarks:

      Remarks

      @@ -177,7 +178,7 @@ I can tell, there are at least six chocolate references in this program.

      Via streaming to mplayer(1), you can listen to the Morse audio.

      Don’t forget the last ‘-’ as it makes mplayer(1) read from stdin.

      Convert audio file with Morse signals to text

      -
          ./prog e < audio_file.raw
      +
          ./prog e < audio_file.raw

      or alternatively pass a .wav file as input.

      The preferred input format 44.1kHz stereo, but it does a decent job on mono input and different frequencies as well.

      @@ -187,7 +188,7 @@ the program relies on writing binary data to stdout.

      Microsoft compilers add a carriage return to newlines, and to compile the program with this platform, the following line can be added to main() before any code in order for the program to run correctly:

      -
          _setmode(_fileno(stdout), 0x8000);
      +
          _setmode(_fileno(stdout), 0x8000);

      NOTE: see the alternate code for this.

      Known Issues

      The program uses a quite simple algorithm for detecting tone on and off events @@ -228,10 +229,10 @@ narrow bandpass filter on the frequency of the transmission.

    • prog.alt.c - alternative source
    • prog.orig.c - original source
    • try.sh - how to run
    • -
    • 2014_vik.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2014_vik.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2014/wiedijk/.entry.json b/2014/wiedijk/.entry.json index 564dcea49..35505875e 100644 --- a/2014/wiedijk/.entry.json +++ b/2014/wiedijk/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2014_wiedijk.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2014/wiedijk/index.html b/2014/wiedijk/index.html index efc269e1e..542a13b73 100644 --- a/2014/wiedijk/index.html +++ b/2014/wiedijk/index.html @@ -88,6 +88,7 @@ @@ -141,15 +142,15 @@ Location: NL - Kingdom of the Netherlan

      To build:

      -
          make
      +
          make

      To use:

      -
          ./prog
      +
          ./prog

      Try:

      -
          ./try.sh
      +
          ./try.sh

      By default that will use indent(1) found by the shell type -P indent and sed(1) found by the shell type -P sed but if you want to change these, say to try a different beautifier, you can do it like:

      -
          INDENT=bcpp ./try.sh
      +
          INDENT=bcpp ./try.sh

      which would change it to use bcpp(1) instead of indent(1). Do similar for sed(1) only use the name SED.

      Judges’ remarks:

      @@ -211,10 +212,10 @@ everything.
    • Makefile - entry Makefile
    • prog.orig.c - original source
    • try.sh - how to run
    • -
    • 2014_wiedijk.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2014_wiedijk.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2015/burton/.entry.json b/2015/burton/.entry.json index c16ab538d..1b4828446 100644 --- a/2015/burton/.entry.json +++ b/2015/burton/.entry.json @@ -123,7 +123,7 @@ }, { "file_path" : "2015_burton.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2015/burton/index.html b/2015/burton/index.html index 5cd1520e0..7e3f85975 100644 --- a/2015/burton/index.html +++ b/2015/burton/index.html @@ -88,6 +88,7 @@ @@ -141,25 +142,25 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      To use:

      -
          ./prog "expression"
      +
          ./prog "expression"

      or:

      -
          ./prog
      +
          ./prog

      Type in expressions on standard input.

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Notice how the script reads in from a file. If you type just:

      -
          ./prog
      +
          ./prog

      it will prompt you in the same way. Send ctrl-c to exit.

      Finally, if you wish to read the man page:

      -
          man ./calc.1
      +
          man ./calc.1

      Alternate code:

      An alternate version of this entry, prog.alt.c, is provided. This alternate code is discussed in the “prog.c vs prog.alt.c” section of the author’s remarks below.

      Alternate build:

      -
          make alt
      +
          make alt

      Alternate use:

      Use prog.alt as you would prog above.

      Judges’ remarks:

      @@ -189,7 +190,7 @@ corrected by adding -fsigned-char to the compile line.

      Yes, this is another calculator program.

      However, unlike any other calculator source code the author is aware of, this one contains no digits. At all. Anywhere. As in

      -
          grep '[0-9]' prog.c || echo no digits!
      +
          grep '[0-9]' prog.c || echo no digits!

      Nor are the digits simply obfuscated. There are no character constants. There is only one single, short string, and it does not contain any obfuscated digits. And yet the output is in decimal and hexadecimal, and it accepts octal, decimal, @@ -265,7 +266,7 @@ To stifle these complaints:

      Test Suite:

      If the program name begins with an e, it echoes stdin to stdout. This allows for a convenient test suite:

      -
          ln -sf prog eprog
      +
          ln -sf prog eprog
           PATH=. eprog < test.in | diff - test.out

      Spoilers:

      If you do not want to puzzle out how it works, see spoilers.html.

      @@ -306,10 +307,10 @@ This allows for a convenient test suite:

    • test.out - test suite comparison data
    • spoilers.html - SPOILER WARNING
    • src.doc.txt - SPOILER WARNING hints about the source
    • -
    • 2015_burton.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2015_burton.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2015/burton/road.to.obscurity.html b/2015/burton/road.to.obscurity.html index 216c270f9..2f49ed84e 100644 --- a/2015/burton/road.to.obscurity.html +++ b/2015/burton/road.to.obscurity.html @@ -83,6 +83,7 @@ diff --git a/2015/burton/spoilers.html b/2015/burton/spoilers.html index 0032d6d7e..8b4da4719 100644 --- a/2015/burton/spoilers.html +++ b/2015/burton/spoilers.html @@ -83,6 +83,7 @@ diff --git a/2015/dogon/.entry.json b/2015/dogon/.entry.json index a20456115..f6841335d 100644 --- a/2015/dogon/.entry.json +++ b/2015/dogon/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2015_dogon.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2015/dogon/index.html b/2015/dogon/index.html index cc1022d57..ca6bf5356 100644 --- a/2015/dogon/index.html +++ b/2015/dogon/index.html @@ -88,6 +88,7 @@ @@ -141,19 +142,19 @@ Location: IL - State of Israel (

      To build:

      -
          make
      +
          make

      To change the dimensions you can use the WIDTH and HEIGHT variables when compiling (default 1024 x 800):

      -
          make clobber WIDTH=640 HEIGHT=480
      +
          make clobber WIDTH=640 HEIGHT=480

      to make the game 640 x 480. Obviously changing it to non numbers or negative numbers or too large numbers will cause problems.

      There is an alternate version that is based on the author’s suggestion to change a value in order to see a bug that they avoided in their entry. See Alternate code below.

      To use:

      -
          ./prog
      +
          ./prog

      Try:

      -
          ./prog
      +
          ./prog

      Press and hold the Left Arrow key until you turn 90-degrees to the left.

      When you see a long tunnel, press the function key F2.

      Use the Up, Down, Left and Right keys to change your path.

      @@ -176,7 +177,7 @@ again.

      direction of the main tunnel.

    This alt version does this for you.

    Alternate build:

    -
        make alt
    +
        make alt

    Alternate use:

    Use prog.alt as you would prog above.

    Alternate try:

    @@ -246,7 +247,7 @@ important support of up to 32 function keys keyboards without spilling over the size limit, and allows us to use such fun expression for arrow view control as the following: -
        *(a&1?&C:&B)-=(.05 -a/2%2*.1)*!(a-1&4092^3920)
    +
        *(a&1?&C:&B)-=(.05 -a/2%2*.1)*!(a-1&4092^3920)

    Precision issues:

    The entry, on purpose, (see the section about SIMD below) does not use enough bits of precision, so sometimes the ray will miss the intersection of two voxel @@ -322,10 +323,10 @@ reordered as RBG.

  • Makefile - entry Makefile
  • prog.alt.c - alternative source
  • prog.orig.c - original source
  • -
  • 2015_dogon.tar.bz2 - download entry tarball
  • Secondary files

      +
    • 2015_dogon.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2015/duble/.entry.json b/2015/duble/.entry.json index eaf3af6f9..d46cb9fde 100644 --- a/2015/duble/.entry.json +++ b/2015/duble/.entry.json @@ -67,7 +67,7 @@ }, { "file_path" : "2015_duble.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2015/duble/index.html b/2015/duble/index.html index e75fb154b..2848e3676 100644 --- a/2015/duble/index.html +++ b/2015/duble/index.html @@ -88,6 +88,7 @@ @@ -141,13 +142,13 @@ Location: FR - French Republic (

      To build:

      -
          make
      +
          make

      There is an alternate version of this entry, discussed in the author’s remarks. See Alternate code below.

      To use:

      -
          echo Some text | ./prog
      +
          echo Some text | ./prog

      Try:

      -
          ./try.sh
      +
          ./try.sh

      As the script says if you want to move to the next command at any point (lorem-ipsum.txt takes a while to print in particular) you may do so by hitting ctrl-c/sending intr.

      @@ -155,7 +156,7 @@ ctrl-c/sending intr.

      This alternate code, provided by the author, is discussed in more detail by the author in the ‘prog.c vs prog.alt.c’ section of their remarks.

      Alternate build:

      -
          make alt
      +
          make alt

      Alternate use:

      Use prog.alt as you would prog above.

      Judges’ remarks:

      @@ -181,9 +182,9 @@ with other compilers or optimization levels). These have been fixed in been shortened in this file.

      How to build

      If you have clang:

      -
          CC=clang make -e
      +
          CC=clang make -e

      Otherwise (gcc):

      -
          make
      +
          make

      (You will get a few warnings in this case.)

      How to use it

      You need a terminal configured to handle a UTF-8 encoding and a font including @@ -196,13 +197,13 @@ configuration was needed.

      I also tested it on FreeBSD 9.3 32bits (font and encoding configuration was needed in this case).

      Basic mode:

      -
          $ echo 'I am testing this thing.' | ./prog
      +
          $ echo 'I am testing this thing.' | ./prog
           [... rendering ...]
       
           $ ./prog < lorem-ipsum.txt
           [... rendering ...]

      Interactive mode:

      -
          $ ./prog
      +
          $ ./prog
           > hello world!!!
           [... rendering ...]
           >
      @@ -255,13 +256,13 @@ could still happen in case of long words.

      Given the limited set of characters handled, the program is mostly limited to simple text documents.

      Thus, if you try for example:

      -
          $ ./prog < prog.c
      +
          $ ./prog < prog.c

      You will not get something that looks like C code. (but you can still try, if you are curious. :)

      A ‘draft’ mode

      Defining an environment variable called DRAFT will enable the ‘draft-mode’. Try for example:

      -
          $ echo 'testing the draft mode' | DRAFT=1 ./prog
      +
          $ echo 'testing the draft mode' | DRAFT=1 ./prog

      The program will run much faster but the rendering will be less precise.

      The subtle interactive mode

      I saved the best for last: usually, programs that handle an “interactive mode” @@ -298,10 +299,10 @@ detection, but still behaves (or seems to behave) appropriately?

    • codes.txt - show how each character is drawn
    • lorem-ipsum.txt - sample input
    • try.sh - how to run
    • -
    • 2015_duble.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2015_duble.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2015/endoh1/.entry.json b/2015/endoh1/.entry.json index b9acd57dd..653b87a1c 100644 --- a/2015/endoh1/.entry.json +++ b/2015/endoh1/.entry.json @@ -60,7 +60,7 @@ }, { "file_path" : "2015_endoh1.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2015/endoh1/index.html b/2015/endoh1/index.html index b754bd005..6a8d3a5f4 100644 --- a/2015/endoh1/index.html +++ b/2015/endoh1/index.html @@ -88,6 +88,7 @@ @@ -144,12 +145,12 @@ Location: JP - Japan

      To build:

      -
          make
      +
          make

      NOTE: this program requires the tool tcpserver to use. If you do not have this program see FAQ 3.14 - How do I compile and install tcpserver for entries that require it.

      To use:

      -
          tcpserver -v 127.0.0.1 10333 ./prog ioccc.txt
      +
          tcpserver -v 127.0.0.1 10333 ./prog ioccc.txt

      Then connect to http://localhost:10333 with your browser.

      Judges’ remarks:

      How did the leopard get its @@ -168,7 +169,7 @@ test? This program is also based on his work.

      Whirlwind tour

      Compile the program as follows:

      -
          cc -O3 -std=c99 \
      +
          cc -O3 -std=c99 \
                  -Wall -Wextra -pedantic -o prog prog.c \
                  -Delta_u="Du*laplacian(u)-u*v*v+F*(1-u)" \
                  -Delta_v="Dv*laplacian(v)+u*v*v-v*(F+K)" \
      @@ -179,7 +180,7 @@ his work.

      ucspi-tcp package, which was created by Daniel J. Bernstein’s 1991/brndstd “Best of Show”.

      -
          tcpserver -v 127.0.0.1 10333 ./prog ioccc.txt
      +
          tcpserver -v 127.0.0.1 10333 ./prog ioccc.txt

      Finally, open http://127.0.0.1:10333/ in a modern browser supporting HTML5. You can use the mouse cursor to place drops into the Petri dish interactively.

      @@ -323,10 +324,10 @@ field data to the browser on each frame.
    • center.txt - sample input
    • ioccc.txt - sample input
    • line.txt - sample input
    • -
    • 2015_endoh1.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2015_endoh1.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2015/endoh2/.entry.json b/2015/endoh2/.entry.json index e54f1e4ce..3dd57bf4f 100644 --- a/2015/endoh2/.entry.json +++ b/2015/endoh2/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2015_endoh2.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2015/endoh2/index.html b/2015/endoh2/index.html index 17df1763e..f900817e4 100644 --- a/2015/endoh2/index.html +++ b/2015/endoh2/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: JP - Japan

      To build:

      -
          make
      +
          make

      To use:

      -
          ./prog
      +
          ./prog

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      At this point you might be wondering, WTF?*

        @@ -154,7 +155,7 @@ Location: JP - Japan
      • What the Fish (python form)

      How is this code obfuscated? Well look again:

      -
          less prog.c
      +
          less prog.c
       
           more prog.c

      Where did those underscores come from? Well RTFS!**

      @@ -163,7 +164,7 @@ Location: JP - Japan

      If you are still puzzled, look at prog.c with your favorite text editor.

      Author’s remarks:

      Follow these instructions literally!

      -
          cat prog.c
      +
          cat prog.c
           gcc -w -o prog prog.c
           ./prog

      You will do a double take.

      @@ -198,10 +199,10 @@ terminal supports bold.

    • Makefile - entry Makefile
    • prog.orig.c - original source
    • try.sh - how to run
    • -
    • 2015_endoh2.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2015_endoh2.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2015/endoh3/.entry.json b/2015/endoh3/.entry.json index 69eedfd7b..3aa5201c9 100644 --- a/2015/endoh3/.entry.json +++ b/2015/endoh3/.entry.json @@ -59,7 +59,7 @@ }, { "file_path" : "2015_endoh3.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2015/endoh3/index.html b/2015/endoh3/index.html index 2e93b0385..5b6039fe1 100644 --- a/2015/endoh3/index.html +++ b/2015/endoh3/index.html @@ -88,6 +88,7 @@ @@ -141,17 +142,17 @@ Location: JP - Japan

      To build:

      -
          make
      +
          make

      To use:

      -
          ./prog
      +
          ./prog

      Try:

      To see the original mullender in action:

      -
          ./try.sh
      +
          ./try.sh

      Observe what happens when you hit enter or another character! You might even try typing out, one character at a time, 1984/mullender, and then see what it looks like at the end. Send INTR to end the program.

      More generally use:

      -
          cc -o prog prog.c foo.c
      +
          cc -o prog prog.c foo.c
           ./prog
           ^C  # if necessary, where ^C is ctrl-C, interrrupt

      to compile and run prog as whatever foo.c is in the joke PDP-11 emulator.

      @@ -181,7 +182,7 @@ the source code from all angles..

      This program is a joke PDP-11 emulator. (“ll-dpd” is embedded in the code. Read it upside down.)

      You got it? This program is supposed to be used in this way:

      -
          wget https://www.ioccc.org/1984/mullender.c
      +
          wget https://www.ioccc.org/1984/mullender.c
           clang -o prog prog.c mullender.c
           ./prog

      You can enjoy the legendary winning entry of the first IOCCC, again.

      @@ -359,10 +360,10 @@ register).

    • try.sh - how to run
    • ioccc.c - program as an array of shorts
    • mullender.c - copy of 1984/mullender.c
    • -
    • 2015_endoh3.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2015_endoh3.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2015/endoh4/.entry.json b/2015/endoh4/.entry.json index a41032a4b..3d2ae91f9 100644 --- a/2015/endoh4/.entry.json +++ b/2015/endoh4/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "2015_endoh4.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2015/endoh4/index.html b/2015/endoh4/index.html index 8d27e8cbd..7d88926dd 100644 --- a/2015/endoh4/index.html +++ b/2015/endoh4/index.html @@ -88,6 +88,7 @@ @@ -141,19 +142,19 @@ Location: JP - Japan

      To build:

      -
          make
      +
          make

      There is an alt version which is the originally submitted entry. See Alternate code below for details.

      To use:

      -
          ./prog <a number of arguments>
      +
          ./prog <a number of arguments>

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Alternate code:

      An alternate version of this entry, prog.alt.c, is provided. This alternate code does not contain improvements suggested by Gil Dogon; it is the author’s original entry.

      Alternate build:

      -
          make alt
      +
          make alt

      Alternate use:

      Use prog.alt as you would prog above.

      Judges’ remarks:

      @@ -163,7 +164,7 @@ run out of command line argument space? How could you modify the program to experiment with numbers that have more or larger factors?

      Author’s remarks:

      Visual factorization 1-liner. Try:

      -
          gcc -o prog prog.c
      +
          gcc -o prog prog.c
           ./prog @
           ./prog @ @
           ./prog @ @ @
      @@ -204,10 +205,10 @@ you!

    • prog.alt.c - alternative source
    • prog.orig.c - original source
    • try.sh - how to run
    • -
    • 2015_endoh4.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2015_endoh4.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2015/hou/.entry.json b/2015/hou/.entry.json index 6ff58e4bc..5f32c52ff 100644 --- a/2015/hou/.entry.json +++ b/2015/hou/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "2015_hou.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2015/hou/index.html b/2015/hou/index.html index 28122de61..d82564941 100644 --- a/2015/hou/index.html +++ b/2015/hou/index.html @@ -88,6 +88,7 @@ @@ -141,16 +142,16 @@ Location: CN - People’s Republic of C

      To build:

      -
          make
      +
          make

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 2015 hou bugs.

      To use:

      -
          echo something | ./prog
      +
          echo something | ./prog
           ./prog < file

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      A good start for understanding this entry might be rfc1321.txt. How does it compute this using only a @@ -159,11 +160,11 @@ algorithm is about 355 lines of code, yet this entry is only 199 lines with one statement per line and it isn’t using lots of macro expansion tricks like the reference code!

      Some things that make you go, “huh?”

      -
          ./prog < prog.c | cut -c-5
      +
          ./prog < prog.c | cut -c-5
           ./prog < Makefile | cut -c-4

      How are those values magically returned?

      What happens with a large file? Something over 256K.

      -
          ./prog < large_file
      +
          ./prog < large_file

      Where does that message come from?

      Author’s remarks:

      This looks like a normal C program.

      @@ -240,10 +241,10 @@ result. Error messages become garbled, though.

    • prog.orig.c - original source
    • try.sh - how to run
    • rfc1321.txt - RFC 1321 - MD5 Message-Digest Algorithm
    • -
    • 2015_hou.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2015_hou.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2015/howe/.entry.json b/2015/howe/.entry.json index 21893ba6d..208fd847a 100644 --- a/2015/howe/.entry.json +++ b/2015/howe/.entry.json @@ -115,7 +115,7 @@ }, { "file_path" : "2015_howe.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2015/howe/index.html b/2015/howe/index.html index 3d30e7273..dac054bf3 100644 --- a/2015/howe/index.html +++ b/2015/howe/index.html @@ -88,6 +88,7 @@ @@ -141,20 +142,20 @@ Location: CA - Canada

      To build:

      -
          make
      +
          make

      There is an alternate version provided. See Alternate code below.

      To use:

      -
          ./prog file1 file2
      +
          ./prog file1 file2
       
           ./prog -d file1 file2

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Alternate code:

      This alternate version does not use a 64-bit FNV hash. This was the original entry but was changed to be the alt version.

      Alternate build:

      -
          make alt
      +
          make alt

      Alternate use:

      Use prog.alt as you would prog above.

      Judges’ remarks:

      @@ -265,10 +266,10 @@ Comm. of ACM, Vol. 18, June 1975, pages 341-343
    • spoiler/err.h - SPOILER WARNING
    • spoiler/prog.c - SPOILER WARNING
    • war-and-peace.txt - War and Peace translated to English
    • -
    • 2015_howe.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2015_howe.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2015/index.html b/2015/index.html index 8d4b77f83..5c78ab54a 100644 --- a/2015/index.html +++ b/2015/index.html @@ -86,6 +86,7 @@ diff --git a/2015/mills1/.entry.json b/2015/mills1/.entry.json index 4d311dd5b..389f14b3f 100644 --- a/2015/mills1/.entry.json +++ b/2015/mills1/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2015_mills1.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2015/mills1/index.html b/2015/mills1/index.html index 24d241aa9..84aa798c0 100644 --- a/2015/mills1/index.html +++ b/2015/mills1/index.html @@ -88,6 +88,7 @@ @@ -141,19 +142,19 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      To use:

      -
          ./prog
      +
          ./prog

      Try:

      -
          ./prog
      +
          ./prog

      Press the up arrow and the down arrow at the right time.

      Judges’ remarks:

      Did you find that mobile application game a bit frustrating? Well you can adjust the Makefile parameters to make life a bit easier for you:

      -
          ./try.sh
      +
          ./try.sh

      which runs:

      -
          make clobber all DW=199999 DW=22 DH=16 DA=50 DI=-150
      +
          make clobber all DW=199999 DW=22 DH=16 DA=50 DI=-150
           ./prog

      From the Makefile:

          # Game parameters
      @@ -240,9 +241,9 @@ characters (needed for UTF-8 support, which is needed for emojis), you may need
       to make some changes to the Makefile to get emojis to work on your system.
       To help you get started, I’ve included some example substitutions for emojis
       sprites and instruction text; for example, type

      -
          make EMOJI=beer LANGUAGE=spanish
      +
          make EMOJI=beer LANGUAGE=spanish

      or

      -
          make EMOJI=globe
      +
          make EMOJI=globe

      for some examples (the full list of options is in the Makefile). Don’t forget to make clobber first (or use make -B). If the output doesn’t look right, you may need to link with the “wide” version of ncurses. On MacOSX 10.11, it @@ -282,10 +283,10 @@ live-streamed targeted video advertising.

    • Makefile - entry Makefile
    • prog.orig.c - original source
    • try.sh - how to run
    • -
    • 2015_mills1.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2015_mills1.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2015/mills2/.entry.json b/2015/mills2/.entry.json index 903783f98..965d2aa3d 100644 --- a/2015/mills2/.entry.json +++ b/2015/mills2/.entry.json @@ -59,7 +59,7 @@ }, { "file_path" : "2015_mills2.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2015/mills2/index.html b/2015/mills2/index.html index 770a0769e..048385eba 100644 --- a/2015/mills2/index.html +++ b/2015/mills2/index.html @@ -88,6 +88,7 @@ @@ -141,22 +142,22 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 2015 mills2 bugs.

      To use:

      -
          ./prog compressed_file.Z
      +
          ./prog compressed_file.Z

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      Without ASCII art, the source code of this entry would have been exactly 256 bytes. Compared to 1990/jaw, it is very impressive, even taking into account the missing atob functionality. Now we wish for a compress(1)-like compressor using a similar idea.

      Why is the sad smiley on line 12 in that particular place?

      -
          c=0)                            :( O
      +
          c=0)                            :( O

      Author’s remarks:

      The Program

      This program is an implementation of the unix zcat(1) command for printing @@ -174,7 +175,7 @@ single function and a few ints.

      on the command line. On the odd chance you don’t have compress(1) hanging about on your system, I’ve provided compressed copies of this year’s IOCCC rules and guidelines files. To print them, just do

      -
          ./prog ioccc_guidelines.txt.Z
      +
          ./prog ioccc_guidelines.txt.Z
           ./prog ioccc_rules.txt.Z

      The Details

      The basic cleverness here comes from realizing that the compressed data is @@ -260,10 +261,10 @@ you might want to compile this for.

    • try.sh - how to run
    • ioccc_guidelines.txt.Z - compressed IOCCC 2015 guidelines
    • ioccc_rules.txt.Z - compressed IOCCC 2015 rules
    • -
    • 2015_mills2.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2015_mills2.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2015/muth/.entry.json b/2015/muth/.entry.json index 8e2e565d3..1d796c673 100644 --- a/2015/muth/.entry.json +++ b/2015/muth/.entry.json @@ -163,7 +163,7 @@ }, { "file_path" : "2015_muth.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2015/muth/index.html b/2015/muth/index.html index 5fdc7697a..80286f162 100644 --- a/2015/muth/index.html +++ b/2015/muth/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: DE - Federal Republic of Germ

      To build:

      -
          make
      +
          make

      To use:

      -
          make -B [MACHINE=your_machine.h] [TAPE=your_tape.h] [X=[0|1|2|3|4|5|6|7|8|9]] [V=[0|1|2]] run
      +
          make -B [MACHINE=your_machine.h] [TAPE=your_tape.h] [X=[0|1|2|3|4|5|6|7|8|9]] [V=[0|1|2]] run

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      This is something we were fearing all along: that the C preprocessor is Turing-complete even without conditionals and recursive file inclusion as some kind of a @@ -179,13 +180,13 @@ macros in the output.

      files for examples.

      Tape Symbols

      Every symbol used (except _) must be explicitly declared using

      -
          #define sym_SYMBOL(sym, _SYMBOL) sym
      +
          #define sym_SYMBOL(sym, _SYMBOL) sym

      Example:

      -
          #define sym_1(sym, _1) sym
      +
          #define sym_1(sym, _1) sym

      Tape

      The initial content of the tape must be defined in the tape header using a triple like:

      -
          #define tape ((((,),...l2), l1), c, (r1, (r2..., (,))))
      +
          #define tape ((((,),...l2), l1), c, (r1, (r2..., (,))))
      • l1, l2, … are the symbols to the left
      • c is the symbol at the current position
      • @@ -209,7 +210,7 @@ want no movement.

        There must be a state A defined, which becomes the initial state of the machine.

        To halt the machine, use the keyword break as in

        -
            #define A_1 (2, break)
        +
            #define A_1 (2, break)

        To build:

        -
            make
        +
            make

        Bugs and (Mis)features:

        The current status of this entry is:

            STATUS: INABIAF - please **DO NOT** fix

        For more detailed information see 2015 schweikhardt bugs.

        To use:

        -
            ./prog n
        +
            ./prog n

        where n is a base 16 number of any size.

        NOTE: although it’s supposed to be a base 16 number nothing will stop you from doing something else. The author explains this in more details.

        Try:

        -
            ./try.sh
        +
            ./try.sh

        After running it once to see what commands are run, you might wish to run it a second time and just hold down space to see a fun scroll of numbers especially where zeroes move to the right.

        Judges’ remarks:

        This code is clean. When you compile with all warnings enabled, such as with clang:

        -
            cc -Weverything -pedantic -std=c11 -Dtyp=uint64\_t -O3 prog.c -o prog
        +
            cc -Weverything -pedantic -std=c11 -Dtyp=uint64\_t -O3 prog.c -o prog

        The code compiles without warnings on the systems that we tested!

        Even more, the code was 100% clean when we ran it against various static source checkers.

        @@ -177,7 +178,7 @@ would be a good warm-up exercise for someone to get ready to begin to work on the Collatz conjecture.

        You may explore this famous conjecture using this entry:

        -
            ./prog 2410
        +
            ./prog 2410
             ./prog abfff
             ./prog 27f8cebf
             ./prog 246f8fddf
        @@ -238,7 +239,7 @@ and stops at 1. The number n is specified in hexadecim
         prefix) as the first argument. The program prints the given number in
         zero-padded hex and each iteration along with a line count in decimal.
         The example above looks like this (compiled with 64 bit word size):

        -
            $ ./prog 6
        +
            $ ./prog 6
             0000000000000006
             0000000000000003 1
             000000000000000A 2
        @@ -251,7 +252,7 @@ The example above looks like this (compiled with 64 bit word size):

        The size of n is only limited by the argument size limit of your shell/OS (the program implements arbitrary size bignums). To query this on your POSIX system, run

        -
            $ getconf ARG_MAX
        +
            $ getconf ARG_MAX
             262144

        which reports the limit in bytes, here 256KB. This allows to test whether a Googol, which is @@ -259,7 +260,7 @@ whether a Googol, which is Fear not, bc(1) to the rescue:

        -
            $ printf 'obase=16;10^100\n' | bc
        +
            $ printf 'obase=16;10^100\n' | bc
             1249AD2594C37CEB0B2784C4CE0BF38ACE408E211A7CAAB24308A82E8F1000000000\
             0000000000000000
             $ ./prog 1249AD2594C37CEB0B2784C4CE0BF38ACE408E211A7CAAB24308A82E8F10000000000000000000000000 \
        @@ -373,7 +374,7 @@ hard, I could use __LINE__ and stdio.h macros EO
         

        Run it through a C beautifier

        Another identity operation. I’ve done it for you already. Use this .indent.pro with FreeBSD indent:

        -
            $ cat .indent.pro
        +
            $ cat .indent.pro
                 -bad   /* blank line after decls */
                 -bap   /* blank line after functions */
                 -br    /* braces on if line */
        @@ -415,7 +416,7 @@ to be.

        Examine the algorithm

        Spoilers ahead. Duh!

        Pseudocode, with comments matching those in the C source:

        -
            /* run */
        +
            /* run */
             if (non-NULL and nonempty argv[1]) {
                n = convert(argv[1])
                print n                       /* 2hx */
        @@ -432,7 +433,7 @@ to be.

        } }

        Bignums are represented as the two member structs:

        -
            typedef struct {
        +
            typedef struct {
                  size_t places;   /* number of places in base 2 to the power of (8*sizeof(type)) */
                  type  *number;   /* dynamically allocated memory for number */
             } bignum
        @@ -452,7 +453,7 @@ expected.

        This means however, that the program accepts any string, turns it into a starting number (which is output as the first line), and starts crunching. Nothing stops you from executing

        -
            ./prog "$(cat prog.c)"            # Kind of quine?
        +
            ./prog "$(cat prog.c)"            # Kind of quine?
             ./prog "$(cat rules guidelines)"  # A jackpot? Maybe next year...
             ./prog "$(cat /bin/ls)"           # Number cut short at first NUL byte.

        In a certain way, the program is character set and encoding agnostic.

        @@ -475,14 +476,14 @@ use 8 * sizeof(typ) bits per place. It does not work when CHA

        The open source static checker cppcheck checks various problems with respect to style, performance, portability and general fishiness. To enable all checks, run

        -
            cppcheck --enable=all --force -I/usr/include -Dtyp=uint32_t prog.c
        +
            cppcheck --enable=all --force -I/usr/include -Dtyp=uint32_t prog.c

        No issues found.

        flawfinder

        The open source static checker flawfinder checks various problems with respect to security like buffer overflows, function arguments to known troublemaker functions and more. It doesn’t need to pre-process code, so can be run without the typ macro being defined:

        -
            $ flawfinder prog.c
        +
            $ flawfinder prog.c
             Flawfinder version 1.31, (C) 2001-2014 David A. Wheeler.
             Number of rules (primarily dangerous function names) in C/C++ ruleset: 169
             Examining prog.c
        @@ -572,7 +573,7 @@ demonstrator you can
         use for checking your C programs and I highly recommend trying it. For a start,
         paste the well know first program in the form and press “Analyze Code”. Note
         the FlexeLint configuration options in comments (no space between /* and lint).

        -
            /*lint -w4            turn on everything */
        +
            /*lint -w4            turn on everything */
             /*lint +esym(534,*)   no demonstrator defaults */
             /*lint -e966          indirectly included header file not used */
             /*lint -esym(9058,_*) tag not used outside typedef */
        @@ -675,7 +676,7 @@ use of character values.” This forbids using character constants in
         expressions other than assignments to char objects. A consequence is
         that printing digits with '0' + digit is not allowed (even though
         '0' is technically an int!) so I am forced to output hex digits with

        -
            printf("%c", (met)tyr + 32 + 16 + ((8 + EOF) * ((met)tyr / (8 + 2))));
        +
            printf("%c", (met)tyr + 32 + 16 + ((8 + EOF) * ((met)tyr / (8 + 2))));

        because of the “no magic numbers other than powers of two” rule. How is this an improvement over printf("%c", '0' + tyr + 7 * (tyr / 10), MISRA?

        MISRA 6.3: “typedefs that indicate size and signedness should be used in @@ -691,7 +692,7 @@ redundant casting ensues. It gets worse with the next rule…

        precedence rules in expressions.” This requires parentheses for almost all expressions involving more than one operator, especially those for which a cast is required, leading to hard to understand expressions such as

        -
            const ser glx = (ser)((asx > (ser)64u) ? (ser)((ser)asx + (ser)8u + (ser)1u) : (ser)asx);
        +
            const ser glx = (ser)((asx > (ser)64u) ? (ser)((ser)asx + (ser)8u + (ser)1u) : (ser)asx);
             not.not[leu] = (and)((and)not.not[leu] | (and)(((and)glx % (and)16u) << (and)lys));

        MISRA 14.7: “A function shall have a single point of exit at the end of the function.” Sigh. Since I must use eloquent prototypes (8.1, 16.3, @@ -703,11 +704,11 @@ too high for a sane function.

        MISRA 16.10: “If a function returns error information, then that error information shall be tested.” A cast to void would draw a lint warning, so I use the printf(3) result in expressions,

        -
            lys -= 4 * printf("%c", (met)tyr + 32 + 16 + ((8 + EOF) * ((met)tyr / (8 + 2))));
        +
            lys -= 4 * printf("%c", (met)tyr + 32 + 16 + ((8 + EOF) * ((met)tyr / (8 + 2))));
             val += printf("\n") / ((__LINE__ * L_tmpnam) + TMP_MAX);
             val -= (printf(" %d\n", val) > BUFSIZ) ? FILENAME_MAX : EOF;

        which are, in the absence of errors, equivalent to

        -
            lys -= 4;
        +
            lys -= 4;
             /*nop*/
             ++val;

        MISRA 13.1: “Assignment operators shall not be used in expressions that @@ -716,7 +717,7 @@ yield a Boolean value.” Forbids the idiomatic if ((p = malloc(n)) == NUL declared as pointer to const if the pointer is not used to modify the addressed object.” in conjunction with lint’s “Note 952: Parameter could be declared const” causes const-poisoning for all functions,

        -
            static void phe(const ala not);
        +
            static void phe(const ala not);
             static void gly(ala *const not, const and his);
             met main(met val, const pro *const his[]);

        and quite a number of automatic variables.

        @@ -726,9 +727,9 @@ up :-) (humor really helps!)”

        If you have a 128 bit type

        If your compiler supports a 128 bit wide type (e.g. clang, gcc) then you can use it via the typ macro:

        -
            clang -Dtyp=__uint128_t -o prog prog.c
        +
            clang -Dtyp=__uint128_t -o prog prog.c

        Indeed, the program can use (and lints clean for) all of

        -
            clang -Dtyp=uint8_t  -o prog8  prog.c
        +
            clang -Dtyp=uint8_t  -o prog8  prog.c
             clang -Dtyp=uint16_t -o prog16 prog.c
             clang -Dtyp=uint32_t -o prog32 prog.c
             clang -Dtyp=uint64_t -o prog64 prog.c
        @@ -785,10 +786,10 @@ memory resources with the ulimit(1) built-in of your shell.

      • Makefile - entry Makefile
      • prog.orig.c - original source
      • try.sh - how to run
      • -
      • 2015_schweikhardt.tar.bz2 - download entry tarball

      Secondary files

        +
      • 2015_schweikhardt.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/2015/yang/.entry.json b/2015/yang/.entry.json index af75b8d0e..353d52071 100644 --- a/2015/yang/.entry.json +++ b/2015/yang/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "2015_yang.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2015/yang/index.html b/2015/yang/index.html index 68b84b4ba..6f0f65491 100644 --- a/2015/yang/index.html +++ b/2015/yang/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: US - United States of America

        To build:

        -
            make
        +
            make

        To use:

        -
            echo Some text | ./prog
        +
            echo Some text | ./prog

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Judges’ remarks:

        Before analysing the code in detail we were able to guess two out of four tests this entry uses to tell the 5 languages/flavors apart. Can you find all four?

        @@ -157,25 +158,25 @@ so you need not worry about this.

        Author’s remarks:

        Fuuko is a sea star generator. Feed her some input through stdin to get lots of sea star patterns on stdout.

        -
            cc -O3 -std=c90 fuuko.c -lm -o fuuko_c90
        +
            cc -O3 -std=c90 fuuko.c -lm -o fuuko_c90
             echo IOCCC | ./fuuko_c90 > output_c90.c

        If you compile with a C99 compiler instead of C90, the sea stars will have eyes.

        -
            cc -O3 -std=c99 fuuko.c -lm -o fuuko_c99
        +
            cc -O3 -std=c99 fuuko.c -lm -o fuuko_c99
             echo IOCCC | ./fuuko_c99 > output_c99.c

        Don’t like sea stars? Use a C++98 compiler to get a dango instead.

        -
            g++ -O3 -std=c++98 fuuko.c -lm -o fuuko_cpp98
        +
            g++ -O3 -std=c++98 fuuko.c -lm -o fuuko_cpp98
             echo IOCCC | ./fuuko_cpp98 > output_cpp98.c

        Don’t like dango either? Use a C++11 compiler to get just circles (or Swiss cheese, if you prefer that).

        -
            g++ -O3 -std=c++11 fuuko.c -lm -o fuuko_cpp11
        +
            g++ -O3 -std=c++11 fuuko.c -lm -o fuuko_cpp11
             echo IOCCC | ./fuuko_cpp11 > output_cpp11.c

        Don’t like any of these patterns? Use a C11 compiler and there will be no extra pattern.

        -
            cc -O3 -std=c11 fuuko.c -lm -o fuuko_c11
        +
            cc -O3 -std=c11 fuuko.c -lm -o fuuko_c11
             echo IOCCC | ./fuuko_c11 > output_c11.c

        Regardless of which of these C/C++ dialects you choose, the output will all be valid C90 code that reproduces original input on stdout, @@ -245,10 +246,10 @@ Fuuko, for her love of sea stars.

      • prog.orig.c - original source
      • try.sh - how to run
      • spoiler.html - SPOILER WARNING
      • -
      • 2015_yang.tar.bz2 - download entry tarball

      Secondary files

        +
      • 2015_yang.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/2018/algmyr/.entry.json b/2018/algmyr/.entry.json index cb37c2d7f..7bff11a27 100644 --- a/2018/algmyr/.entry.json +++ b/2018/algmyr/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "2018_algmyr.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2018/algmyr/index.html b/2018/algmyr/index.html index 808d429cd..db7a6cb61 100644 --- a/2018/algmyr/index.html +++ b/2018/algmyr/index.html @@ -88,6 +88,7 @@ @@ -141,7 +142,7 @@ Location: SE - Kingdom of Sweden (

        To build:

        -
            make
        +
            make

        To use this entry requires, in some invocations, a sound processing program. This can be ALSA or SoX but we recommend the latter. See FAQ 3.10 - How do I compile and use an IOCCC entry that requires sound?.

        @@ -150,11 +151,11 @@ compile and use an IOCCC entry that requires sound?.

            STATUS: INABIAF - please **DO NOT** fix

        For more detailed information see 2018 algmyr bugs.

        To use:

        -
            ./prog < prog.c                     # Print garbage: might mess up your terminal
        +
            ./prog < prog.c                     # Print garbage: might mess up your terminal
             ./prog <file1> <file2> > out.raw
             ./prog -d 2 0 out.raw               # Decode the first (0th) channel out of two

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Judges’ remarks:

        Be warned, this is not your garden variety text-to-speech program! Earplugs are advised, or at least a handy and well-tested volume knob.

        @@ -242,14 +243,14 @@ additional logic? Answer: ungetc(3) into stdin, one

        Compilation warnings

        Compiling using

        -
            gcc -Wall -Wextra -pedantic
        +
            gcc -Wall -Wextra -pedantic

        gives only -Wmisleading-indentation which is sensible considering the source code. While

        -
            clang -Wall -Wextra -pedantic
        +
            clang -Wall -Wextra -pedantic

        is a bit more pessimistic and gives -Wempty-body (I like loops without bodies), -Wstring-plus-int (since apparently some people think string+int is a concatenation) and one of the weirder warnings I have seen from me splitting a negative constant with whitespace. Compiling using

        -
            clang -Wall -Wextra -pedantic -Weverything
        +
            clang -Wall -Wextra -pedantic -Weverything

        produces a few page faults of warnings and makes me feel generally bad about myself. :(

        Misc

        @@ -283,10 +284,10 @@ myself. :(

      • prog.orig.c - original source
      • try.sh - how to run
      • spoiler.png - SPOILER WARNING
      • -
      • 2018_algmyr.tar.bz2 - download entry tarball

      Secondary files

        +
      • 2018_algmyr.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/2018/anderson/.entry.json b/2018/anderson/.entry.json index 007b7fef1..22ac321a2 100644 --- a/2018/anderson/.entry.json +++ b/2018/anderson/.entry.json @@ -59,7 +59,7 @@ }, { "file_path" : "2018_anderson.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2018/anderson/index.html b/2018/anderson/index.html index bd859d35f..8b36b130f 100644 --- a/2018/anderson/index.html +++ b/2018/anderson/index.html @@ -88,6 +88,7 @@ @@ -141,29 +142,29 @@ Location: US - United States of America

        To build:

        -
            make
        +
            make

        There is an alternate version of this entry. See Alternate code below for more details.

        To use:

        -
            ./prog < textfile
        +
            ./prog < textfile

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Alternate code:

        Compare prog.c and prog.alt.c and find out why we had to modify the entry, and what confused the author (see the author’s remarks). No, it was not the shape of the Roman V that we, or the compiler, didn’t like.

        Alternate build:

        -
            make alt
        +
            make alt

        Alternate use:

        Use prog.alt as you would prog above.

        Alternate try:

        -
            ./try.alt.sh
        +
            ./try.alt.sh

        Judges’ remarks:

        With this entry, you won’t need to turn your monitor upside down!

        Author’s remarks:

        Compiling the program:

        -
            cc -Wall -Wextra -Wpedantic -O3 -std=c11 prog.c -o prog
        +
            cc -Wall -Wextra -Wpedantic -O3 -std=c11 prog.c -o prog

        Also works with a standard of C99, but C90/C89 will not compile due to for loop initial declarations, along with additional warnings about variable length arrays and lack of a return statement.

        @@ -222,10 +223,10 @@ secondarily to obfuscate.

      • prog.orig.c - original source
      • try.alt.sh - how to run alternate code
      • try.sh - how to run
      • -
      • 2018_anderson.tar.bz2 - download entry tarball

      Secondary files

        +
      • 2018_anderson.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/2018/bellard/.entry.json b/2018/bellard/.entry.json index 2e4ab56cf..a1daeb1e1 100644 --- a/2018/bellard/.entry.json +++ b/2018/bellard/.entry.json @@ -59,7 +59,7 @@ }, { "file_path" : "2018_bellard.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2018/bellard/index.html b/2018/bellard/index.html index a7a5827cb..728eb3cc4 100644 --- a/2018/bellard/index.html +++ b/2018/bellard/index.html @@ -88,6 +88,7 @@ @@ -141,16 +142,16 @@ Location: FR - French Republic (

        To build:

        -
            make
        +
            make

        There is an alternate version that should work with Windows. See Alternate code below.

        To use:

        -
            ./prog > lena.ppm
        +
            ./prog > lena.ppm

        Try:

        First open Lenna.png in your graphics viewer of choice. Next, after running the above command (./prog > lena.ppm), open lena.ppm in your graphics viewer of choice. After that try:

        -
            ./try.sh
        +
            ./try.sh

        NOTE: the script uses the tools pngtopam(1) (or pngtopnm(1) for older versions) and pnmscale come from the netpbm project and cjpeg(1) comes from libjpeg-turbo. If you don’t have these tools already see FAQ 3.15 - How do I @@ -163,7 +164,7 @@ it?.

        The prog.alt.c is based on the author’s remarks and it should work for Windows.

        Alternate build:

        -
            make alt
        +
            make alt

        Alternate use:

        Use prog.alt as you would prog.

        Judges’ remarks:

        @@ -200,7 +201,7 @@ as the algorithms already have a significant complexity.

        Although the program was optimized to decompress its built-in image, it accepts to decompress image files from its standard input. Examples:

        -
            ./prog d < lena512.bin > lena512.ppm
        +
            ./prog d < lena512.bin > lena512.ppm
             ./prog d < fruits.bin > fruits.ppm
             ./prog d < vintage_cars.bin > vintage_cars.ppm

        The original images for fruits and vintage cars come from @@ -238,10 +239,10 @@ the output.

      • prog.orig.c - original source
      • Lenna.png - sample image data
      • try.sh - how to run
      • -
      • 2018_bellard.tar.bz2 - download entry tarball

      Secondary files

        +
      • 2018_bellard.tar.bz2 - download entry tarball
      • index.html - this web page
      • README.md - markdown source for this web page
      • .entry.json - description of entry in JSON
      • diff --git a/2018/burton1/.entry.json b/2018/burton1/.entry.json index 3470c2f58..7b4cbff66 100644 --- a/2018/burton1/.entry.json +++ b/2018/burton1/.entry.json @@ -59,7 +59,7 @@ }, { "file_path" : "2018_burton1.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2018/burton1/index.html b/2018/burton1/index.html index 44f1c72fb..eea1891e9 100644 --- a/2018/burton1/index.html +++ b/2018/burton1/index.html @@ -88,6 +88,7 @@ @@ -141,20 +142,20 @@ Location: US - United States of America

        To build:

        -
            make
        +
            make

        There is an alternate version of this entry. See Alternate code below.

        To use:

        -
            ./prog < any-file
        +
            ./prog < any-file

        Try:

        -
            ./try.sh
        +
            ./try.sh

        Alternate code:

        An alternate version of this entry, prog.alt.c, is provided This alternate code was supposed to compile without warnings, however with modern compilers this is no longer the case so it will only cleanly compile with -Wno- options.

        Alternate build:

        -
            make alt
        +
            make alt

        Alternate use:

        Use prog.alt as you would prog.

        Judges’ remarks:

        @@ -187,14 +188,14 @@ and without bypassing the solution using execve(2), or functions bu (system(3), popen(3), etc).

      E.g:

      -
          main(){system("hd");}       // it's turtles all the way down!
      +
          main(){system("hd");}       // it's turtles all the way down!

      is not acceptable.

      And, “output correctly” is the output format of this entry. QED.

      Early attempts ended up at a reasonably short 157 characters. This was too long for a one-liner, so it had to be formatted as something more interesting. This solution is pleasing, but a true one-liner was the hoped-for goal. Here is the 157 character version in it’s entirety:

      -
          char     O,o[  20];L(O){
      +
          char     O,o[  20];L(O){
           putchar  ( O+  48+39  *(9<
           O));}    I(O)  {L(~     15);
           O|| puts(o);}  main     (l){
      @@ -209,7 +210,7 @@ This dramatic reduction started to feel close to minimal, and the hunt resumed.
       The progression to the present size is interesting,
       and it is interesting that the same algorithm can be expressed so differently
       by slight rearrangement of its parts.

      -
          // 119
      +
          // 119
           char O,o[20];main(l){for(;~(l=getchar());O||puts(o))o[O++]=isprint(l)?l:46,O&=15,printf("%02x ",l);O[o]=0;O&&puts(o);}
           // 116
           char O,o[20];main(l){for(;O++[o]=~(l=getchar())?4<(4^l>>5)?l:46:0;(O&=15)||puts(o))printf("%02x ",l);O>1&&puts(o);}
      @@ -229,7 +230,7 @@ by slight rearrangement of its parts.

      These do not compete in the same category, since their output is materially different. They are derived from the solutions above, but are still fascinating as concise utilities, so here is their progression, for the curious:

      -
          // 102
      +
          // 102
           I;O(O){putchar(O+48+39*(9<O));}main(l){for(;~(l=getchar());O(++I&15?~15:~37))O(l>>4),O(l&15);O(-38);}
           // 80
           O;main(l){while(~(l=getchar()))printf("%02x%c",l,++O&15?32:10);O&15&&puts("");}
      @@ -242,7 +243,7 @@ so here is their progression, for the curious:

      It is possible to reduce the size of each of these by one by eliding the trailing newline. This was not reported above since the newline kept getting appended by processing software, and it is more interesting to remove characters by changing code than by filtering:

      -
          $ tr -d '\012' < 109.c | wc -c
      +
          $ tr -d '\012' < 109.c | wc -c
           108
           $ tr -d '\012' < 76.c | wc -c
           75
      @@ -321,9 +322,9 @@ perhaps – the smallest, clean-compiling version using clang or not work with the original Ritchie PDP-11 C compiler, since
       the expression within the ternary remains too complex.

      Try:

      -
          cat prog.c prog.alt.c
      +
          cat prog.c prog.alt.c

      or

      -
          cmp -b prog.c prog.alt.c
      +
          cmp -b prog.c prog.alt.c

      to compare the differences (diff is not helpful on a one-liner).

      To build:

      -
          make
      +
          make

      To use:

      -
          ./prog [-tcksri] < file.c
      +
          ./prog [-tcksri] < file.c

      Try:

      -
          ./try.sh
      +
          ./try.sh

      If you get really stuck, try:

      -
          man ./tac.1
      +
          man ./tac.1

      Judges’ remarks:

      They say size isn’t everything, and in the case of IOCCC iocccsize.c that is saying something! @@ -228,16 +229,16 @@ quote consumes everything until the next quote

    • Comments between preprocessor hash and keyword are not replaced with whitespace; the following counts #include as two tokens, # and include (not as a reserved word):
    -
        #/*this will not be counted*/include/*correctly*/<stdio.h>
    +
        #/*this will not be counted*/include/*correctly*/<stdio.h>

    Fixing this properly hampers backwards compatibility in counting. This requires eliding comments during the translation phases (ISO 5.1.1.2, phase 3), and yet still counting words correctly absent -k.

    Backwards Compatibility:

    tac was run over all 366 previous IOCCC winning entries:

    -
        find ~/src/obc -type f -name \*.c | wc
    +
        find ~/src/obc -type f -name \*.c | wc

    The discrepancies found are documented and explained in the file discrepancies.html.

    -
        find ~/src/obc -type f -a -name "*.c" | xargs ./spotcheck.sh ./prog | ./spotdiff.sh |
    +
        find ~/src/obc -type f -a -name "*.c" | xargs ./spotcheck.sh ./prog | ./spotdiff.sh |
                 grep -v keep | diff -bw - discrep* | grep "[<>] cl "

    In summary, there are only 6 unique entries out of 366 that have any variation in Rule 2 counts; in all cases, the differences are due to bugs within @@ -273,10 +274,10 @@ This feature enables interesting analyses of C (and C++) code that’s hard to g

    For instance, here is a simple token counter, useful in finding repeated long tokens, or operator frequency, or counting the references to identifiers, constants, or breadth of use of the language:

    -
        #!/usr/bin/env bash
    +
        #!/usr/bin/env bash
         cat $* | ./prog -t | sort | uniq -c | sort -k1nr

    And here is a C keyword frequency counter:

    -
        #!/usr/bin/env bash
    +
        #!/usr/bin/env bash
         function iskeyword {
            awk 'BEGIN{f="c11";while(getline<f)k[$1]=0} {if($1 in k)k[$1]++}END{for(i in k)print k[i],i}'
         }
    @@ -299,7 +300,7 @@ handful of simple rules (and another use of the external keyword file). A more
     refined version of this is included in the file unob.sh, but the
     simple code below is a serviceable obfuscated C de-obfuscator in a scripting
     language. It really is this easy with tac:

    -
        #!/usr/bin/env bash
    +
        #!/usr/bin/env bash
         script='
         BEGIN {
                 last=nl="\n";
    @@ -401,7 +402,7 @@ the IOJCC trash can.

    which is neither complete (#define, #ifndef, #undef are missing – yes, Virginia knows about #define omitted on purpose), nor correct (many more are added: I, true, bool, compl, …):

    -
        (sed -n '1p' c11; sed -n '2,$p' ioccc.kw.freq | sort) | comm -3 - c11
    +
        (sed -n '1p' c11; sed -n '2,$p' ioccc.kw.freq | sort) | comm -3 - c11

    That is an obfuscated way to say “diff”. But it also more clearly shows the, um, diffs.

    The usage string is similarly externalized, providing a better usability string than the limits would otherwise allow. If this is considered bending the rules too far, @@ -429,7 +430,7 @@ for obfuscation. Thus -trigraphs -Wno-trigraphs (which is also humo

    The code uses unsigned chars, but C strings are signed. Thus -Wno-pointer-sign. NB: This is not a portability concern, the one string holds only printable ASCII characters.

    Thus:

    -
        cc -ansi -Wall -trigraphs -Wno-trigraphs -Wno-parentheses -Wno-empty-body -Wno-char-subscripts -Wno-pointer-sign -DU=O -DW=\"keywords\" -o prog prog.c
    +
        cc -ansi -Wall -trigraphs -Wno-trigraphs -Wno-parentheses -Wno-empty-body -Wno-char-subscripts -Wno-pointer-sign -DU=O -DW=\"keywords\" -o prog prog.c

    Coda:

    Cody Boone Ferguson was relentless in his pursuit of bugs. Thanks to his reports, the version of unob.sh is stronger, @@ -442,7 +443,7 @@ works well on most inputs, but tends to need some raw nroff for more fancy constructions, such as combined arguments (e.g. the -r and -s arguments to tac are not recognised when written as -rs in prose).

    Try:

    -
        ./manpage.sh tac
    +
        ./manpage.sh tac
     
         ./manpage.sh -h
         ./manpage.sh -h | ./manpage.sh
    @@ -527,10 +528,10 @@ are not recognised when written as -rs in prose).

  • v7unix - reserved words for a given C standard
  • spotdiff.sh - summarize the results of spotcheck
  • src.doc.txt - SPOILER WARNING hints about the source
  • -
  • 2018_burton2.tar.bz2 - download entry tarball
  • Secondary files

      +
    • 2018_burton2.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • discrepancies.md - markdown source for discrepancies.html
    • diff --git a/2018/ciura/.entry.json b/2018/ciura/.entry.json index 43d2a848c..f61e0e76f 100644 --- a/2018/ciura/.entry.json +++ b/2018/ciura/.entry.json @@ -67,7 +67,7 @@ }, { "file_path" : "2018_ciura.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2018/ciura/index.html b/2018/ciura/index.html index c606379da..a9d2f6c21 100644 --- a/2018/ciura/index.html +++ b/2018/ciura/index.html @@ -88,6 +88,7 @@ @@ -141,24 +142,24 @@ Location: PL - Republic of Poland

      To build:

      -
          make
      +
          make

      There is an alternate version that lacks a useful bug fix. See Alternate code and the author’s remarks (remarks section) below for more details.

      To use:

      -
          ./prog < text
      +
          ./prog < text

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Alternate code:

      An alternate version of this entry, prog.alt.c, is provided. As mentioned in the author’s remarks, the alternate version lacks a useful bug fix.

      Alternate build:

      -
          make alt
      +
          make alt

      Alternate use:

      Use prog.alt as you would prog above.

      Alternate try:

      -
          ./try.alt.sh
      +
          ./try.alt.sh

      Do you spot the fix by running both try.sh and try.alt.sh?

      Judges’ remarks:

      @@ -386,10 +387,10 @@ to CSILENCE.

    • lexicon.pdf - How to squeeze a lexicon paper
    • try.alt.sh - how to run alternate code
    • try.sh - how to run
    • -
    • 2018_ciura.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2018_ciura.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2018/endoh1/.entry.json b/2018/endoh1/.entry.json index 32c94a157..1e54ac873 100644 --- a/2018/endoh1/.entry.json +++ b/2018/endoh1/.entry.json @@ -67,7 +67,7 @@ }, { "file_path" : "2018_endoh1.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2018/endoh1/index.html b/2018/endoh1/index.html index a78249aeb..788bb3b0b 100644 --- a/2018/endoh1/index.html +++ b/2018/endoh1/index.html @@ -88,6 +88,7 @@ @@ -141,12 +142,12 @@ Location: JP - Japan

      To build:

      -
          make
      +
          make

      To use:

      -
          ./prog < textfile > output.gif
      +
          ./prog < textfile > output.gif

      Try:

      To see the input files and feed them to the program, redirecting to GIF files:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      To get the best experience, use a GIF viewer that can handle animated GIFs. With macOS you can use Safari using open -a Safari smily.gif.

      @@ -158,16 +159,16 @@ how does it know which characters are closed?

      least 2MiB of memory to run in.

      Author’s remarks:

      This program generates an animated GIF from a plain text. Run:

      -
          cc -o prog prog.c
      +
          cc -o prog prog.c
           ./prog < invisible.txt > invisible.gif

      Open invisible.gif with a GIF viewer that can show animated GIFs and then wait a minute. You will see a hidden message. Can you tell the difference between letters that leave the mark and ones that do not?

      Other examples:

      -
          ./prog < golem.txt > golem.gif
      +
          ./prog < golem.txt > golem.gif
           ./prog < smily.txt > smily.gif

      The program itself has a hidden message.

      -
          ./prog < prog.c > prog.gif
      +
          ./prog < prog.c > prog.gif

      To build:

      -
          make
      +
          make

      To use:

      -
          ./prog
      +
          ./prog

      Try:

      -
          ./try.sh
      +
          ./try.sh

      NOTE: to interrupt the loops send intr (typically ctrl-C).

      Judges’ remarks:

      And now for something completely different: A program whose metabolic @@ -223,10 +224,10 @@ is also used in the opening.

    • try.sh - how to run
    • python3.sh - python3 rule script
    • python.sh - python rule script
    • -
    • 2018_endoh2.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2018_endoh2.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2018/ferguson/.entry.json b/2018/ferguson/.entry.json index bc205ec9b..116c56e19 100644 --- a/2018/ferguson/.entry.json +++ b/2018/ferguson/.entry.json @@ -131,7 +131,7 @@ }, { "file_path" : "2018_ferguson.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2018/ferguson/index.html b/2018/ferguson/index.html index 1cac8973f..15209561b 100644 --- a/2018/ferguson/index.html +++ b/2018/ferguson/index.html @@ -88,6 +88,7 @@ @@ -141,13 +142,13 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      The author provided an alternate version which has a simpler keyboard for the monkey Eric. See Alternate code below.

      To use:

      -
          ./weasel
      +
          ./weasel

      Try:

      -
          ./try.sh
      +
          ./try.sh
       
           # For those who believe in '"intelligent" design' or want to see how easy it is
           # to prove evolution is a proven fact:
      @@ -167,11 +168,11 @@ make use of some of these.

      about this under the keyboards section, briefly referred to in the what it is section.

      Alternate build:

      -
          make alt
      +
          make alt

      Alternate use:

      Use weasel.alt as you would weasel above.

      Alternate try:

      -
          ./try.alt.sh
      +
          ./try.alt.sh
       
           # For those who believe in '"intelligent" design' or want to see how easy it is
           # to prove evolution is a proven fact:
      @@ -186,7 +187,7 @@ first one, id.alt.sh is terminated early in the try scri
       

      You can reconfigure certain values. These are described by the author in more detail in the S, M and N Constants section. The script above will make use of some of these.

      -
          ./try.alt.sh
      +
          ./try.alt.sh

      You can reconfigure certain values. These are described by the author in more detail in the S, M and N Constants section. The script above will make use of some of these.

      @@ -203,7 +204,7 @@ from the phylogenetic tree of life.

      If you wish your computer to maintain one branch in the Cretaceous C code era, while using more Cenozoic minded code migration, read rpm.html.

      If you find yourself in an evolutionary dead end, try:

      -
          man ./weasel.1
      +
          man ./weasel.1

      Author’s remarks:

      1. Preface
      2. @@ -228,7 +229,7 @@ didn’t want to reveal as much publicly and many people don’t like to read lo texts. To resolve this I think the best way is referencing the judges’ remarks: if you want a quick rundown of the entry try what they suggest and view the man page (it explains all the options and describes the program briefly):

        -
            man ./weasel.man
        +
            man ./weasel.man

        If that isn’t sufficient I would recommend reading this section (and possibly the next) where I attempt to give a brief explanation of the sections to make reading it easier and faster. In addition I want to point out a few @@ -461,14 +462,14 @@ it must be a single parameter which means you’ll need to quote the string if i has more than one word (that is it contains spaces) or anything else interpreted specially by your shell e.g. parentheses. For instance if you just want to find METHINKS you could do one of:

        -
            ./weasel METHINKS
        +
            ./weasel METHINKS
             ./weasel "METHINKS"
             ./weasel 'METHINKS'

        If you wanted YOU ARE A MONKEY:

        -
            ./weasel "YOU ARE A MONKEY"
        +
            ./weasel "YOU ARE A MONKEY"
             ./weasel 'YOU ARE A MONKEY'

        If you do one of:

        -
            ./weasel "METHINKS IT IS A" "MONKEY"
        +
            ./weasel "METHINKS IT IS A" "MONKEY"
             ./weasel METHINKS IT IS A MONKEY

        It will search for MONKEY in both cases; in other words it’s the last one. If the string is too long given the value of S (see
        @@ -476,11 +477,11 @@ If the string is too long given the value of S (see

        If you actually do want to search for a string starting with a - you must disable further parsing of options by using the - option itself; for example if you were to do any of:

        -
            ./weasel -q- -- -test
        +
            ./weasel -q- -- -test
             ./weasel -q- -test
             ./weasel -q -- -test

        The target string will be: -TEST. This means though that here:

        -
            ./weasel -q -- -test -r5
        +
            ./weasel -q -- -test -r5

        The string to be searched would actually be -r5 and the mutation rate will remain the default because after the - option is seen it will no longer parse additional options: only target strings if anything left on the @@ -490,7 +491,7 @@ are equivalent:

            -q-\
             -q --

        As for the caveat I referenced what does the following do?

        -
            ./weasel -qr 5
        +
            ./weasel -qr 5

        In fact it will set quiet output and set the target string to be ‘5’. So the mutation rate will be out of range, thus enabling that Easter egg, but it will likely come to an answer fairly quickly because it’s just a single character. A @@ -498,7 +499,7 @@ note on the parsing of the - option; if the program is currently pa argv[N], for example, and it encounters a -- then depending on where the other options are in the command line it might still parse the options. Thus you have:

        -
            $ ./weasel -qr-r5
        +
            $ ./weasel -qr-r5
             quiet output
             mutation rate out of range
             target 'METHINKS IT IS LIKE A WEASEL'
        @@ -506,9 +507,9 @@ you have:

        Generation 440 Offspring 20: METHINKS IT IS LIKE A WEASEL

        Similarly this would set quiet output, then an invalid mutation rate and then a mutation rate of 5:

        -
            ./weasel --qrr5
        +
            ./weasel --qrr5

        If you were instead to do one of (for example):

        -
            ./weasel -q -- -r
        +
            ./weasel -q -- -r
             ./weasel -q -q- -r

        Then it would set quiet output then see the -- (the - option itself) and then the target string would literally be set to -r because @@ -536,7 +537,7 @@ monkey mode be disabled? If yes how do we know if monkey mode was specially requested? There are at least two ways to go about it: I took the monkey safe (‘fool safe’) method; *if you explicitly request monkey mode you cannot disable it in the same invocation of weasel!

        -
            $ ./weasel -qr101r5r101r1r test
        +
            $ ./weasel -qr101r5r101r1r test
             quiet output
             mutation rate out of range
             mutation rate out of range
        @@ -575,7 +576,7 @@ matter because of truncation but I do in any case specifically check for Given that it was a short string it did find the answer relatively quickly, even
         in monkey mode.

        Another example:

        -
            $ ./weasel -q -r101 test -r5
        +
            $ ./weasel -q -r101 test -r5
             quiet output
             mutation rate out of range
             target 'test'
        @@ -586,7 +587,7 @@ in monkey mode.

        the target string and then set a valid mutation rate. This disabled monkey mode which means that it’ll use the genetic algorithm.

        One more example of monkey mode:

        -
            $ ./weasel -q -mr101 test -r5
        +
            $ ./weasel -q -mr101 test -r5
             quiet output
             mutation rate out of range
             target 'test'
        @@ -676,9 +677,9 @@ file and pass each string to the program itself. I’ve included a script
         test.sh and a file of sample input test-strings.txt that you can play
         with.

        Try:

        -
            make test
        +
            make test

        This will essentially make sure the program is compiled and then do:

        -
            chmod +x test.sh
        +
            chmod +x test.sh
             ./test.sh

        The script will first try compiling the program (if necessary) and if it fails for any reason it will exit; else it will read each line in the file @@ -689,7 +690,7 @@ string it’ll sleep approximately 2 seconds and then read the next string processed).

        You can pass additional options directly to the script but remember that it stops when there are no more strings in the file - so if you try:

        -
            ./test.sh -q test
        +
            ./test.sh -q test

        The final string test won’t be searched for; it will however run the program in all invocations with quiet output enabled. The following are some notes about how the shell and the program interact with each other:

        @@ -713,7 +714,7 @@ and the fact the program does not accept spaces other than a literal space
        program prints an error message and then exits (returning 1). But since the keyboard doesn’t have '\n' if you were to type a ' and send a '\n' before the closing ' you might see something like:

        -
            $ ./weasel '!!
        +
            $ ./weasel '!!
             > '
         
             '
        @@ -737,7 +738,7 @@ rather confusing and hard to read.

        as well as some C keywords.

      3. The way main() is declared is:

      -
          /* Special C main() handler (encapsulation): */
      +
          /* Special C main() handler (encapsulation): */
           #define r(main) main
           r(k main(k a, E **V)) {

      It appears to be recursively defined but is it? And is it truly @@ -813,7 +814,7 @@ won’t spoil; yes this ironically and amusingly means I’ve left a rotten egg somewhere!).

      The Makefile simplifies how to reconfigure this value with the variable MAX_SIZE:

      -
          make clobber MAX_SIZE=55 all
      +
          make clobber MAX_SIZE=55 all

      The next macro that can be reconfigured, M (or MAX_ATTEMPTS in the Makefile), is the maximum attempts before giving up. This was added as another feature in 2024 but it was not made an alt version because there already is an @@ -821,7 +822,7 @@ alt version. This macro allows for seeing what happens when reaching the maximum number attempts without waiting for a very long time.

      The Makefile simplifies how to reconfigure this value with the variable MAX_ATTEMPTS:

      -
          make clobber MAX_ATTEMPTS=100 all
      +
          make clobber MAX_ATTEMPTS=100 all

      The final macro, N (or OFFSPRING in the Makefile), is the number of offspring per generation.

      Anything less than 4 will be set to 3 (that’s not a typo!) and this is part of @@ -831,23 +832,23 @@ both individually and together the program will use varying amounts of memory and the larger the values the more memory it’ll require.

      The Makefile simplifies how to reconfigure this value with the variable OFFSPRING:

      -
          make clobber OFFSPRING=55 all
      +
          make clobber OFFSPRING=55 all

      Compilation

      Skip to Portability.

      The following options must always be passed to the compiler:

      -
          -DQ='typedef' -D'g(o)'='goto o;' -D'w(x)'="x:" -D'H(main)'='r(main)'
      +
          -DQ='typedef' -D'g(o)'='goto o;' -D'w(x)'="x:" -D'H(main)'='r(main)'

      which running make will always do.

      If you want to increase the number of offspring to 50 (N) and the size of the chromosome to 75 (S) you would do:

      -
          make clobber OFFSPRING=50 MAX_SIZE=75 everything
      +
          make clobber OFFSPRING=50 MAX_SIZE=75 everything

      If you wanted to change N to 3:

      -
          make clobber OFFSPRING=3 everything
      +
          make clobber OFFSPRING=3 everything

      Remember that it cannot be less than 3; more correctly if it’s less than 4 it’s redefined to 3 so you could have passed in -DN=2 (or MAX_SIZE=2) and have the same result. Remember too that S (MAX_SIZE) cannot be less than 38. Both S and N are capped at SIZE_MAX - 1 or whatever M (MAX_ATTEMPTS) is set to.

      If you wanted to change the maximum number attempts to 100 you could do:

      -
          make clobber MAX_ATTEMPTS=100 everything
      +
          make clobber MAX_ATTEMPTS=100 everything

      Portability

      Skip to An aside on bugs.

      This entry requires at least C99 even if you translate digraphs. The program @@ -857,7 +858,7 @@ smaller and this I believe includes SIZE_MAX). I don’t think Wind ports would have many issues (if any) either but I have no way to test this. Originally I tested it on the below systems.

      Fedora 26:

      -
          $ clang --version|head -n1
      +
          $ clang --version|head -n1
           clang version 4.0.1 (tags/RELEASE_401/final)
           $ gcc --version|head -n1
           gcc (GCC) 7.3.1 20180130 (Red Hat 7.3.1-2)
      @@ -866,7 +867,7 @@ Originally I tested it on the below systems.

      $ lscpu |grep Endian Byte Order: Little Endian

      CentOS Linux release 7.4.1708 (Core)

      -
          $ clang --version|head -n1
      +
          $ clang --version|head -n1
           clang version 3.4.2 (tags/RELEASE_34/dot2-final)
           $ gcc --version|head -n1
           gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16)
      @@ -875,7 +876,7 @@ Originally I tested it on the below systems.

      $ lscpu |grep Endian Byte Order: Little Endian

      Fedora 27:

      -
          $ clang --version|head -n1
      +
          $ clang --version|head -n1
           clang version 5.0.1 (tags/RELEASE_501/final)
           $ gcc --version|head -n1
           gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
      @@ -886,7 +887,7 @@ Originally I tested it on the below systems.

      macOS:

      System Version: macOS 10.13.4 (17E199) Kernel Version: Darwin 17.5.0

      -
          $ gcc -v
      +
          $ gcc -v
           Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
           Apple LLVM version 9.1.0 (clang-902.0.39.1)
           Target: x86_64-apple-darwin17.5.0
      @@ -1012,7 +1013,7 @@ When we found others were actually trying to programs with A, we quickly added
       additional cryptic features and evolved into B, BCPL, and finally C. We stopped
       when we got a clean compile on the following syntax:

      -
          for(;P("\n"),R=;P("|"))for(e=C;e=P("_"+(*u++/
      +
          for(;P("\n"),R=;P("|"))for(e=C;e=P("_"+(*u++/
           8)%2))P("|"+(*u/4)%2);

      “To think that modern programmers would try to use a language that allowed @@ -1054,7 +1055,7 @@ person to talk about it with is more than welcome!). Ken suggested that the is a lack of common sense but since he was part of its creation I don’t think it’s a bad thing; on the contrary it makes all of us C programmers even more talented! :) I do wonder if he tested that bit of C code though:

      -
          for(;P("\n"),R=;P("|"))for(e=C;e=P("_"+(*u++/
      +
          for(;P("\n"),R=;P("|"))for(e=C;e=P("_"+(*u++/
           8)%2))P("|"+(*u/4)%2);

      How is R=; valid? Since I don’t have the context maybe there is something I’m missing but either way it’s a funny piece. It could also be for irony itself @@ -1154,10 +1155,10 @@ email but I’m more likely to respond to mastodon messages.

    • try.sh - how to run
    • weasel.1 - weasel program man page
    • weasel.spec - RPM spec file
    • -
    • 2018_ferguson.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2018_ferguson.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2018/ferguson/rpm.html b/2018/ferguson/rpm.html index 7c1b21398..3afdffef3 100644 --- a/2018/ferguson/rpm.html +++ b/2018/ferguson/rpm.html @@ -83,6 +83,7 @@ diff --git a/2018/giles/.entry.json b/2018/giles/.entry.json index c971adbc0..e7651defb 100644 --- a/2018/giles/.entry.json +++ b/2018/giles/.entry.json @@ -59,7 +59,7 @@ }, { "file_path" : "2018_giles.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2018/giles/index.html b/2018/giles/index.html index b703db858..122ac9a80 100644 --- a/2018/giles/index.html +++ b/2018/giles/index.html @@ -88,6 +88,7 @@ @@ -144,11 +145,11 @@ Location: AU - Commonwealth of Australi

      This entry requires SDL2 to be installed. See FAQ 3.8: How do I compile an IOCCC entry that requires SDL1 or SDL2? if you don’t have it installed and don’t know how to do so.

      -
          make
      +
          make

      To use:

      -
          ./prog
      +
          ./prog

      Try:

      -
          ./prog ioccc.txt
      +
          ./prog ioccc.txt
       
           ./prog prog.c
       
      @@ -212,10 +213,10 @@ so that they are short and easily confused with each other.

    • ioccc.txt - sample input
    • sand.alt.txt - sample input
    • sand.txt - sample input
    • -
    • 2018_giles.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2018_giles.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2018/hou/.entry.json b/2018/hou/.entry.json index c3fdda624..142793bc2 100644 --- a/2018/hou/.entry.json +++ b/2018/hou/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "2018_hou.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2018/hou/index.html b/2018/hou/index.html index d22f4a882..20977b623 100644 --- a/2018/hou/index.html +++ b/2018/hou/index.html @@ -88,6 +88,7 @@ @@ -141,16 +142,16 @@ Location: CN - People’s Republic of C

      To build:

      -
          make
      +
          make

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 2018 hou bugs.

      To use:

      -
          ./prog < input.json > output.html
      +
          ./prog < input.json > output.html

      View output.html in a browser.

      Try:

      -
          ./try.sh
      +
          ./try.sh

      The script will generate a JSON file called ioccc.json, showing it via tee(1) and then run the program on that. Can you find any problem with the JSON file? What happens if you try and fix it?

      @@ -202,10 +203,10 @@ page is already generated?

    • prog.orig.c - original source
    • input.json - sample JSON data
    • try.sh - how to run
    • -
    • 2018_hou.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2018_hou.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2018/index.html b/2018/index.html index c654b1f71..6be9e17ad 100644 --- a/2018/index.html +++ b/2018/index.html @@ -86,6 +86,7 @@ diff --git a/2018/mills/.entry.json b/2018/mills/.entry.json index 339b50063..c1885b55d 100644 --- a/2018/mills/.entry.json +++ b/2018/mills/.entry.json @@ -35,7 +35,7 @@ }, { "file_path" : "2018_mills.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2018/mills/index.html b/2018/mills/index.html index b0032af9c..78ce95923 100644 --- a/2018/mills/index.html +++ b/2018/mills/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      If you wish to save state so that you can run the program and keep files changed (for instance you don’t want to compile mullender.c again) you can compile it like:

      -
          make clobber SAVE=1 all
      +
          make clobber SAVE=1 all

      Make sure that if you do add a file (including by compiling code) that before you exit (ctrl-e) you type in sync! Otherwise the file might not exist or it will be corrupt if it does.

      @@ -155,20 +156,20 @@ will be corrupt if it does.

      STATUS: INABIAF - please **DO NOT** fix

    For more detailed information see 2018 mills bugs.

    To use:

    -
        ./prog
    +
        ./prog

    Try:

    -
        ./prog
    +
        ./prog

    At the >boot prompt, type return.

    At the : prompt, type rk(0,0)rkunix and wait for it to initialise itself. Now try typing:

    -
        cat > prog.c
    +
        cat > prog.c
         main(){ printf("Hello, world!\n"); }
         ^D
         cc prog.c
         a.out

    where ^D is EOF.

    Next try:

    -
        cc mullender.c
    +
        cc mullender.c
         a.out

    … and enjoy the classic 1984/mullender entry as it would have been in 1984 with a VAX-11/PDP-11! Once it reaches the end of the @@ -180,18 +181,18 @@ line, hit enter and see what happens again. When you’re tired of it hit ctrl-c 3636 bytes, which is considerably lighter than the original machine it can replace.

    This program can take you back to the start of everything, it is possible to run v0. Just type:

    -
        ./v0
    +
        ./v0

    NOTE: To quit v0, press Control-E.

    You will be greeted with a familiar prompt of “login”. The username and password are “dmr” and “dmr”. To make things more familiar you’ll need to create ‘.’ as it hasn’t been invented yet on this image!

    -
        @ ln dd dmr .
    +
        @ ln dd dmr .

    An ls will reveal that C hasn’t been invented yet! IOBCC anyone? The compiler is bc. It produces assembly, which will then need to be assembled together like ops.s bl.s hello.s bi.s (in that order) to produce a.out!

    But wait, we said this was the start of it all! This program can also run a program that replaces an even larger machine that can run BSD 2.9. To start this,

    -
        ./prog
    +
        ./prog

    At the >boot prompt, type return.

    At the “:” prompt, type rk(0,0)rkunix.

    NOTE: To quit prog, press Control-E.

    @@ -199,7 +200,7 @@ program that replaces an even larger machine that can run BSD 2.9. To start this the very first IOCCC entries 1984/mullender, as shown earlier.

    But wait, there is even more! Try:

    -
        ./v6
    +
        ./v6

    At the @ prompt, type rkunix. You might want to type stty -lcase as otherwise the output will be in all caps.

    NOTE: To quit v6, press Control-E.

    @@ -269,7 +270,7 @@ If so, consider a make clean to start from scratch.

    root prompt. Most of the commands you are familiar with work here (this was only a quarter of a century ago – how much could things have changed?). Let’s try some:

    -
        # ls
    +
        # ls
         .cshrc       .profile     boot         hkunix       mnt          tmp
         .login       2.9stamp     dev          lib          mullender.c  unix
         .msgsrc      bin          etc          lost+found   rkunix       usr
    @@ -778,10 +779,10 @@ time…

  • prog.c - entry source
  • Makefile - entry Makefile
  • prog.orig.c - original source
  • -
  • 2018_mills.tar.bz2 - download entry tarball
  • Secondary files

      +
    • 2018_mills.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • boot.dat - binary support file
    • diff --git a/2018/poikola/.entry.json b/2018/poikola/.entry.json index cfc3cd484..fa0e600ec 100644 --- a/2018/poikola/.entry.json +++ b/2018/poikola/.entry.json @@ -59,7 +59,7 @@ }, { "file_path" : "2018_poikola.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2018/poikola/index.html b/2018/poikola/index.html index 195c931ae..52a62a5d1 100644 --- a/2018/poikola/index.html +++ b/2018/poikola/index.html @@ -88,6 +88,7 @@ @@ -141,13 +142,13 @@ Location: FI - Republic of Finland

      To build:

      -
          make
      +
          make

      To use:

      -
          ./prog
      +
          ./prog

      Try:

      On a terminal that supports 24 bit color, has black background, and size at least 125x38, try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      It is said by some students of Astronomy:

          Oh, Be A Fine Gal, Kiss Me!
      @@ -157,9 +158,9 @@ You might wish, on a star, to better understand the colors being displayed.
       And those in the deep south might wish to go north for a better view.

      Author’s remarks:

      How to build:

      -
          cc -o prog -std=gnu11 -O3 prog.c
      +
          cc -o prog -std=gnu11 -O3 prog.c

      or

      -
          make
      +
          make

      Poster:

      You can generate an A3 sized poster by make docs. This command creates a pdf file poikola.pdf.

      @@ -278,10 +279,10 @@ text that says:

    • try.sh - how to run
    • poikola.tex - supplied documentation
    • prog-doc.c - minor change to entry source
    • -
    • 2018_poikola.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2018_poikola.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2018/vokes/.entry.json b/2018/vokes/.entry.json index 301d2699a..e0340d358 100644 --- a/2018/vokes/.entry.json +++ b/2018/vokes/.entry.json @@ -75,7 +75,7 @@ }, { "file_path" : "2018_vokes.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2018/vokes/index.html b/2018/vokes/index.html index b4b0c6b01..34dea11a2 100644 --- a/2018/vokes/index.html +++ b/2018/vokes/index.html @@ -88,6 +88,7 @@ @@ -141,15 +142,15 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 2018 vokes bugs.

      To use:

      -
          ./prog < file.txt
      +
          ./prog < file.txt

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      What this program does is not witchcraft and there are no spectres, but you might have a meltdown trying to work it all out (look at the source code to @@ -336,10 +337,10 @@ this program has nothing to do with a hand.

    • example-tab.txt - sample input
    • ioccc.txt - sample input
    • try.sh - how to run
    • -
    • 2018_vokes.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2018_vokes.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2018/yang/.entry.json b/2018/yang/.entry.json index 5fd9bc43a..015fb3fc2 100644 --- a/2018/yang/.entry.json +++ b/2018/yang/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "2018_yang.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2018/yang/index.html b/2018/yang/index.html index fbe57e14c..7706b2eb4 100644 --- a/2018/yang/index.html +++ b/2018/yang/index.html @@ -88,6 +88,7 @@ @@ -141,15 +142,15 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      To use:

      The author suggested that after compilation one should look at the generated files. For instance:

      -
          less generated1.c
      +
          less generated1.c
           less generated2.c
           less generated3.c

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      Code should be readable in any direction! This tool will help you rotate your code so you don’t have to stare at it sideways or even upside down. Rotating @@ -164,19 +165,19 @@ reveal messages and one more tool that can be used to reveal the final message hidden in the original source. All of these can be created using combinations of ./left, ./right and ./shift and the additionally generated programs.

      The final message can be revealed using

      -
          ./msg9 < prog.c
      +
          ./msg9 < prog.c

      But what combinations will generate ./msg3, ./msg4, ./msg5, ./msg6, ./msg7, ./msg8 and finally ./msg9?

      Author’s remarks:

      Tools’ usage:

      Nuko is a text rotator: given some text in stdin, Nuko will write the same text to stdout, but rotated 90 degrees counterclockwise.

      -
          cc prog.c -o left
      +
          cc prog.c -o left
           ./left < input.txt > rotated_counterclockwise.txt

      Due to static memory allocation, only the first 1K columns by 1K rows are rotated, the rest are silently ignored. But fear not, a separate tool with dynamic memory allocation is included:

      -
          ./left < prog.c > r1.c
      +
          ./left < prog.c > r1.c
           cc r1.c -o right
           ./right < input.txt > rotated_clockwise.txt

      For variety, this second tool rotates clockwise instead of @@ -186,12 +187,12 @@ depending on how much memory you have.

      rotate counterclockwise once more, we get another program. This program outputs a single message to stdout, which is the name of the series that Nuko came from.

      -
          ./left < prog.c | ./left > r2.c
      +
          ./left < prog.c | ./left > r2.c
           cc r2.c -o msg0
           ./msg0

      There is one final rotation, which produces a tool that removes leading whitespaces:

      -
          ./left < prog.c | ./left | ./left > r3.c
      +
          ./left < prog.c | ./left | ./left > r3.c
           cc r3.c -o shift
           ./shift < input.txt > no_leading_space.txt

      Where this might be useful, besides ruining the formatting of certain @@ -204,7 +205,7 @@ toward one of those notches (and create a new notch on the other side). This shifted code behaves slightly different from the original program. For example, here are two more messages that can be produced:

      -
          ./shift < prog.c | ./right > msg1.c && gcc msg1.c -o msg1 && ./msg1
      +
          ./shift < prog.c | ./right > msg1.c && gcc msg1.c -o msg1 && ./msg1
           ./shift < prog.c | ./left > msg2.c && gcc msg2.c -o msg2 && ./msg2

      In total, there are 9 embedded strings that can be produced via a sequence of rotates and shifts, one of which can be used to extract @@ -276,10 +277,10 @@ will look weird after rotation, for example.

    • prog.orig.c - original source
    • try.sh - how to run
    • spoiler.html - SPOILER WARNING
    • -
    • 2018_yang.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2018_yang.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2019/adamovsky/.entry.json b/2019/adamovsky/.entry.json index 93d872f3f..dfb065bf5 100644 --- a/2019/adamovsky/.entry.json +++ b/2019/adamovsky/.entry.json @@ -91,7 +91,7 @@ }, { "file_path" : "2019_adamovsky.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2019/adamovsky/index.html b/2019/adamovsky/index.html index 9283e6aa1..1dc5b3e05 100644 --- a/2019/adamovsky/index.html +++ b/2019/adamovsky/index.html @@ -88,6 +88,7 @@ @@ -141,15 +142,15 @@ Location: CZ - Czech Republic (

      To build:

      -
          make
      +
          make

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 2019 adamovsky bugs.

      To use:

      -
          ./prog file.unl
      +
          ./prog file.unl

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      Even after pre-processing and indenting, the C code of this entry it is about as understandable as the Unlambda code.

      @@ -159,7 +160,7 @@ bytes which crashed it:

          ````.0`.0`.0`c.0``sssss

      Functional programming is not a panacea against core dumps, after all.

      This can be demonstrated by:

      -
          ./prog crash.unl
      +
          ./prog crash.unl

      Author’s remarks:

      A highly structured state state machine

      Purpose:

      @@ -181,11 +182,11 @@ actually a one-liner. It certainly was for me. I like to think the by the sheer length of the dividing line and totally overlooks the rest of the program.

      Usage:

      When built directly using

      -
          make
      +
          make

      the program (prog) accepts a single parameter with the name of an Unlambda program. You can download the Colossal Cave Adventure (the advent.unl file) and run it like this:

      -
          ./prog advent.unl
      +
          ./prog advent.unl

      NOTE: the file was added to the entry so there is no need to download it.

      @@ -194,7 +195,7 @@ and run it like this:

      entries from quine contest.

      There is an alternative build path that requires the 2018 IOCCC size tool to complete. Put the tool source iocccsize_2018.c in the project directory and call

      -
          make identify
      +
          make identify

      It will build the tool and use it to build an alternative program prog2, which in turn will produce an Unlambda program identify.unl. make identify runs this program to identify itself.

      @@ -366,10 +367,10 @@ be applied.

    • progSpoiler.c - SPOILER WARNING
    • sierpinski.unl - unlambda code
    • spam.unl - unlambda code
    • -
    • 2019_adamovsky.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2019_adamovsky.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2019/burton/.entry.json b/2019/burton/.entry.json index c14669e3e..a172484f1 100644 --- a/2019/burton/.entry.json +++ b/2019/burton/.entry.json @@ -75,7 +75,7 @@ }, { "file_path" : "2019_burton.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2019/burton/index.html b/2019/burton/index.html index 7383980b2..81f892830 100644 --- a/2019/burton/index.html +++ b/2019/burton/index.html @@ -88,6 +88,7 @@ @@ -141,17 +142,17 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 2019 burton bugs.

      To use:

      -
          ./prog < file
      +
          ./prog < file
       
           ./cow file

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      A tiny, but punctually correct way of POSIX counting for text files. This one line, one word, 127 character beauty continues to expand the number of classic @@ -163,14 +164,14 @@ interesting.

      Feed it anything on stdin. The output should look familiar.

      Compiles cleanly with:

      -
          WARN="-Wno-implicit-int -Wno-missing-variable-declarations -Wno-parentheses"
      +
          WARN="-Wno-implicit-int -Wno-missing-variable-declarations -Wno-parentheses"
           cc -Wall -Wextra -Weverything -pedantic $WARN -include stdio.h -o prog prog.c

      Description:

      Included is a test script, useful for the corner cases. As in all good Unix programs, it is silent upon success; any output demonstrates an error. Instead of checking correctness, the check.sh script can simply output the results: (The Makefile contains the spoiler):

      -
          out=cat ./check.sh ./prog
      +
          out=cat ./check.sh ./prog

      Interestingly, and a spoiler here: macOS and FreeBSD implement the common utility “correctly”. CentOS and Ubuntu both share a “flawed” utility that changes output format based upon input redirection or pipeline(!). As well, the @@ -189,7 +190,7 @@ All your base belong to us, but the constants seem a bit … off?

      The script cow.sh provides a closer analog, and perhaps a more useful interface.

      Included is a version without compilation warnings:

      -
          cc -Wall -Wextra -Weverything -pedantic -include stdio.h -o prog.clean prog.clean.c
      +
          cc -Wall -Wextra -Weverything -pedantic -include stdio.h -o prog.clean prog.clean.c

      Bugs

      The flags are not supported. Although they could easily be added into cow.sh. This exercise left to the reader.

      @@ -224,10 +225,10 @@ This exercise left to the reader.

    • on.one.liners.txt - on writing an IOCCC one-liner
    • try.sh - how to run
    • prog.clean.c - version of source without compilation warnings
    • -
    • 2019_burton.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2019_burton.tar.bz2 - download entry tarball
    • index.html - this web page
    • 256 - test suite data
    • README.md - markdown source for this web page
    • diff --git a/2019/ciura/.entry.json b/2019/ciura/.entry.json index 1962268d1..b735d1e00 100644 --- a/2019/ciura/.entry.json +++ b/2019/ciura/.entry.json @@ -179,7 +179,7 @@ }, { "file_path" : "2019_ciura.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2019/ciura/index.html b/2019/ciura/index.html index d4cc46810..54bd21270 100644 --- a/2019/ciura/index.html +++ b/2019/ciura/index.html @@ -88,6 +88,7 @@ @@ -141,7 +142,7 @@ Location: PL - Republic of Poland

      To build:

      -
          make
      +
          make

      There is an alternate version available. See Alternate code below.

      Bugs and (Mis)features:

      @@ -149,18 +150,18 @@ below.

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 2019 ciura bugs.

      To use:

      -
          ./getwords.sh en | grep .. | ./prog string
      +
          ./getwords.sh en | grep .. | ./prog string

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Alternate code:

      There is an alternate version of this code that flushes stdout after writing a newline. See the Author’s remarks for more information.

      Alternate build:

      -
          make alt
      +
          make alt

      Alternate use:

      Use prog.alt as you would prog above.

      Alternate try:

      -
          ./try.alt.sh
      +
          ./try.alt.sh

      Judges’ remarks:

      A few letters, one at a time, with no repeats. How many different ways can this be done?

      @@ -176,7 +177,7 @@ written with an alphabet and outputs perfect pangrams composed of these words. A perfect pangram is a series of words that contains every letter of the alphabet exactly once.

      Example execution:

      -
          $ grep .. /usr/share/dict/words | ./prog abcdefghijklmnopqrstuvwxyz
      +
          $ grep .. /usr/share/dict/words | ./prog abcdefghijklmnopqrstuvwxyz
           qualm fjord wiz pyx vs beg kc nth
           quartz jinx vs fed kc womb glyph
           quid jamb fez vs pyx kc growl nth
      @@ -313,10 +314,10 @@ compilation with gcc -std=c90, add -Wno-format to
       
    • pl.sh - run with Polish data
    • ru.sh - run with Russian data
    • fasc5c.pdf - The Art of Computer Programming vol 4 draft
    • -
    • 2019_ciura.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2019_ciura.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2019/diels-grabsch1/.entry.json b/2019/diels-grabsch1/.entry.json index 657142c04..22fa37bde 100644 --- a/2019/diels-grabsch1/.entry.json +++ b/2019/diels-grabsch1/.entry.json @@ -59,7 +59,7 @@ }, { "file_path" : "2019_diels-grabsch1.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2019/diels-grabsch1/index.html b/2019/diels-grabsch1/index.html index 966dcd8f7..3a6aa336a 100644 --- a/2019/diels-grabsch1/index.html +++ b/2019/diels-grabsch1/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: DE - Federal Republic of Germ

      To build:

      -
          make
      +
          make

      To use:

      -
          ./prog < file > file.Z
      +
          ./prog < file > file.Z

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      Finally, IOCCC now has its own text compression program, and it is short enough to qualify for the Best Short Program award! That said, can you compress it down @@ -157,11 +158,11 @@ compresses differently? The judges know. :)

      Author’s remarks:

      A tiny “compress” tool:

      Usage:

      -
          ./prog < input.txt > input.txt.Z
      +
          ./prog < input.txt > input.txt.Z

      Example:

      -
          ./prog < guidelines.txt > guidelines.txt.Z
      +
          ./prog < guidelines.txt > guidelines.txt.Z

      Check for correctness:

      -
          zcat guidelines.txt.Z > guidelines2.txt
      +
          zcat guidelines.txt.Z > guidelines2.txt
           diff -s guidelines.txt guidelines2.txt

      Of course you can also use 2015/mills2 instead of zcat to verify the output file. The achieved compression ratio roughly matches @@ -203,10 +204,10 @@ goes.

    • guidelines.txt - input data from 2018 IOCCC guidelines
    • try.sh - how to run
    • Shakespeare.txt - Coriolanus by Shakespeare
    • -
    • 2019_diels-grabsch1.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2019_diels-grabsch1.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2019/diels-grabsch2/.entry.json b/2019/diels-grabsch2/.entry.json index f6954aad7..d7efa87a5 100644 --- a/2019/diels-grabsch2/.entry.json +++ b/2019/diels-grabsch2/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2019_diels-grabsch2.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2019/diels-grabsch2/index.html b/2019/diels-grabsch2/index.html index 6aa85bc02..6ca7441bf 100644 --- a/2019/diels-grabsch2/index.html +++ b/2019/diels-grabsch2/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: DE - Federal Republic of Germ

      To build:

      -
          make
      +
          make

      To use:

      -
          ./prog
      +
          ./prog

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Judges’ remarks:

      Before running this one, stay calm. Chill out, have a cup of tea. Is this bad?

      To understand what is going on here, please check if you are dreaming, or are you dreaming @@ -153,7 +154,7 @@ that you are dreaming? Or is it, wake up from the simulation?

      Author’s remarks:

      Almost a hash collision:

      This program prints its own SHA-512 hash. To verify, run:

      -
          $ sha512sum prog.c; ./prog
      +
          $ sha512sum prog.c; ./prog
           43bd0c4381a5078d2850fca9ae5e0647596bcc03cd67d8d973ad02ff35c316c728e7b347ca70abe6c74e745e63646cc7643cb0cffcd3d9a969cbf31a7ce5bf68  prog.c
           43bd0c4381a5078d2850fca9ae5e0647596bcc03cd67d8d973ad02ff35c316c728e7b347ca70abe6c74e745e63646cc7643cb0cffcd3d9a969cbf31a7ce5bf68

      It started as a complicated “hello world” program that prints some random hex @@ -304,10 +305,10 @@ doesn’t have to mean anything.

    • Makefile - entry Makefile
    • prog.orig.c - original source
    • try.sh - how to run
    • -
    • 2019_diels-grabsch2.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2019_diels-grabsch2.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2019/dogon/.entry.json b/2019/dogon/.entry.json index 6c7149feb..abddb0809 100644 --- a/2019/dogon/.entry.json +++ b/2019/dogon/.entry.json @@ -147,7 +147,7 @@ }, { "file_path" : "2019_dogon.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2019/dogon/index.html b/2019/dogon/index.html index c92286b7a..874344830 100644 --- a/2019/dogon/index.html +++ b/2019/dogon/index.html @@ -88,6 +88,7 @@ @@ -141,15 +142,15 @@ Location: IL - State of Israel (

      To build:

      -
          make
      +
          make

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: uses gets() - change to fgets() if possible

      For more detailed information see 2019 dogon bugs.

      To use:

      -
          ./prog < pattern.mc
      +
          ./prog < pattern.mc

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Make sure that you keep focus of windows in mind when going back and forth to the program and the script.

      Judges’ remarks:

      @@ -321,7 +322,7 @@ master, who reviewed some earlier versions of the entry and freely shared some of his vast knowledge regarding GOL programming and hashlife. As a free bonus, Tom has allowed me to show his code which is probably the most efficient yet most obfuscated way of calculating the GOL function on a 64 bits 8*8 leaf:

      -
          unsigned long life8x8(long a) { unsigned long aw = a << 1, ae = a >> 1, s0 = aw
      +
          unsigned long life8x8(long a) { unsigned long aw = a << 1, ae = a >> 1, s0 = aw
           ^ ae, s1 = aw & ae, hs0 = s0 ^ a, hs1 = (s0 & a) | s1, hs0w8 = hs0 >> 8, hs0e8 =
           hs0 << 8, hs1w8 = hs1 >> 8, hs1e8 = hs1 << 8, ts0 = hs0w8 ^ hs0e8, ts1 = (hs0w8
           & hs0e8) | (ts0 & s0); return (hs1w8 ^ hs1e8 ^ ts1 ^ s1) & ((hs1w8 | hs1e8) ^
      @@ -368,10 +369,10 @@ next generation bits of the input 8x8 !

    • try.sh - how to run
    • unlimited-novelty.mc - Golly macrocell input file
    • apholife.c - partially obfuscated source
    • -
    • 2019_dogon.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2019_dogon.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2019/duble/.entry.json b/2019/duble/.entry.json index ed9ae91c5..c9257c511 100644 --- a/2019/duble/.entry.json +++ b/2019/duble/.entry.json @@ -59,7 +59,7 @@ }, { "file_path" : "2019_duble.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2019/duble/index.html b/2019/duble/index.html index 6e91b81cf..831f82a10 100644 --- a/2019/duble/index.html +++ b/2019/duble/index.html @@ -88,6 +88,7 @@ @@ -141,7 +142,7 @@ Location: FR - French Republic (

      To build:

      -
          make
      +
          make

      There is an alternate version, the original, which does not work well in macOS. See Alternate code below if you are curious.

      Bugs and (Mis)features:

      @@ -149,16 +150,16 @@ See Alternate code below if you are curious.

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 2019 duble bugs.

      To use:

      -
          ./prog file
      +
          ./prog file

      Try:

      -
          ./prog /tmp/drawing
      +
          ./prog /tmp/drawing

      Open another window / terminal.

      -
          ./prog /tmp/drawing
      +
          ./prog /tmp/drawing

      Open more terminals and repeat…

      You might also wish to try a full screen size. For this try:

      -
          make clobber fullscreen
      +
          make clobber fullscreen

      Alternatively, if you want to change the size, do something like:

      -
          make clobber LINES=20 COLUMNS=20 all
      +
          make clobber LINES=20 COLUMNS=20 all

      The author provided us with the following table for use:


        @@ -173,7 +174,7 @@ to the move mode).

        The mode and current color is indicated at the bottom left corner of the editor.

        After editing the file and quitting, try:

        -
            /tmp/drawing
        +
            /tmp/drawing

        i.e. execute the file.


        WARNING: if the file is deleted it might lock any session still in use. These @@ -188,7 +189,7 @@ directory which you’ll have to delete manually. This is also discussed in

        An alternate version of this entry, prog.alt.c, is provided. This alternate code might not work as well in macOS.

        Alternate build:

        -
            make alt
        +
            make alt

        Alternate use:

        Use prog.alt as you would prog above.

        Judges’ remarks:

        @@ -204,7 +205,7 @@ of someone else by just opening the same file!

        See section Limits, Portability for more info.

        To build, type make (assuming gcc) or make CC=clang.

        Then you can start the program. It expects a file path as its first argument:

        -
            ./prog /tmp/drawing
        +
            ./prog /tmp/drawing

        (If not started this way, with a file, prog will refuse to start.)

        If the file does not exist, you will start with a blank drawing.

        If someone else (or another instance of yourself, maybe?) is already @@ -264,7 +265,7 @@ inverse video mode, and movement escape codes, e.g. xterm, g

        The drawing area size is set at compilation time:

        The default size is the one of my xterm (see top of Makefile). You may set it to the full size of your terminal window by typing:

        -
            make clobber fullscreen
        +
            make clobber fullscreen

        IMPORTANT NOTES:

        • The program compiled with a given size will fail to reload a drawing file @@ -319,10 +320,10 @@ size limit with this little change.

        • prog.orig.c - original source
        • check-os.sh - check the operating system for compatibility
        • fullscreen.sh - determine full screen size for make fullscreen
        • -
        • 2019_duble.tar.bz2 - download entry tarball

        Secondary files

          +
        • 2019_duble.tar.bz2 - download entry tarball
        • index.html - this web page
        • README.md - markdown source for this web page
        • .entry.json - description of entry in JSON
        • diff --git a/2019/endoh/.entry.json b/2019/endoh/.entry.json index bb8e7d1c3..1690e5416 100644 --- a/2019/endoh/.entry.json +++ b/2019/endoh/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "2019_endoh.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2019/endoh/index.html b/2019/endoh/index.html index 4ac8a4143..0e8e3596c 100644 --- a/2019/endoh/index.html +++ b/2019/endoh/index.html @@ -88,6 +88,7 @@ @@ -141,7 +142,7 @@ Location: JP - Japan

          To build:

          -
              make
          +
              make

          NOTE: the use of the C compiler optimiser was disabled and -g was enabled for this entry because it is SUPPOSED to crash and it needs debugging symbols.

          Bugs and (Mis)features:

          @@ -149,27 +150,27 @@ this entry because it is SUPPOSED to crash and it needs debugging symbols.

              STATUS: INABIAF - please **DO NOT** fix

          For more detailed information see 2019 endoh bugs.

          To use:

          -
              ./prog
          +
              ./prog

          Try:

          If you have gdb(1) installed:

          -
              ./try.sh
          +
              ./try.sh

          Note that in macOS installing gdb(1) takes multiple steps - it’s not just a matter of installing gdb(1) and that’s that. The try.sh script has only been tested with linux.

          You might also wish to try:

          -
              gdb ./prog || lldb ./prog
          +
              gdb ./prog || lldb ./prog

          and then type in r (to run program) and then bt (for backtrace).

          Judges’ remarks:

          The purpose of this program is to crash. You’ll want to have memorized man 7 ascii when debugging it to reveal its purpose.

          Author’s remarks:

          backtrace quine:

          Compile prog.c with no optimization.

          -
              cc -g -O0 -o prog prog.c
          +
              cc -g -O0 -o prog prog.c

          Then, run it. You will see a segmentation fault.

          -
              $ ./prog
          +
              $ ./prog
               Segmentation fault (core dumped)

          Let’s debug. As usual, run it under gdb.

          -
              $ gdb ./prog
          +
              $ gdb ./prog
               (gdb) run
               Starting program: /home/.../prog
           
          @@ -212,7 +213,7 @@ only been tested with linux.

          #7 0x0000555555555747 in x65 () at prog.c:101 ...

          By using this, you can confirm that it is actually a quine.

          -
              gdb -q -x prog.c ./prog | sed -n -r 's/#.*:([0-9]+)/\1/p' | awk '{printf "%c",$1}' > prog2.c
          +
              gdb -q -x prog.c ./prog | sed -n -r 's/#.*:([0-9]+)/\1/p' | awk '{printf "%c",$1}' > prog2.c
               diff prog.c prog2.c

          To build:

          -
              make
          +
              make

          To use:

          -
              ./prog infile.wav outfile.wav
          +
              ./prog infile.wav outfile.wav

          Try:

          -
              ./try.sh
          +
              ./try.sh

          NOTE: play, which try.sh uses, comes from SoX, the Swiss Army Knife of sound processing programs. If you don’t have this installed, see FAQ 3.10: How do I compile and use an IOCCC entry that requires sound.

          @@ -175,7 +176,7 @@ the latter reports warnings about loss of information when converting floa and that void (*)() and void (*)(void) are not the same thing.

          Interesting fact: The size of the program from ./iocccsize -i is 2019.

          How to use:

          -
              ./prog input [output [size [dry [wet [damping]]]]]
          +
              ./prog input [output [size [dry [wet [damping]]]]]
               prog.exe input [output [size [dry [wet [damping]]]]]
          • input: The path to the input file. Required.
          • @@ -196,7 +197,7 @@ decimal numbers (e.g. 0.35) or as percentages (e.g. 35%).

            The default settings are designed to make the effect obvious rather than subtle, so it may be a good idea to adjust the ratio of “dry” to “wet”, to give a more pleasant result:

            -
                ./prog in.wav out.wav 1.8 80% 15%
            +
                ./prog in.wav out.wav 1.8 80% 15%

            The program only supports WAV files, and only mostly. Other audio formats, such as MP3, are not supported because they are difficult to decode, but there are free programs such as ffmpeg that can perform the conversion. Some of the @@ -356,10 +357,10 @@ where the data ends up. For example:

          • BlockDiagram.png - reverb algorithm block-diagram of internal structure
          • try.sh - how to run
          • MonodyVocals.wav - Monody by TheFatRat featuring Laura Brehm
          • -
          • 2019_giles.tar.bz2 - download entry tarball

          Secondary files

            +
          • 2019_giles.tar.bz2 - download entry tarball
          • index.html - this web page
          • README.md - markdown source for this web page
          • .entry.json - description of entry in JSON
          • diff --git a/2019/index.html b/2019/index.html index 2b7f12f3c..d6061ae83 100644 --- a/2019/index.html +++ b/2019/index.html @@ -86,6 +86,7 @@ diff --git a/2019/karns/.entry.json b/2019/karns/.entry.json index a102dafa8..b0c56dd75 100644 --- a/2019/karns/.entry.json +++ b/2019/karns/.entry.json @@ -51,7 +51,7 @@ }, { "file_path" : "2019_karns.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2019/karns/index.html b/2019/karns/index.html index c2586d8bb..0cd8c8269 100644 --- a/2019/karns/index.html +++ b/2019/karns/index.html @@ -88,6 +88,7 @@ @@ -141,7 +142,7 @@ Location: US - United States of America

            To build:

            -
                make
            +
                make

            NOTE: we disable the optimiser because this program has problems with it enabled.

            Bugs and (Mis)features:

            @@ -149,14 +150,14 @@ enabled.

                STATUS: INABIAF - please **DO NOT** fix

            For more detailed information see 2019 karns bugs.

            To use:

            -
                ./prog < textfile_that_fits_on_the_screen
            +
                ./prog < textfile_that_fits_on_the_screen

            You might want to type:

            -
                reset
            +
                reset

            after running the program to restore the terminal to its previous state.

            Try:

            -
                ./try.sh
            +
                ./try.sh

            If you have more time you might want to try:

            -
                ./prog < README.md
            +
                ./prog < README.md

            Judges’ remarks:

            If you typically get lost in mazes, watching this program run might – or might not, YMMV – teach you how to find your way in a maze. The algorithm is @@ -179,12 +180,12 @@ adjacent nodes that are also spaces. Nodes that aren’t spaces are not connected with anything.

            Compiling and Running:

            This program usually compiles under both GCC and clang. Build with:

            -
                $(CC) -std=c99 -o tbfs prog.c
            +
                $(CC) -std=c99 -o tbfs prog.c

            where $(CC) is cc, gcc, clang, or some other C compiler.

            You can then run it with:

            -
                cat <input file> | ./tbfs
            +
                cat <input file> | ./tbfs

            Examples:

            -
                ./tbfs < maze
            +
                ./tbfs < maze
                 ./tbfs < prog.c

            Issues

            Secondary files

              +
            • 2019_karns.tar.bz2 - download entry tarball
            • index.html - this web page
            • README.md - markdown source for this web page
            • .entry.json - description of entry in JSON
            • diff --git a/2019/lynn/.entry.json b/2019/lynn/.entry.json index 2f1ec9d1a..e3682ab55 100644 --- a/2019/lynn/.entry.json +++ b/2019/lynn/.entry.json @@ -115,7 +115,7 @@ }, { "file_path" : "2019_lynn.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2019/lynn/index.html b/2019/lynn/index.html index 040ea0409..eb297d262 100644 --- a/2019/lynn/index.html +++ b/2019/lynn/index.html @@ -88,6 +88,7 @@ @@ -141,15 +142,15 @@ Location: US - United States of America

              To build:

              -
                  make
              +
                  make

              Bugs and (Mis)features:

              The current status of this entry is:

                  STATUS: INABIAF - please **DO NOT** fix

              For more detailed information see 2019 lynn bugs.

              To use:

              -
                  ./prog
              +
                  ./prog

              Try:

              -
                  ./try.sh
              +
                  ./try.sh

              Judges’ remarks:

              A fully functional compiler. The example prints out the 30th Fibonacci number.

              @@ -171,21 +172,21 @@ trace of those scary unsafeThisAndThat functions. All functions mus

            Building:

            Build the compiler:

            -
                cc -o prog prog.c
            +
                cc -o prog prog.c

            Demos:

            Fibonacci numbers:

            Test the compiler on fib.hs:

            -
                (./prog < fib.hs ; cat prog.c) > fib.c
            +
                (./prog < fib.hs ; cat prog.c) > fib.c

            Compiling the output produces a binary that prints the 30th Fibonacci number.

            The file ghcfib.hs includes fib.hs with some glue code, and shows GHC also accepts our subset of Haskell:

            -
                ghc ghcfib.hs
            +
                ghc ghcfib.hs

            Self-hosting compiler:

            To avoid spoiling this entry by revealing the original Haskell source, we instead provide hint.hs, the output of a certain stage of the compiler when run on itself. This intermediate output is hopefully difficult to understand, yet is accepted by our compiler:

            -
                (./prog < hint.hs ; cat prog.c) > hint.c
            +
                (./prog < hint.hs ; cat prog.c) > hint.c
                 make hint
                 ./hint

            The output program behaves like the compiler itself.

            @@ -200,19 +201,19 @@ it to work.

            languages”. We exercise it by showing the first entries of the length-ordered list of all strings consisting of the characters a and b that contain an even number of as.

            -
                (./prog < lol.hs ; cat prog.c) > lol.c
            +
                (./prog < lol.hs ; cat prog.c) > lol.c
                 make lol
                 ./lol

            A GHC wrapper is provided:

            -
                ghc ghclol.hs
            +
                ghc ghclol.hs

            Strongly-connected components:

            See scc.hs (and its GHC wrapper ghcscc.hs) for an elegant way to print the strongly-connected components of a graph in reverse topological order.

            -
                (./prog < scc.hs ; cat prog.c) > scc.c
            +
                (./prog < scc.hs ; cat prog.c) > scc.c

            It expects the input to be in a similar format as a previous entry (2018 vokes). For example:

            -
                make scc
            +
                make scc
                 ./scc < example-1.txt
                 ./scc < example-2.txt

            The output should agree, though our program omits line numbers and does not @@ -372,10 +373,10 @@ works.

          • lol.hs - compiler macros
          • scc.hs - compiler macros
          • hint.hs - spoiler for compiler macros
          • -
          • 2019_lynn.tar.bz2 - download entry tarball

          Secondary files

            +
          • 2019_lynn.tar.bz2 - download entry tarball
          • index.html - this web page
          • README.md - markdown source for this web page
          • .entry.json - description of entry in JSON
          • diff --git a/2019/mills/.entry.json b/2019/mills/.entry.json index e36fa4208..c1a29179f 100644 --- a/2019/mills/.entry.json +++ b/2019/mills/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2019_mills.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2019/mills/index.html b/2019/mills/index.html index f8e4643d4..ca7dd6d11 100644 --- a/2019/mills/index.html +++ b/2019/mills/index.html @@ -88,6 +88,7 @@ @@ -141,17 +142,17 @@ Location: US - United States of America

            To build:

            -
                make
            +
                make

            Bugs and (Mis)features:

            The current status of this entry is:

                STATUS: INABIAF - please **DO NOT** fix

            For more detailed information see 2019 mills bugs.

            To use:

            -
                make cpclean
            +
                make cpclean
                 # Let this run for about about an hour and then kill it:
                 ./prog Shakespeare.txt

            Try:

            -
                ./try.sh
            +
                ./try.sh

            However, as the binary model files used to produce the output are in an implementation-specific format, your mileage may vary.

            Judges’ remarks:

            @@ -200,11 +201,11 @@ training, but you can have even more fun by downloading some larger datasets:

            For your first OMLET experiment, we will try training a simple single-level RNN to write some Shakespeare plays. Start by typing

            -
                make
            +
                make

            After it builds, train it using

            -
                ./prog Shakespere.txt
            +
                ./prog Shakespere.txt

            This will immediately start outputting gibberish to the output, e.g.

            -
                ./prog Shakespere.txt
            +
                ./prog Shakespere.txt

            produces:

                sins ohennAu
                 T-teooclelp tiThoWy
            @@ -331,7 +332,7 @@ helpful if you need to stop and restart training. You can stop training by
             doing Control-C.

            You can continue training from a previous checkpoint by providing the checkpoint file name as the second parameter, for example:

            -
                ./prog Shakespeare.txt cp01_1.970
            +
                ./prog Shakespeare.txt cp01_1.970

            After the validation cycle finishes, OMLET begins the next epoch by restarting training at the beginning of the training set. Training continues forever, until you quit it with Control-C. You should monitor the checkpoints to @@ -342,7 +343,7 @@ OMLET to run the network in inference mode which uses the frozen checkpoint parameters to generate data. Inference mode takes the checkpoint file as standard input (not on the command line) and hence must be run with a command like

            -
                ./prog < cp55_1.807
            +
                ./prog < cp55_1.807

            Running it produces an infinite amount of generated output, until you hit Control-C to stop it.

            Note that if you decide to change networks or use a different input file, you @@ -353,7 +354,7 @@ cause a crash.

            The default network for OMLET (the one you get if you type make with the executable name prog) is the simplest recurrent neural network. It looks like

            -
                h = tanh(Wxh * x + Whh * h' + Bh)
            +
                h = tanh(Wxh * x + Whh * h' + Bh)
                 y = Why * h + By

            where

            Secondary files

              +
            • 2019_mills.tar.bz2 - download entry tarball
            • index.html - this web page
            • Eugene_Onegin.cp11_1.188 - training data from Eugene Onegin poetry
            • Eugene_Onegin.txt.gz - compressed Eugene Onegin poetry
            • diff --git a/2019/poikola/.entry.json b/2019/poikola/.entry.json index 805ad0f9d..fbc87b355 100644 --- a/2019/poikola/.entry.json +++ b/2019/poikola/.entry.json @@ -67,7 +67,7 @@ }, { "file_path" : "2019_poikola.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2019/poikola/index.html b/2019/poikola/index.html index f722079ee..c51fbd070 100644 --- a/2019/poikola/index.html +++ b/2019/poikola/index.html @@ -88,6 +88,7 @@ @@ -141,7 +142,7 @@ Location: FI - Republic of Finland

              To build:

              -
                  make
              +
                  make

              There is an alternate version of this program which changes the way the output is displayed. See Alternate code below.

              NOTE: we disable the optimiser because the author stated that for GCC optimiser @@ -153,7 +154,7 @@ forcing -std=gnu11.

                  STATUS: INABIAF - please **DO NOT** fix

              For more detailed information see 2019 poikola bugs.

              To use:

              -
                  ./prog 512 ./prog
              +
                  ./prog 512 ./prog
               
                   sleep 86400; make clobber prog
                   ./prog 512 ./prog
              @@ -161,22 +162,22 @@ forcing -std=gnu11.

              sleep 86400; make clobber prog ./prog 512 ./prog

              If you wish for some documentation:

              -
                  make docs
              +
                  make docs

              This will create the file poikola.pdf for your enjoyment.

              Try:

              If you don’t have a few days, try:

              -
                  ./try.sh
              +
                  ./try.sh

              As the 2019 poikola bugs says, this program will not validate input so it might get stuck or fail if invoked erroneously.

              Alternate code:

              This version prints a newline after each number for parsing in other ways than what can be done with the original entry.

              Alternate build:

              -
                  make alt
              +
                  make alt

              Alternate use:

              Use prog.alt as you would prog above.

              Alternate try:

              -
                  ./try.alt.sh
              +
                  ./try.alt.sh

              Judges’ remarks:

              Do you have the time to see what this program does? Think again, come back and try again.

              @@ -191,11 +192,11 @@ accomplishments of Ma Nykänen.

              Author’s remarks:

              How to build:

              -
                  gcc -O0 -o prog prog.c
              +
                  gcc -O0 -o prog prog.c

              or

              -
                  clang -O[0123s] -o prog prog.c
              +
                  clang -O[0123s] -o prog prog.c

              e.g.:

              -
                  clang -O1 -o prog prog.c
              +
                  clang -O1 -o prog prog.c

              Poster:

              You can generate an A3 sized poster by make docs. This command creates a pdf file poikola.pdf. This requires the @@ -231,7 +232,7 @@ three consecutive days.

              As this is a contest for obfuscated code, the program does not perform unnecessary checks, but either fails or gets stuck if invoked erroneously. The program is invoked in this way:

              -
                  ./prog <integer> <file>
              +
                  ./prog <integer> <file>

              where <integer> is 224, 256, 384, 512 or even 1024. Yes, I know 1024 is not a supported length of output, but as I said, the program does not validate its input in any way. These same parameters should be given in calculating a @@ -345,10 +346,10 @@ interruptions during the coding phase.

            • poikola.tex - supplied documentation
            • try.alt.sh - how to run alternative code
            • try.sh - how to run
            • -
            • 2019_poikola.tar.bz2 - download entry tarball

            Secondary files

              +
            • 2019_poikola.tar.bz2 - download entry tarball
            • index.html - this web page
            • README.md - markdown source for this web page
            • .entry.json - description of entry in JSON
            • diff --git a/2019/yang/.entry.json b/2019/yang/.entry.json index 62687e340..0bbd8a981 100644 --- a/2019/yang/.entry.json +++ b/2019/yang/.entry.json @@ -75,7 +75,7 @@ }, { "file_path" : "2019_yang.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2019/yang/index.html b/2019/yang/index.html index 789aa4726..437e72a47 100644 --- a/2019/yang/index.html +++ b/2019/yang/index.html @@ -88,6 +88,7 @@ @@ -141,13 +142,13 @@ Location: US - United States of America

              To build:

              -
                  make
              +
                  make

              Bugs and (Mis)features:

              The current status of this entry is:

                  STATUS: INABIAF - please **DO NOT** fix

              For more detailed information see 2019 yang bugs.

              To use:

              -
                  ./prog sample_input.txt a b c d
              +
                  ./prog sample_input.txt a b c d
               
                   cat a
               
              @@ -159,34 +160,34 @@ Location: US - United States of America
               
                   cat a b c d | ./prog

              Try:

              -
                  ./try.sh
              +
                  ./try.sh

              Judges’ remarks:

              Do you understand how this program works? You may have to go over and over the output again.

              Author’s remarks:

              Summary:

              Scramble/unscramble to single file:

              -
                  ./prog original.txt > scrambled.txt
              +
                  ./prog original.txt > scrambled.txt
               
                   ./prog < scrambled.txt > unscrambled.txt

              Scramble/unscramble to multiple files:

              -
                  ./prog input.txt output1.txt output2.txt ...
              +
                  ./prog input.txt output1.txt output2.txt ...
               
                   cat output1.txt output2.txt ... | ./prog > unscrambled.txt

              Re-scramble:

              -
                  ./prog original.txt | ./prog - > scrambled1.txt
              +
                  ./prog original.txt | ./prog - > scrambled1.txt
                   ./prog original.txt | ./prog - | ./prog - > scrambled2.txt
                   ./prog original.txt | ./prog - | ./prog - | ... > scrambled3.txt

              Scramble slowly:

              -
                  ./prog input.txt | ruby prog.c
              +
                  ./prog input.txt | ruby prog.c

              Input must be in UTF-8 encoding.

              Details:

              This is a text scrambling utility. To scramble text, specify input file name as the first argument:

              -
                  ./prog input.txt > output.txt
              +
                  ./prog input.txt > output.txt

              If original input file was small enough to fit in your terminal, you can simply use cat to unscramble the output text.

              -
                  cat output.txt
              +
                  cat output.txt

              It might seem like nothing was scrambled, but you can try passing the output through strings(1) and see that most of the original strings are gone. What happened is that the original text has been shuffled with ANSI cursor @@ -194,14 +195,14 @@ positioning codes inserted in such a way that characters are printed in random order. This effect is more visible if there is a delay after each character is printed. For convenience, a utility is included in the source to output characters slowly:

              -
                  ./prog input.txt | ruby prog.c
              +
                  ./prog input.txt | ruby prog.c

              Scrambling order is deterministic, but you can reshuffle the output by piping it through the same utility again, by specifying - as the first argument:

              -
                  ./prog input.txt | ./prog - | ./prog - | ...
              +
                  ./prog input.txt | ./prog - | ./prog - | ...

              You can also split the input to multiple files, each getting a subset of the original input characters:

              -
                  ./prog input.txt output1.txt output2.txt ...
              +
                  ./prog input.txt output1.txt output2.txt ...
                   cat output1.txt output2.txt ... > unscrambled.txt

              You can only unscramble files with cat if the input fits in a single terminal screen. If you don’t know what will be the terminal size of @@ -213,11 +214,11 @@ sufficient for unscrambling because any scrolling causes the character positions to be misaligned. But fear not, this utility also includes unscrambling functionality. If no argument is specified, input will be read through stdin and unscrambled to stdout:

              -
                  ./prog < scrambled.txt > unscrambled.txt
              +
                  ./prog < scrambled.txt > unscrambled.txt

              Where this is useful is that if you scramble the input to multiple files and unscramble each output file individually, those output files can be printed on transparencies and distributed separately.

              -
                  ./prog input.txt output1.txt output2.txt output3.txt
              +
                  ./prog input.txt output1.txt output2.txt output3.txt
                   ./prog < output1.txt > layer1.txt
                   ./prog < output2.txt > layer2.txt
                   ./prog < output3.txt > layer3.txt
              @@ -225,7 +226,7 @@ files can be printed on transparencies and distributed separately.

              visual cryptography.

              This utility can also be used just for removing trailing whitespaces and expanding tabs to 8 spaces.

              -
                  ./prog input.txt | ./prog
              +
                  ./prog input.txt | ./prog

              Features:

              UTF-8 support:

              A simple text scrambling utility might not have required a screenful @@ -295,10 +296,10 @@ the same name, the character who is highly skilled in writing letters.

            • try.sh - how to run
            • violet.c - source formatter as ASCII Violet Evergarden
            • spoiler.html - SPOILER WARNING
            • -
            • 2019_yang.tar.bz2 - download entry tarball

            Secondary files

              +
            • 2019_yang.tar.bz2 - download entry tarball
            • index.html - this web page
            • README.md - markdown source for this web page
            • .entry.json - description of entry in JSON
            • diff --git a/2020/burton/.entry.json b/2020/burton/.entry.json index 27c0ed4b3..ba59b375a 100644 --- a/2020/burton/.entry.json +++ b/2020/burton/.entry.json @@ -67,7 +67,7 @@ }, { "file_path" : "2020_burton.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2020/burton/index.html b/2020/burton/index.html index c7f9b8791..a0595a20c 100644 --- a/2020/burton/index.html +++ b/2020/burton/index.html @@ -88,6 +88,7 @@ @@ -141,15 +142,15 @@ Location: US - United States of America

              To build:

              -
                  make
              +
                  make

              Bugs and (Mis)features:

              The current status of this entry is:

                  STATUS: INABIAF - please **DO NOT** fix

              For more detailed information see 2020 burton bugs.

              To use:

              -
                  ./prog arg ...
              +
                  ./prog arg ...

              Try:

              -
                  ./try.sh
              +
                  ./try.sh

              Alternate code:

              By default, the program works for Little Endian machines. This alternate build is for Big Endian machines (that works whether you have LE or BE).

              @@ -170,7 +171,7 @@ value that results when the two magic constants are XORed.

              choosing new constants, but using the same computation generate a reversed result?

              This code may be tested by:

              -
                  make test
              +
                  make test

              Author’s remarks:

              Invoke this with a single non-negative integer less than 256, and a useful transformation occurs.

              @@ -189,11 +190,11 @@ display strange results with more than one argument.

              Compiles cleanly under clang -Wall -Weverything -pedantic, but you need to add --include stdio.h --include stdlib.h for the printf(3) and atoi(3).

              On a little-endian machine:

              -
                  clang -include stdio.h -include stdlib.h -Wall -Weverything -pedantic -DB=6945503773712347754LL -DI=5859838231191962459LL -DT=0 -DS=7 -o prog prog.c
              +
                  clang -include stdio.h -include stdlib.h -Wall -Weverything -pedantic -DB=6945503773712347754LL -DI=5859838231191962459LL -DT=0 -DS=7 -o prog prog.c

              On a big-endian machine:

              -
                  clang -include stdio.h -include stdlib.h -Wall -Weverything -pedantic -DB=7091606191627001958LL -DI=6006468689561538903LL -DT=1 -DS=0 -o prog_be prog.c
              +
                  clang -include stdio.h -include stdlib.h -Wall -Weverything -pedantic -DB=7091606191627001958LL -DI=6006468689561538903LL -DT=1 -DS=0 -o prog_be prog.c

              You might be interested to compile it both ways on the same host, and try:

              -
                  ./prog 1; ./prog_be 1
              +
                  ./prog 1; ./prog_be 1

              To build:

              -
                  make
              +
                  make

              Bugs and (Mis)features:

              The current status of this entry is:

                  STATUS: INABIAF - please **DO NOT** fix

              For more detailed information see 2020 carlini bugs.

              To use:

              -
                  ./prog
              +
                  ./prog

              Try:

              -
                  ./try.sh
              +
                  ./try.sh

              Or if you actually want to play:

              -
                  # Play with a friend, real or imagined, P1 and P2, squares are numbered 1..9
              +
                  # Play with a friend, real or imagined, P1 and P2, squares are numbered 1..9
                   ./prog

              Judges’ remarks:

              This program consists of a single printf(3) statement wrapped in a while @@ -161,7 +162,7 @@ ASCII art of the program source.

              Author’s remarks:

              HOW ABOUT A NICE GAME OF CHESSTIC-TAC-TOE?

              USAGE

              -
                  cc -o prog prog.c
              +
                  cc -o prog prog.c
                   ./prog

              Alternates between P1 and P2. Enter a digit [1-9] to move:

                  1 | 2 | 3
              @@ -187,10 +188,10 @@ patient.

              After macro expansion the format string is roughly 100K. This makes some compilers unhappy, and others slow. (For example, passing GCC the flags -Wall -Wextra -pedantic will result in a warning about oversized strings.)

              Under some terminals the program may exit early. The following should always work:

              -
                  echo "1 2 3 4 5 6 7" | ./prog
              +
                  echo "1 2 3 4 5 6 7" | ./prog

              OBFUSCATION

              The entirety of the program consists of a single iterated call to printf(3).

              -
                  int main() {
              +
                  int main() {
                       while(*d) printf(fmt, arg);
                   }

              Here, fmt is a single string, and arg is a series of arguments to @@ -218,9 +219,9 @@ this one printf(3) call (and a call to scanf(3) to rea

            • "%3$.*4$d": print argument 3 to printf(3) with as many zeros as in argument 4.

            For example, the following expression

            -
                printf("%1$.*2$d%3$hhn", 5, 10, &x)
            +
                printf("%1$.*2$d%3$hhn", 5, 10, &x)

            will have the same effect as if we had written

            -
                x = 10;
            +
                x = 10;

            because it will print out 0000000005 (5 padded to size 10) and then write the number of bytes written to x.

            printf(3) Oriented Programming

            @@ -233,17 +234,17 @@ array–one bit per pair of bytes:

          We can use format strings to compute the OR/NOT of arbitrary “bits”.

          We’ll start with the simplest, OR:

          -
              printf("%1$s%2$s%3$hhn", a, b, c)
          +
              printf("%1$s%2$s%3$hhn", a, b, c)

          will compute

          -
              *c = strlen(a) + strlen(b)
          +
              *c = strlen(a) + strlen(b)

          but given that strlen(x) is 1 for a 1-bit and 0 for a 0-bit, we have

          -
              *c = a | b
          +
              *c = a | b

          Computing the NOT of a single value is also easy:

          -
              printf("%1$255d%1$s%hhn", a, b)
          +
              printf("%1$255d%1$s%hhn", a, b)

          will compute

          -
              *b = (strlen(a)+255)%256 = strlen(a)-1
          +
              *b = (strlen(a)+255)%256 = strlen(a)-1

          and again, because strlen(x) is either 1 or 0 we have

          -
              *c = !b
          +
              *c = !b

          From here we can compute any binary circuit. Doing something efficient, though, still takes work.

          Tic-Tac-Toe

          @@ -252,7 +253,7 @@ with a turn counter that alternates between player 1 and player 2.

          To detect who has won, we implement the following logic. Let A, B, and C be pointers to three squares in a row to test, and D be where to save if there is a win or not.

          -
              "%A$s%B$s%C$s%1$253d%11$hhn" // r11 = !(*A & *B & *C)
          +
              "%A$s%B$s%C$s%1$253d%11$hhn" // r11 = !(*A & *B & *C)
               ZERO
               "%11$s%1$255d%11hhn" // r11 = !r11
               ZERO
          @@ -261,7 +262,7 @@ win or not.

          possible three-in-a-row configurations, for both players.

          The ZERO macro ensures that the number of bytes written out is 0 mod 256 with the following expression

          -
              "%1$hhn%1$s" (repeated 256 times)
          +
              "%1$hhn%1$s" (repeated 256 times)

          where argument 1 is a pointer to a temporary variable followed by a NUL byte.

          This works because if the current count is 0 mod 256, then "%1$hhn" will write zero to argument 1 and then "%1$s" will never emit any text. If, on the other @@ -273,15 +274,15 @@ times we’re eventually going to reach 0 mod 256.

          bits to Xs and Os to print out. This is actually rather straightforward. Given in 1$ the pointer to player 1’s square, and 2$ the pointer to player 2’s, and in 3$ the pointer to the board string, we can compute

          -
              "%1$s" (repeated 47 times) "%2$s" (repeated 56 times) %1$32d%3$hhn"
          +
              "%1$s" (repeated 47 times) "%2$s" (repeated 56 times) %1$32d%3$hhn"

          which will, in effect, compute

          -
              *r3 = (*r1) * 47 + (*r2) * 56 + 32
          +
              *r3 = (*r1) * 47 + (*r2) * 56 + 32

          which will output ' ' if neither are true, 'X' if r1 is true, or 'O' if r2 is true.

          Further Obfuscations

          In order to be able to finally display the board, while still only using one printf(3) statement, we finish the statement with

          -
              "\n\033[2J\n%26$s"
          +
              "\n\033[2J\n%26$s"

          which is the escape sequence to clear the screen, and then prints argument 26. Argument 26 is a pointer to a char* in memory, that initially is undefined, but within the printf(3) statement we will construct this string to look like a @@ -297,7 +298,7 @@ tic-tac-toe board.

          won, or the game is over and it is a draw.

          This turns out not to be as hard as it might look. Using the same trick as before, we set byte four to be

          -
              *byte4 = is_win * 'W' + is_tie * 'T'
          +
              *byte4 = is_win * 'W' + is_tie * 'T'

          The byte 'I' and 'S' can always be the same, and we do the same for 'E'/'N'.

          We do this same on-the-fly creation of the scanf(3) format string, but for a different reason. We first want to run printf(3) to show the first board, and @@ -305,14 +306,14 @@ then alternate between runs to scanf(3) and printf(3) displaying moves. Importantly, we do not want a final scanf(3) when the game ends. It should just exit.

          One option would be to implement the logic as

          -
              printf()
          +
              printf()
               while (*ok) {
                   scanf();
                   printf();
           }

          but this would DOUBLE the number of calls to printf(3) we require. So instead we implement it like this

          -
              while (*ok) {
          +
              while (*ok) {
                   scanf();
                   printf();
               }
          @@ -349,10 +350,10 @@ string so that it returns right away without blocking. The first time the
        • Makefile - entry Makefile
        • prog.orig.c - original source
        • try.sh - how to run
        • -
        • 2020_carlini.tar.bz2 - download entry tarball

        Secondary files

          +
        • 2020_carlini.tar.bz2 - download entry tarball
        • index.html - this web page
        • README.md - markdown source for this web page
        • .entry.json - description of entry in JSON
        • diff --git a/2020/endoh1/.entry.json b/2020/endoh1/.entry.json index 6ad5ec305..b42948ac8 100644 --- a/2020/endoh1/.entry.json +++ b/2020/endoh1/.entry.json @@ -99,7 +99,7 @@ }, { "file_path" : "2020_endoh1.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2020/endoh1/index.html b/2020/endoh1/index.html index 38234e0e6..e2300da89 100644 --- a/2020/endoh1/index.html +++ b/2020/endoh1/index.html @@ -88,6 +88,7 @@ @@ -141,15 +142,15 @@ Location: JP - Japan

          To build:

          -
              make
          +
              make

          There is an alternate version provided by the author. See Alternate code below.

          To use:

          -
              # IMPORTANT for macOS: run under Terminal.app
          +
              # IMPORTANT for macOS: run under Terminal.app
           
               ./prog

          Try:

          -
              # IMPORTANT for macOS: run under Terminal.app
          +
              # IMPORTANT for macOS: run under Terminal.app
           
               # Try resizing the terminal window before the first click.
           
          @@ -163,7 +164,7 @@ code below.

          alternate code lacks the additional rule to flag all unprobed cells. See the Author’s remarks for more details.

          Alternate build:

          -
              make alt
          +
              make alt

          Alternate use:

          Use prog.alt as you would prog above.

          Judges’ remarks:

          @@ -194,7 +195,7 @@ such a boring task!

          All you have to do is (0). You can test if you are lucky or not.

          How to use:

          It uses ncurses:

          -
              gcc -o prog prog.c -lncurses
          +
              gcc -o prog prog.c -lncurses
               ./prog

          You will see a terminal-wide field of a minesweeper. Probe a cell by mouse click.

          @@ -255,7 +256,7 @@ are flagged.

          Analyze the code.

          One more thing

          You can also play with a prepared map.

          -
              ./prog ioccc.txt
          +
              ./prog ioccc.txt

          The format of the text is:

              width height number-of-mines priorities-of-each-cell...

          There are mines in a cell whose “priorities-of-each-cell” is less than @@ -307,10 +308,10 @@ code a little to pretend to use the return value of fscanf(3).

        • ioccc.txt - gameplay map
        • megumin.txt - gameplay map
        • unwinnable.txt - gameplay map
        • -
        • 2020_endoh1.tar.bz2 - download entry tarball

        Secondary files

          +
        • 2020_endoh1.tar.bz2 - download entry tarball
        • index.html - this web page
        • README.md - markdown source for this web page
        • .entry.json - description of entry in JSON
        • diff --git a/2020/endoh2/.entry.json b/2020/endoh2/.entry.json index 5dbab04ea..a0b705ef6 100644 --- a/2020/endoh2/.entry.json +++ b/2020/endoh2/.entry.json @@ -115,7 +115,7 @@ }, { "file_path" : "2020_endoh2.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2020/endoh2/index.html b/2020/endoh2/index.html index a3e824882..bd06a5cad 100644 --- a/2020/endoh2/index.html +++ b/2020/endoh2/index.html @@ -88,6 +88,7 @@ @@ -141,13 +142,13 @@ Location: JP - Japan

          To build:

          -
              make
          +
              make

          To use:

          -
              ./prog
          +
              ./prog

          Try:

          -
              ./try.sh
          +
              ./try.sh

          What happens if you do

          -
              ./prog prog.c
          +
              ./prog prog.c

          ?

          Judges’ remarks:

          Clever use of the C99 complex data type. The spoiler directory @@ -157,7 +158,7 @@ shapes.

          render for a larger terminal window? How about adding more glyphs?

          Author’s remarks:

          No! Try not. Do, or do not. There is no try.

          -
              cc -std=c99 prog.c
          +
              cc -std=c99 prog.c
               ./a.out
               ./a.out hello.txt
               ./a.out yoda.txt
          @@ -200,10 +201,10 @@ render for a larger terminal window? How about adding more glyphs?

        • spoiler/prog.c - SPOILER WARNING - generated source
        • spoiler/spoiler.html - SPOILER WARNING - about the spoiler
        • spoiler/tmpl.txt - SPOILER WARNING - template for the program
        • -
        • 2020_endoh2.tar.bz2 - download entry tarball

        Secondary files

        Try:

        -
            make test
        +
            make test
         
             WAIT=75 WALLS=1 CANNIBAL=1 ./prog
         
        @@ -306,7 +307,7 @@ look like bugs but aren’t as well as documenting a built-in test unit for some
         features.

        Because all IOCCC entries should have a man page I have included one (even though much of it is what’s also above). To render try:

        -
            man ./snake.1
        +
            man ./snake.1

        The COMPILING.html file has a few portability notes and the HACKING.html file has some information on how one might modify things, things that could be implemented @@ -640,10 +641,10 @@ email but I’m more likely to respond to mastodon messages.

      • prog.3-j.c - source with artistic layout and shorter j macro
      • snake.1 - snake game man page
      • termcaps.c - terminal capability test source code
      • -
      • 2020_ferguson1.tar.bz2 - download entry tarball
        • +
        • 2020_endoh2.tar.bz2 - download entry tarball
        • index.html - this web page
        • README.md - markdown source for this web page
        • .entry.json - description of entry in JSON
        • diff --git a/2020/endoh2/spoiler/spoiler.html b/2020/endoh2/spoiler/spoiler.html index ab0164fff..d4e00aa83 100644 --- a/2020/endoh2/spoiler/spoiler.html +++ b/2020/endoh2/spoiler/spoiler.html @@ -83,6 +83,7 @@ diff --git a/2020/endoh3/.entry.json b/2020/endoh3/.entry.json index 4084d80c4..9ee74da72 100644 --- a/2020/endoh3/.entry.json +++ b/2020/endoh3/.entry.json @@ -59,7 +59,7 @@ }, { "file_path" : "2020_endoh3.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2020/endoh3/index.html b/2020/endoh3/index.html index 94fec3d39..fb1946641 100644 --- a/2020/endoh3/index.html +++ b/2020/endoh3/index.html @@ -88,6 +88,7 @@ @@ -141,23 +142,23 @@ Location: JP - Japan

          To build:

          -
              make
          +
              make

          An alternate version of this program exists. See Alternate code below.

          To use:

          -
              ./prog
          +
              ./prog

          Try:

          -
              ./run_clock
          +
              ./run_clock
               # And watch closely for 15-20 seconds

          Alternate code:

          An alternate version of this entry, prog.alt.c, is provided. This alternate code uses Unicode letters.

          Alternate build:

          -
              make alt
          +
              make alt

          Alternate use:

          Use prog.alt as you would prog above.

          Alternate try:

          -
              ./run_clock.alt
          +
              ./run_clock.alt
               # And watch closely for 15-20 seconds

          Judges’ remarks:

          You may be tempted to use a mirror. Resist the temptation! Try figuring out how @@ -167,7 +168,7 @@ familiar (non-mirrored) clock face? Can you add the second hand?

          time might depend on what time it is.

          Author’s remarks:

          Prepare a mirror!

          -
              make clock
          +
              make clock

          Note: You need to recompile it each run.

          The following are a few screen dumps of:

          -
              SIZE=100 SHEDS=5 GROW=-10 SHED=50 MAXSIZE=250 ./prog
          +
              SIZE=100 SHEDS=5 GROW=-10 SHED=50 MAXSIZE=250 ./prog

          As you will see it took 17 bugs to get down to below 0. Notice how I had to get down to 0 more than once: because I moved enough times before I got the last bug that I grew by 5 in size. I then however moved a bit more and ate a bug diff --git a/2020/ferguson1/gameplay.html b/2020/ferguson1/gameplay.html index 8969c0cd4..8f601d2d6 100644 --- a/2020/ferguson1/gameplay.html +++ b/2020/ferguson1/gameplay.html @@ -83,6 +83,7 @@

          @@ -451,7 +452,7 @@ setting the max size to a smaller value than the size you specify (or the default) or setting the size to higher than the default (or < 0 which will end up being > the max size though I suppose there might be some value that makes it less than again - I’m not going to try and figure that out however). Anyway:

          -
              SIZE=-1 ./prog
          +
              SIZE=-1 ./prog
               YOU WIN!
               X:24/49 Y:8/16 S:658/658 B:0

          Observe that the size isn’t the default 997: because the screen size is too @@ -499,22 +500,22 @@ you have any form of epilepsy. Thank you.

          If you want to draw the snake wherever you like on the screen you can do this by modifying the wait time (for input) to -1 (or any value < 0): then the snake does not move until you press a movement key. For example:

          -
              WAIT=-1 ./prog
          +
              WAIT=-1 ./prog

          When you eat a bug the snake will grow and you can draw more. If you want to make it so you can go through yourself:

          -
              WAIT=-1 CANNIBAL=1 ./prog
          +
              WAIT=-1 CANNIBAL=1 ./prog

          If you don’t want to start out so small (i.e. you want to be able to draw more quickly) you can just set the size to a bigger number (and you could do the same with growth and moult/shed):

          -
              SIZE=50 CANNIBAL=1 WAIT=-1 ./prog
          +
              SIZE=50 CANNIBAL=1 WAIT=-1 ./prog

          Do note that although you’re a bigger size you still grow one movement at a time.

          Okay but then if you get too many bugs the drawing will be over. If this proves to be a problem simply do:

          -
              SIZE=100 CANNIBAL=1 WAIT=-1 GROW=0 ./prog
          +
              SIZE=100 CANNIBAL=1 WAIT=-1 GROW=0 ./prog

          Or something like that (maybe make the size bigger but that’s up to you). You could also set the max size to be the highest possible by saying

          -
              MAXSIZE=-1
          +
              MAXSIZE=-1

          Which I’ve done in the play.sh script.

          I discuss how this mode works in [spoilers.markdown][].

          Here’s an example run where I spelt ‘SNAKE’. As you can see it’s far from @@ -536,7 +537,7 @@ different colours and depending on the exact parameters you specify it could easily be in the trigger range for epilepsy but potentially stimulation overload too.

          If you’re still here you can create this effect like:

          -
              WAIT=0 WALLS=1 CANNIBAL=1 ./prog
          +
              WAIT=0 WALLS=1 CANNIBAL=1 ./prog

          As long as the bug evades you’ll find that the snake is growing because it’s actually eating bugs; the computer is actually playing the game by itself! You can still move the snake though it won’t seem like you have much control over @@ -553,14 +554,14 @@ happen because the bug has to find a X and Y coordinate that’s not occupied an so with fewer available it has a harder time finding a place in that one line.

          Computer player variations

          Here’s how to make the bug move every time the snake moves:

          -
              CANNIBAL=1 WALLS=1 WAIT=0 EVADE=1 ./prog
          +
              CANNIBAL=1 WALLS=1 WAIT=0 EVADE=1 ./prog

          Help the computer win fairly quickly

          If you want to see the game ‘win’ try something like:

          -
              CANNIBAL=1 WALLS=1 WAIT=0 EVADE=1 MAXSIZE=10 ./prog
          +
              CANNIBAL=1 WALLS=1 WAIT=0 EVADE=1 MAXSIZE=10 ./prog

          Negative growth (Shrink) Automatic mode

          Here’s a fun one I just thought of (a long time after these other modes were thought of):

          -
              WAIT=0 EVADE=1 GROW=-1 SIZE=9 MAXSIZE=10 CANNIBAL=1 ./prog
          +
              WAIT=0 EVADE=1 GROW=-1 SIZE=9 MAXSIZE=10 CANNIBAL=1 ./prog

          What you’ll see is that first the snake will get to the size of 9 - whether it shows to be 10 characters depends on whether or not it gets a bug before it can get to that length - and then it’ll start shrinking until it’s just the head @@ -568,7 +569,7 @@ then the head again (i.e. 1 then 0 in size) and then win! This is also in the play.sh script.

          Adjusting the time/speed

          Of course you can also do something like:

          -
              WAIT=5 WALLS=1 CANNIBAL=1 ./prog
          +
              WAIT=5 WALLS=1 CANNIBAL=1 ./prog

          Which although might not seem like it is significantly slower.

          Moving the snake about to create patterns

          If you press different direction keys in some pattern you will see a pattern @@ -578,7 +579,7 @@ suppose also how much the bug moves and the chance of being eaten also).

          Here’s an idea: how many moves is needed to make it possible to have some sort of success in catching bugs? Obviously the dimensions will affect this value.

          How long will it take for the snake to run into itself? For instance by doing:

          -
              WAIT=0 ./prog
          +
              WAIT=0 ./prog

          On my 13” MacBook Pro (replaced later by a 16”) at the default settings going horizontally the snake ran into itself at:

              OW!
          @@ -592,7 +593,7 @@ or growing to the full size directly. This is how it works:

          You have a negative shedding growth and a positive growth size: negative and positive winning. Depending on the parameters specified it might go one way over the other. Try:

          -
              SIZE=150 SHEDS=-5 GROW=10 SHED=50 MAXSIZE=250 ./prog
          +
              SIZE=150 SHEDS=-5 GROW=10 SHED=50 MAXSIZE=250 ./prog

          What this does is set the size to 150 (to make it not go down so quickly) and then for each bug you eat it adds 5 to the size; for every 50 moves (that you don’t get the bug) you shrink by 5. You will find that at times you might only @@ -608,7 +609,7 @@ dumps with this idea.

          You could also have it so that eating a bug makes you shrink and moving so many moves you grow. I tried this and for me it was far more fun. The play.sh also has this mode:

          -
              SIZE=100 SHEDS=5 GROW=-10 SHED=50 MAXSIZE=250 ./prog
          +
              SIZE=100 SHEDS=5 GROW=-10 SHED=50 MAXSIZE=250 ./prog

          Obviously there are many other variations. The play.sh script has some of them (the above is option 5; others are 4, 15 and 16 but only options 4 and 5 are called Grow / Shrink).

          @@ -622,7 +623,7 @@ typical range of seizures is 3 to 30 flashes per seconds (but can be higher) and that means that at EVADE=1 every 231ms there will be a flash in addition to the snake moving too.

          Anyway this might sound absurd but it can be somewhat hypnotic by doing:

          -
              EVADE=1 CANNIBAL=1 ./prog
          +
              EVADE=1 CANNIBAL=1 ./prog

          And just moving the snake about not trying to catch any bugs - just let whatever happens happen.

          Gameplay mode: Stimulation / Calming mode

          @@ -631,7 +632,7 @@ want to play a game without having to worry about winning or losing you can set the growth size to 0 and then just move the snake round and round eating bugs until you want to quit. You can enable cannibalism so that you don’t have to worry about even running into yourself and losing:

          -
              GROW=0 CANNIBAL=1 ./prog
          +
              GROW=0 CANNIBAL=1 ./prog

          Gameplay mode: Expansibility

          As I was writing this document and the game modes I have thought of other game modes (they were added) and I have come back to this document to add more modes. @@ -650,9 +651,9 @@ reason as well as I simply enjoy it and thinking up new modes.

          this file discusses as well as allowing to easily change the colours.

          Colours selection: snake-colours

          To do this use the snake-colours script like so:

          -
              ./snake-colours
          +
              ./snake-colours

          If you want to pass in specific variables you can do that too e.g.:

          -
              CANNIBAL=1 ./snake-colours
          +
              CANNIBAL=1 ./snake-colours

          The script will prompt you for the colour of the walls, snake head, body and the bug.

          Automate the above gameplay modes

          @@ -664,9 +665,9 @@ snake-colours above) and then gives you a list of game modes to play. You can pass in the game variables but note that if you pass in a variable that the mode you choose uses then the script will override what you pass in.

          To use you can do something like:

          -
              ./play.sh
          +
              ./play.sh

          Or to make it so walls are an obstacle:

          -
              WALLS=0 ./play.sh
          +
              WALLS=0 ./play.sh

          6. Notes about some of the game variables

          The game variables can be used for a variety of things including different gameplay modes (as shown above) but here are some general notes about a few of them.

          diff --git a/2020/ferguson1/index.html b/2020/ferguson1/index.html index 347e0643e..e83b95c35 100644 --- a/2020/ferguson1/index.html +++ b/2020/ferguson1/index.html @@ -88,6 +88,7 @@ @@ -141,13 +142,13 @@ Location: US - United States of America

          To build:

          -
              make
          +
              make

          Bugs and (Mis)features:

          The current status of this entry is:

              STATUS: INABIAF - please **DO NOT** fix

          For more detailed information see 2020 ferguson1 bugs.

          To use:

          -
              WAIT=N WALLS=[01] EVADE=N SIZE=N MAXSIZE=N GROW=N SHEDS=N SHED=N CANNIBAL=[01] ./prog
          +
              WAIT=N WALLS=[01] EVADE=N SIZE=N MAXSIZE=N GROW=N SHEDS=N SHED=N CANNIBAL=[01] ./prog
               # start pressing some arrow keys

          where N is a number and [01] is either 1 or 0 (or more correctly zero and non-zero).

          @@ -202,7 +203,7 @@ whether you can go through the Snake or not. Default is 0 (cannot - die if you try).

      Secondary files

      On environmental variables more generally and string to int conversions

      What happens if you do:

      -
          WALLS= ./prog
      +
          WALLS= ./prog

      Can you run into the wall since you didn’t specify a value and the default is 1? No. That’s not the way it works. By saying WALLS= you have told the system that there is that environmental variable. However the way the strtoul() functions @@ -381,12 +382,12 @@ it’s wasteful (iocccsize wise) and I have never felt that having invalid input for a number could have a better value than 0.

      If however you were to give valid input followed by invalid input the valid input would be parsed. For example:

      -
          WALLS=1test ./prog
      +
          WALLS=1test ./prog

      would let you go through the walls. On the other hand

      -
          WALLS=test1 ./prog
      +
          WALLS=test1 ./prog

      would not. Furthermore if you specify the same variable more than once it’s the last one that counts. For example:

      -
          WALLS=0 WALLS=1 CANNIBAL=1 CANNIBAL=0 ./prog
      +
          WALLS=0 WALLS=1 CANNIBAL=1 CANNIBAL=0 ./prog

      would allow you to go through walls but you could not cannibalise.

      Also note that I specify base 0 which means that you can also have it in hex and octal. These are all the same:

      @@ -421,7 +422,7 @@ will end (yes things that haven’t begun can be ended).

      If calloc() fails to obtain the needed memory you’ll see something like (here it was before I added proper - to make the perfect and obvious pun - capsizing so that by setting the size to -1 it went to the max unsigned value):

      -
          $ MAXSIZE=-1 ./prog
      +
          $ MAXSIZE=-1 ./prog
           memory error
           X:0/157 Y:0/42 S:3/18446744073709551614 B:0

      BTW: There are two arrays that have to be MAXSIZE (technically + 1).

      @@ -429,7 +430,7 @@ so that by setting the size to -1 it went to the max unsigned value):

      not know but what I do know is that because it’s unsigned it can’t be negative; if the max size is 0 then the array size will be 1 but it won’t matter because the snake size will be >= that max anyway. But here’s a curious output:

      -
          SIZE=1 MAXSIZE=0 ./prog
      +
          SIZE=1 MAXSIZE=0 ./prog
           YOU WIN!
           X:78/156 Y:20/41 S:0/0 B:0

      Why does it show snake size as 0 when I specified 1? It’s because the max size diff --git a/2020/ferguson2/.entry.json b/2020/ferguson2/.entry.json index df29d22f9..6246d3e36 100644 --- a/2020/ferguson2/.entry.json +++ b/2020/ferguson2/.entry.json @@ -147,7 +147,7 @@ }, { "file_path" : "2020_ferguson2.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2020/ferguson2/index.html b/2020/ferguson2/index.html index 5b5d8843a..b58291538 100644 --- a/2020/ferguson2/index.html +++ b/2020/ferguson2/index.html @@ -88,6 +88,7 @@

      @@ -141,12 +142,12 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      The author provided alternate code that prints the output one character at a time to make it a bit more like the real thing in that it isn’t dumped out all at once. See Alternate code below.

      To use:

      -
          ./prog
      +
          ./prog
       
           # get recode help:
           ./recode -h
      @@ -178,9 +179,9 @@ at once. See Alternate code below.

      NOTE: in recode no spaces between options and option arguments are allowed.

      Try:

      -
          ./try.sh
      +
          ./try.sh

      What does:

      -
          echo | ./recode
      +
          echo | ./recode
           echo | ./recode -v

      do?

      Alternate code:

      @@ -188,15 +189,15 @@ are allowed.

      after each character, so that one can read it more easily (for longer output) and to make it a bit more like the real thing.

      Alternate build:

      -
          make alt
      +
          make alt

      The default time to sleep is 400000 microseconds but you can change this by doing:

      -
          make clobber SLEEP=600000 alt
      +
          make clobber SLEEP=600000 alt

      to change it to 600000 microseconds. It guards against negative numbers.

      Alternate use:

      Use prog.alt as you would prog above.

      Alternate try:

      -
          ./try.alt.sh
      +
          ./try.alt.sh

      Notice how only the last part should use the prog.alt. Why? Try it and find out! Can you figure out why this works this way?

      Judges’ remarks:

      @@ -205,7 +206,7 @@ out! Can you figure out why this works this way?

      • enigma.1 - A useful man page for this entry. To render, try:
      -
          man ./enigma.1
      +
          man ./enigma.1
      • recode.html (or recode.html if reading on GitHub)
          @@ -317,7 +318,7 @@ leave this in for historical purposes.

          for input (end with EOF). At that point it’ll process the input string and print the result (after finishing the enciphering).

          If you run it like:

          -
              ./prog -
          +
              ./prog -

          It will prompt you for the settings of the machine (example below).

          The first group is in the order of rotor (number), @@ -338,7 +339,7 @@ on GitHub see here) though one might need a di of exercise after taking up the challenge! :-) These however show the general program as well as how to use the two winning entries of the Morse code that I referred to earlier:

          -
              $ ./prog -
          +
              $ ./prog -
               Ring 1: 3
               Setting 1: I
               Position 1: O
          @@ -366,39 +367,39 @@ code that I referred to earlier:

          If I didn’t specify the - by e.g. echo IOCCC | ./prog then it will use the default settings; as the judges suggest this invocation I will not show it here.

          But you can also type it out like this:

          -
              $ ./prog
          +
              $ ./prog
               IOCCC
               UUMMX

          The IOCCC comes from stdin; the UUMMX is written to stdout.

          If I compile the 2014 entry and copy it to my local directory as vik I might do:

          -
              $ echo TEST|./prog |./vik | mplayer -demuxer rawaudio -
          +
              $ echo TEST|./prog |./vik | mplayer -demuxer rawaudio -

          And you would hear Morse code of the Enigma output of ‘TEST’ (i.e. KCWV)! Or perhaps not in this case. I’m not sure: I discovered a bug in that entry (Fedora, CentOS and macOS all affected).

          For example I can use the syntax provided in the winning remarks along with my entry to write it to a file. Say:

          -
              $ echo TEST|./prog |./vik > test.raw
          +
              $ echo TEST|./prog |./vik > test.raw
               $ ./vik e < test.raw | ./prog
               LEST

          Why did that happen? This shows more details:

          -
              $ ./vik e < test.raw
          +
              $ ./vik e < test.raw
               SCWV

          However as can be seen the first char is wrong:

          -
              $ echo TEST|./prog
          +
              $ echo TEST|./prog
               KCWV

          And piping the original output to my entry itself you get the original input:

          -
              $ echo TEST | ./prog  | ./prog
          +
              $ echo TEST | ./prog  | ./prog
               TEST

          I’m not sure what causes that or if there’s a way to fix it but that’s the idea anyway. Neither do I know if the original transcoding is correct.

          What if I use the input string LEST instead? In that case it worked fine:

          -
              $ echo LEST | ./prog | ./vik > lest.raw
          +
              $ echo LEST | ./prog | ./vik > lest.raw
               $ ./vik e < lest.raw | ./prog
               LEST

          But there’s one obvious question, right? Let’s try the most important one:

          -
              $ echo IOCCC | ./prog | ./vik > ioccc.raw
          +
              $ echo IOCCC | ./prog | ./vik > ioccc.raw
               $ ./vik e < ioccc.raw
               UUMMX
               $ ./vik e < ioccc.raw | ./prog
          @@ -408,7 +409,7 @@ idea anyway. Neither do I know if the original transcoding is correct.

          is with some of the things I pasted in the other file and maybe others here too. Notice also how it showed the same output that my program gave it - UUMMX.)

          What about the other Morse code entry?

          -
              $ echo IOCCC | ./prog | ./dorssel
          +
              $ echo IOCCC | ./prog | ./dorssel
               ..- ..- -- -- -..-

          The recode.c configurator

          I have included a supplementary program recode.c that can do a number of @@ -440,7 +441,7 @@ make it more flexible by a wrapper program.

          The parser is in a sense rather rudimentary but allows for both interactive and automatic (e.g. via the recode program) input. This does mean that something like the following can happen:

          -
              $ ./prog -
          +
              $ ./prog -
               Ring 1: 1AB
               Setting 1: Position 1: Ring 2: 2CD
               Setting 2: Position 2: Ring 3: 3
          @@ -493,7 +494,7 @@ GitHub).

          should help you remember (though not at this time in our world it might help you later on?). This might become even more useful after the challenge is accepted, accomplished and made use of! :)

          -
              $ echo ABC | ./prog
          +
              $ echo ABC | ./prog
               GYM
               $ echo ABC | ./prog | ./prog
               ABC
          @@ -516,7 +517,7 @@ which was exactly 75 years from the day that the person responsible for the Second World War, Adolf Hitler, ended his life. (I later made a bug fix but I consider this inconsequential).

          As for recode.c though I really love this:

          -
                        /\
          +
                        /\
               /          This is *not* what you think:

          …because it seems so wrong in C code at first glance. Also what does the ‘this’ refer to?

          @@ -524,9 +525,9 @@ ended his life. (I later made a bug fix but I consider this inconsequential).

          It’s an Enigma machine simulator! Isn’t that proof that it’s obfuscated itself?! :) Silliness aside obfuscation.txt has some of the ways I think this entry is obfuscated. To decipher try:

          -
              ./recode -Robfuscation.key -fobfuscation.txt | ./prog - 2>/dev/null > obfuscation.md
          +
              ./recode -Robfuscation.key -fobfuscation.txt | ./prog - 2>/dev/null > obfuscation.md

          To encipher:

          -
              ./recode -Robfuscation.key -fobfuscation.md | ./prog - 2>/dev/null > obfuscation.txt
          +
              ./recode -Robfuscation.key -fobfuscation.md | ./prog - 2>/dev/null > obfuscation.txt

          The file obfuscation.key is the key to decipher/encipher obfuscation.txt.

          For the lazy obfuscation.html has the deciphered version. I am afraid I’m not @@ -832,10 +833,10 @@ email but I’m more likely to respond to mastodon messages.

        • key.txt - key to decipher or encipher IOCCC
        • obfuscation.key - key to decipher or encipher obfuscation.txt
        • recode.1 - configuration tool man page
        • -
        • 2020_ferguson2.tar.bz2 - download entry tarball

        Secondary files

        -
                    int *z=(int[13]) { 0 } , *e, *g;
        +
                    int *z=(int[13]) { 0 } , *e, *g;

        Then in main:

        -
                    e = z + 10;
        +
                    e = z + 10;
                     g = e + 1;
         
                     for (j=-3; j < 0; ++j)
        @@ -152,12 +153,12 @@ expect to start out with index < 0 but to then compare that that index < 0
         and increment until 0 along with setting the value of the array to j + 3 is
         more confusing still. There are at least two other ways that are much easier
         to read that could accomplish the same thing. It continues on:

        -
                    /* ... */
        +
                    /* ... */
                     e<:i-3:> = (j < 1 ? 1 : (j > 5 ? 5 : j))-1;
        • Observe these two functions:
        -
                    void w(char *s, int k, int v)
        +
                    void w(char *s, int k, int v)
                     {
                             for(e<:2:> = 0; s<:*P:>; ++e<:2:>)
                             {
        @@ -200,7 +201,7 @@ temporary variable instead of a regular int in the function (so make it global);
         and (2) I didn’t want to risk changing all the offsets: thus I just made that
         address e[1]. Thus I also have:
      -
                  for (*g = 0 ; *g < 10; ++*g)
      +
                  for (*g = 0 ; *g < 10; ++*g)
                   {
                       r<:-2:> = Y<:14:><:*(e+1):>; r<:-3:> = Y<:15:><:1<:e:>:>;
                       if (r<:-3:> && r<:-2:> == r<:-1:>)
      @@ -218,7 +219,7 @@ which I use as the two chars to compare (this is the plugboard function).

    • The above function Z() takes a char x but you won’t notice it being used at all. Why? In fact I call it like so:
    -
                    k = Z(r<:-1:>=k);
    +
                    k = Z(r<:-1:>=k);

    The char is just used as a way to be able to call the function and assign to the proper variable at the same time: in the function Z I don’t care about x because it’s the same value as r[-1] (which I do care about). Why is it @@ -230,7 +231,7 @@ again negative offsets to cause more confusion.

    refer to the same variable in more than one way (or in some cases maybe more correct to say ‘same location’). In the Z() function for example: -
                    r<:-2:> = Y<:14:><:*(e+1):>; r<:-3:> = Y<:15:><:1<:e:>:>;
    +
                    r<:-2:> = Y<:14:><:*(e+1):>; r<:-3:> = Y<:15:><:1<:e:>:>;

    I refer to e[1] as both: *(e+1) and 1[e].

    • Replacing a number of if ..s with ... && (...)s (in one case at least @@ -245,7 +246,7 @@ index (sort of).

    • Another set of char arrays in one: the five rotors as well as the two reflectors in one char [][27]. This makes for some fun code like:

    -
                (Y<:e<:-10:>+5:><:k-'A':>) && (k = Y<:e<:-10:>+5:><:k-'A':>);
    +
                (Y<:e<:-10:>+5:><:k-'A':>) && (k = Y<:e<:-10:>+5:><:k-'A':>);

    (Of course this also removes an if statement by joining with a &&).

    • In fact I decided that the above two arrays in arrays needed to be merged @@ -275,18 +276,18 @@ enough because as they rightly point out they can just use the C preprocessor itself. But although I have quite a few cpp directives I am not using them for obfuscation but rather to save bytes. For examples:

    -
                %:define J(x)                 do(*x)=getchar(); while((*x)=='\n')
    +
                %:define J(x)                 do(*x)=getchar(); while((*x)=='\n')

    Is used quite a number of times and although it could be a function that takes a pointer to an int it was more convenient this way (I believe it used more bytes but I no longer know that). There are many others and they all save bytes (or at least most of them do if not all). There is one in particular I want to bring up though because I think it’s a curious one and it ties in to another point above:

    -
                %:define A(y)                                 *(&Y<:7:><:1:>+(y))
    +
                %:define A(y)                                 *(&Y<:7:><:1:>+(y))

    What is special about this one: Above I noted how I sort of refer directly to the notch settings (I think it was the notch settings anyway). Now I could have done say

    -
                char a = Y[7][1], b = Y[7][3], c = Y[7][5];
    +
                char a = Y[7][1], b = Y[7][3], c = Y[7][5];

    But I felt that doing instead the pointer arithmetic was worth doing. However it used significantly more bytes even as a macro: 17 if I recall right. That’s with the macro. If I were to include it three times by itself @@ -314,7 +315,7 @@ differently (and separated) so that one cannot easily replace the char

  • Also what is this about ?

  • -
                                    /\
    +
                                    /\
                         /           This is     *not* what you think:
                                 void D(char*x){ /* ... */ }

    Is that valid and if so how does it function? Yes it’s valid but I’ll leave diff --git a/2020/ferguson2/recode.html b/2020/ferguson2/recode.html index 329d11c41..37f69bb5a 100644 --- a/2020/ferguson2/recode.html +++ b/2020/ferguson2/recode.html @@ -83,6 +83,7 @@

    @@ -170,7 +171,7 @@ with the Roman numeral, showing their actual orders etc.), the reflectors

    In this file I will show an example of each feature and then get to the wonderful ‘challenge’ for everyone.

    Options

    -
        ./recode -h
    +
        ./recode -h
         usage: ./recode [options]
         -v                  display selected settings
         -r                  pseudo-randomly select settings
    @@ -180,7 +181,7 @@ wonderful ‘challenge’ for everyone.

    -r randomises settings. It won’t prompt you for settings but it will for input if you don’t give the option to read in a file for input.

    -v shows selected settings. For example combining -r and -v:

    -
        $ echo IOCCC | ./recode -r -v
    +
        $ echo IOCCC | ./recode -r -v
         Ring 1: (  I) EKMFLGDQVZNTOWYHXUSPAIBRCJ
         Ring 2: (  V) VZBRGITYUPSDNHLXAWMJQOFECK
         Ring 3: ( IV) ESOVPZJAYQUIRHXLNFTGKDCMWB
    @@ -207,7 +208,7 @@ encipherment/decipherment). If the file cannot be opened it sets back to stdin.<
     

    -o outputs the settings to the file. If the file cannot be opened for writing or is the same file name (see below) then only stdout will be used. Example of randomised output going to a file:

    -
        $ ./recode -r -oconfig
    +
        $ ./recode -r -oconfig
         IOCCC
         3PP4UB5GG1ELGTKFCOPVBNUYXJAWSDIOCCC
         $ cat config
    @@ -236,7 +237,7 @@ what about if one exists but the other does not?

    File options parser limitation

    Due to the way the parsing of options is done (no spaces between option char and argument) shell expansion will not work right so for example doing:

    -
        $ ./recode -R~/config
    +
        $ ./recode -R~/config

    will not read the file ‘config’ in the home directory. I show another way to achieve this later.

    This limitation also applies to the -f and -o options!

    @@ -246,7 +247,7 @@ the program interactively.

    Piping commands to recode

    If stdin is not a tty (!isatty(0)) and neither randomised mode nor reading in from a file is specified then you might just see something like:

    -
        $ echo testing test tests | ./recode
    +
        $ echo testing test tests | ./recode
         1AB2BB3CC1testing test tests
     
         $ echo testing test tests | ./recode | ./prog - 2>/dev/null
    @@ -265,7 +266,7 @@ job at this anyway).

    input manually (if you randomise or read in from previously saved file no input need be done at all) then make sure to redirect stderr to /dev/null. If you don’t you might see something like:

    -
        $ ./recode -r | ./prog -
    +
        $ ./recode -r | ./prog -
         Ring 1: IOCCC
         Setting 1: Position 1: Ring 2: Setting 2: Position 2: Ring 3: Setting 3: Position 3: Reflector: Plugboard pair 1: Plugboard pair 2: Plugboard pair 3: Plugboard pair 4: Plugboard pair 5: Plugboard pair 6: Plugboard pair 7: Plugboard pair 8: Plugboard pair 9: Plugboard pair 10: DEVIY

    What happened is that Ring 1: is printed to stderr but since it’s not been @@ -274,7 +275,7 @@ input. Why or how it shows the first prompt instead of later on I do not know. Anyway at this point the simulator is already expecting input to en/decipher. That’s why after I sent EOF it printed out the remaining strings to stderr.

    Manually test the recode program with the Enigma program

    -
        $ cat input
    +
        $ cat input
         IOCCC
     
         $ ./recode -finput
    @@ -314,7 +315,7 @@ a number of ways but two dots is one. Notice also that it’s in a different ord
     than the simulator: because with the size restrictions on my entry I saved bytes
     by using the same loop where I could. It just felt more natural to have them
     grouped together in a configurator for the simulator.

    -
        $ echo 1AA2AA3AA2ABCD..EFGHIJKLMNOPQRIOCCC | ./prog - 2>/dev/null
    +
        $ echo 1AA2AA3AA2ABCD..EFGHIJKLMNOPQRIOCCC | ./prog - 2>/dev/null
         HQNVO
         $ echo 1AA2AA3AA2ABCD..EFGHIJKLMNOPQRIOCCC  | ./prog - 2>/dev/null | echo 1AA2AA3AA2ABCD..EFGHIJKLMNOPQRHQNVO | ./prog  - 2>/dev/null
         IOCCC
    @@ -330,13 +331,13 @@ part again; I could have just done the latter part but I wanted to show the way the pipeline works with settings etc.

    What happens if the plugboard pairs are the same but in a different order? It’s the same output:

    -
        $ echo 1AA2AA3AA2AB..CDEFGHIJKLMNOPQRIOCCC|./prog - 2>/dev/null
    +
        $ echo 1AA2AA3AA2AB..CDEFGHIJKLMNOPQRIOCCC|./prog - 2>/dev/null
         HQNVO

    Also if you flip the order of the letters in the pair e.g. the AB as BA instead:

    -
        $ echo 1AA2AA3AA2BA..CDEFGHIJKLMNOPQRIOCCC|./prog - 2>/dev/null
    +
        $ echo 1AA2AA3AA2BA..CDEFGHIJKLMNOPQRIOCCC|./prog - 2>/dev/null
         HQNVO

    Only write config file

    -
        $ ./recode -v -oconfig -finput >/dev/null
    +
        $ ./recode -v -oconfig -finput >/dev/null
         Rotors:
         (1)   I: EKMFLGDQVZNTOWYHXUSPAIBRCJ
         (2)  II: AJDKSIRUXBLHWTMCQGZNPYFVOE
    @@ -389,7 +390,7 @@ and it didn’t report an error. Neither did it complain about IJ i
     pair. This is because it consumes input overflow.

    It shouldn’t be this way for the simulator though because that could cause inconsistent number of characters expected before the text to encipher.

    -
        $ cat config
    +
        $ cat config
         1AB2CD3EF2ABCDEFGHIJKLMNOPQRST
     
         $ ( cat config ; cat input ) | ./prog - 2>/dev/null
    @@ -402,7 +403,7 @@ settings written? You can do that too by either sending a newline or else
     directly type ctrl-d (or whatever you have EOF set to) or give it an empty file.

    The following are all equivalent in that they will write to a settings file (the first one will print a newline with the echo but that won’t matter):

    -
        $ echo | ./recode -r -osettings
    +
        $ echo | ./recode -r -osettings
         $ echo -n | ./recode -r -osettings
         $ > empty
         $ ./recode -r -osettings < empty
    @@ -414,7 +415,7 @@ the buffer remains NULL and so I don’t print it but still do prin
     file. (Actually even if getdelim() fails you’re supposed to free the buffer so I
     set another variable to indicate if it should be printed.)

    Reusing a configuration

    -
        $ echo -n|./recode -r -oconfig
    +
        $ echo -n|./recode -r -oconfig
         4UH5II1RJ1SPIFEJLYGZWRTBHVCAMN$
     
         $ cat input.txt
    @@ -435,7 +436,7 @@ set another variable to indicate if it should be printed.)

    $ diff io input.txt $

    Alternatively you can just use the -R and -f options:

    -
        $ ./recode -finput.txt -Rconfig | ./prog - 2>/dev/null > output2
    +
        $ ./recode -finput.txt -Rconfig | ./prog - 2>/dev/null > output2
         $ diff output output2
         $

    Write config file, read data file and pass to Enigma simulator

    @@ -476,7 +477,7 @@ set another variable to indicate if it should be printed.)

    Cody?) there’s also a reference to code which I also love (just as all participants of the IOCCC do). Other things there don’t mean anything but what does is the output:

    -
        $ cat output
    +
        $ cat output
         DBFAF 2020 Ittejg ltblwriac uqdfqvr dhqh ghhf
     
         Jsjy ce v pxdmullo.
    @@ -491,21 +492,21 @@ does is the output:

    This is another sentence.

    Piping directly to the Enigma code once (with randomised settings, saved)

    This is like the above only randomised:

    -
        $ ./recode -r -oconfig|./prog - 2>/dev/null
    +
        $ ./recode -r -oconfig|./prog - 2>/dev/null
         IOCCC
         UGEVP

    Note that I typed in IOCCC and sent EOF (ctrl-d); the settings were written to the config file (for deciphering later) and then all of it was piped to the Enigma entry resulting in the line below IOCCC. But let’s verify it worked out okay:

    -
        $ cat config
    +
        $ cat config
         2BM4GJ3HK1LNCBXWRMGKSYIAZUTPVJ

    Without having to copy/paste intermediate results:

    -
        $ echo IOCCC | ./recode -Rconfig | ./prog - 2>/dev/null | ./recode -Rconfig | ./prog - 2>/dev/null
    +
        $ echo IOCCC | ./recode -Rconfig | ./prog - 2>/dev/null | ./recode -Rconfig | ./prog - 2>/dev/null
         IOCCC

    You can also use a string for the -R option. I’ll use command substitution and actual pasting to demonstrate:

    -
        $ echo IOCCC | ./recode -R$(cat config) | ./prog - 2>/dev/null | ./recode -R2BM4GJ3HK1LNCBXWRMGKSYIAZUTPVJ | ./prog - 2>/dev/null
    +
        $ echo IOCCC | ./recode -R$(cat config) | ./prog - 2>/dev/null | ./recode -R2BM4GJ3HK1LNCBXWRMGKSYIAZUTPVJ | ./prog - 2>/dev/null
         IOCCC

    Usage conclusion

    That should give you an idea of how to use the recode program. I leave it as @@ -585,7 +586,7 @@ think that I would give too much away? :)

    the key you wish to select is

        0EZ4PC1CC0PGTAQSOXWNMDRYKFUZEI

    you can do:

    -
        ./recode -R0EZ4PC1CC0PGTAQSOXWNMDRYKFUZEI -fencrypted.html | ./prog - 2>/dev/null > decrypted.html
    +
        ./recode -R0EZ4PC1CC0PGTAQSOXWNMDRYKFUZEI -fencrypted.html | ./prog - 2>/dev/null > decrypted.html

    Then open decrypted.html in your browser.

    To build:

    -
        make
    +
        make

    Bugs and (Mis)features:

    The current status of this entry is:

        STATUS: INABIAF - please **DO NOT** fix

    For more detailed information see 2020 giles bugs.

    To use:

    -
        ./prog < dtmf.wav
    +
        ./prog < dtmf.wav
     
         ./prog [digits] > digits.wav

    where dtmf.wav is a WAV file of the dialling of a number being dialled with @@ -156,7 +157,7 @@ frequency) (more commonly known as Touch-Tone) and [digits] is a sequence of digits that will be converted to the DTMF sound!

    Try:

    -
        ./try.sh
    +
        ./try.sh
         ./prog < pi.wav
     
         # See
    @@ -180,12 +181,12 @@ standard input, decode the touch-tones in the file, and output the corresponding
     digits to standard output. This program only supports WAV files that have
     exactly 16 bits per sample, but it allows any sample rate and any number of
     audio channels.

    -
        $ ./prog < pi.wav
    +
        $ ./prog < pi.wav
         31415926

    If the program is executed with a command-line argument, it will generate the tones corresponding to the specified characters, writing them to standard output as a WAV file.

    -
        $ ./prog 867-5309 | aplay
    +
        $ ./prog 867-5309 | aplay

    Interesting Features

    • When compiled with gcc -pedantic -Wall -Wextra there are no compiler @@ -287,10 +288,10 @@ single pure sine wave.

    • prog.orig.c - original source
    • try.sh - how to run
    • pi.wav - touch tone for leading decimal digits of pi
    • -
    • 2020_giles.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2020_giles.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • dtmf.bin - binary support file
    • diff --git a/2020/index.html b/2020/index.html index e2a3e01a1..31c67abd4 100644 --- a/2020/index.html +++ b/2020/index.html @@ -86,6 +86,7 @@ diff --git a/2020/kurdyukov1/.entry.json b/2020/kurdyukov1/.entry.json index 1c21ae0cc..f6a728a83 100644 --- a/2020/kurdyukov1/.entry.json +++ b/2020/kurdyukov1/.entry.json @@ -75,7 +75,7 @@ }, { "file_path" : "2020_kurdyukov1.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2020/kurdyukov1/index.html b/2020/kurdyukov1/index.html index c0e657f7c..c1f7f4ff4 100644 --- a/2020/kurdyukov1/index.html +++ b/2020/kurdyukov1/index.html @@ -88,6 +88,7 @@ @@ -141,18 +142,18 @@ Location: RU - Russian Federation

      To build:

      -
          make
      +
          make

      There are alternate versions of this entry. See Alternate code below for more details.

      To use:

      -
          ./prog
      +
          ./prog
           # input some text
       
           echo text | ./prog
       
           ./prog < file

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Alternate code:

      There are a number of alternate versions for this program, some in C and some in assembly.

      @@ -164,7 +165,7 @@ different social media profile covers as well as different shapes.

      are the program in assembly for x86_64 linux and x86 linux respectively.

      Alternate build:

      To build prog.alt.c:

      -
          make alt
      +
          make alt

      Alternate use:

      Use prog.alt as you would prog above.

      Judges’ remarks:

      @@ -244,10 +245,10 @@ the binary code is larger due to fewer registers and lack of 64-bit multiply.prog.extra.c - variant of entry source with sine function
    • prog.x86_64.asm - assembly source code
    • prog.x86.asm - assembly source code
    • -
    • 2020_kurdyukov1.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2020_kurdyukov1.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2020/kurdyukov2/.entry.json b/2020/kurdyukov2/.entry.json index 1166c0062..ef9b08474 100644 --- a/2020/kurdyukov2/.entry.json +++ b/2020/kurdyukov2/.entry.json @@ -75,7 +75,7 @@ }, { "file_path" : "2020_kurdyukov2.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2020/kurdyukov2/index.html b/2020/kurdyukov2/index.html index 6d8e72c49..959c2780d 100644 --- a/2020/kurdyukov2/index.html +++ b/2020/kurdyukov2/index.html @@ -88,6 +88,7 @@ @@ -141,11 +142,11 @@ Location: RU - Russian Federation

      To build:

      -
          make
      +
          make

      To use:

      -
          ./prog
      +
          ./prog

      Try:

      -
          # Take a selfie
      +
          # Take a selfie
           ./prog 1000 selfie.jpg output.jpg
           # Admire your portrait in cubist style
       
      @@ -161,7 +162,7 @@ rectangles. What is the complexity? Is it obvious from the source code?

      This program divides the image into a specified number of rectangles. This process is content aware, so the algorithm tries to match most of the information. However, it doesn’t find the best theoretically possible layout.

      -
          ./prog 1000 input.jpg output.jpg
      +
          ./prog 1000 input.jpg output.jpg

      Building

      You can build three versions, depending on the image format.

      Default is JPEG version; if you have the libjpeg development package installed @@ -169,9 +170,9 @@ in your system, then make without arguments should do the right thi

      If you want to use libjpeg compiled from sources, then use the LIBJPEG define to specify the path to includes and the library. For example using libjpeg source version 9c:

      -
          make prog LIBJPEG="-Ijpeg-9c jpeg-9c/libjpeg.a"
      +
          make prog LIBJPEG="-Ijpeg-9c jpeg-9c/libjpeg.a"

      Use this command to build a PNG version (you need libpng):

      -
          make prog_png LIBPNG="-lpng"
      +
          make prog_png LIBPNG="-lpng"

      And the PPM version (no additional dependencies, can read raw/ASCII PPM, writes raw PPM):

          make prog_ppm
      @@ -179,22 +180,22 @@ raw PPM):

      Thanks to Cody Boone Ferguson for this information!

      First, make sure you have the compiler tools installed e.g. by:

      -
          sudo xcode-select --install
      +
          sudo xcode-select --install

      Make sure you install MacPorts. Then do:

      -
          sudo port install jpeg libpng ImageMagick
      +
          sudo port install jpeg libpng ImageMagick

      The program itself doesn’t need ImageMagick, install it only if you plan to make GIFs from the results using makegif.sh.

      After that’s installed you need to run make with these options:

      -
          make LDFLAGS="-I/opt/local/include -L/opt/local/lib"
      +
          make LDFLAGS="-I/opt/local/include -L/opt/local/lib"

      Building on macOS with Homebrew

      First, make sure you have the compiler tools installed e.g. by:

      -
          sudo xcode-select --install
      +
          sudo xcode-select --install

      Make sure you install Homebrew.

      Then:

      -
          brew install libjpeg libpng
      +
          brew install libjpeg libpng
           eval "$(brew shellenv)"

      You are now ready to compile this entry:

      -
          make clobber all
      +
          make clobber all

      Notes

      Made this thing while experimenting with the idea of representing an image with rectangles (lossy compression). It’s not very good in that sense, but the @@ -206,7 +207,7 @@ the picture data is split (halves may have different size) horizontally or vertically to get the minimum difference.

      You can use this command to make a GIF from output images (uses ImageMagick). For instance after running the command suggested by the judges:

      -
          convert -delay 10 -dither none -loop 0 $(find . -maxdepth 1 -type f -name '*jpg' | sort -V) $(find . -maxdepth 1 -type f -name '*jpg' | sort -rV) +map out.gif
      +
          convert -delay 10 -dither none -loop 0 $(find . -maxdepth 1 -type f -name '*jpg' | sort -V) $(find . -maxdepth 1 -type f -name '*jpg' | sort -rV) +map out.gif

      NOTE: the above is done in the try.sh script.

      Also provided makegif.sh to aid with GIF creation.

      To build:

      -
          make
      +
          make

      There is an alternate version of this program. See Alternate code below.

      To use:

      -
          ./prog
      +
          ./prog

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Alternate code:

      The alternate version, prog.alt.c, has the main code as a macro.

      Alternate build:

      -
          make alt
      +
          make alt

      Alternate use:

      Use prog.alt as you would prog above.

      Judges’ remarks:

      @@ -169,7 +170,7 @@ exactly what it says nonetheless.

      Author’s remarks:

      Letter Mixer

      Compile and try this:

      -
          cat input.txt | ./prog
      +
          cat input.txt | ./prog

      The program can work with letters that are not represented in English, as long as these letters are encoded in the higher part of the single-byte character set (use iconv to convert from UTF-8 and back).

      @@ -203,10 +204,10 @@ as these letters are encoded in the higher part of the single-byte character set
    • input.txt - sample input
    • prog.extra.c - alternative source with extra functionality
    • try.sh - how to run
    • -
    • 2020_kurdyukov3.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2020_kurdyukov3.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2020/kurdyukov4/.entry.json b/2020/kurdyukov4/.entry.json index feaafbed4..f551504bc 100644 --- a/2020/kurdyukov4/.entry.json +++ b/2020/kurdyukov4/.entry.json @@ -67,7 +67,7 @@ }, { "file_path" : "2020_kurdyukov4.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2020/kurdyukov4/index.html b/2020/kurdyukov4/index.html index 7579d5bad..75fb2e6c8 100644 --- a/2020/kurdyukov4/index.html +++ b/2020/kurdyukov4/index.html @@ -88,6 +88,7 @@ @@ -141,13 +142,13 @@ Location: RU - Russian Federation

      To build:

      -
          make
      +
          make

      To use:

      -
          ./prog text_file output_length context_length random_seed
      +
          ./prog text_file output_length context_length random_seed

      Try:

      When running this, ask yourself why it gets progressively slower when the context length decreases:

      -
          ./try.sh
      +
          ./try.sh

      Performance depends on the number of same hashes found. Too many identical strings if the context length is small. @@ -183,11 +184,11 @@ Middle-earth (HoMe). Now can you appreciate the award title a bit better?

      Author’s remarks:

      Building:

      -
          cc prog.c -o prog
      +
          cc prog.c -o prog

      Usage:

      This program generates random text from the provided dictionary using a Markov chain, outputting to stdout.

      -
          ./prog input.txt 2000 10 12345
      +
          ./prog input.txt 2000 10 12345

      Parameters are:

      1. dictionary filename @@ -209,7 +210,7 @@ the output of this size in bytes exists somewhere in the dictionary.

      2. Example

        You can try this with the inputs provided with 2019/mills from the IOCCC entries.

        -
            $ ./prog Shakespeare.txt 2001 10 12345
        +
            $ ./prog Shakespeare.txt 2001 10 12345

        produces:

            r sons, wives for them, as the hope I had it. This is the way they be not too ra
             sh a trial of you only. Therefore will not out of door? Nurse: Marry, bachelor,
        @@ -266,10 +267,10 @@ the output of this size in bytes exists somewhere in the dictionary.

      3. Shakespeare.txt - Shakespeare text
      4. rand.c - randomize a file
      5. try.sh - how to run
      6. -
      7. 2020_kurdyukov4.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2020_kurdyukov4.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2020/otterness/.entry.json b/2020/otterness/.entry.json index a8249cc64..3fe60b644 100644 --- a/2020/otterness/.entry.json +++ b/2020/otterness/.entry.json @@ -59,7 +59,7 @@ }, { "file_path" : "2020_otterness.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2020/otterness/index.html b/2020/otterness/index.html index 9f0c13b7b..43cf0fe78 100644 --- a/2020/otterness/index.html +++ b/2020/otterness/index.html @@ -88,6 +88,7 @@ @@ -141,15 +142,15 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      Bugs and (Mis)features:

      The current status of this entry is:

          STATUS: INABIAF - please **DO NOT** fix

      For more detailed information see 2020 otterness bugs.

      To use:

      -
          ./prog
      +
          ./prog

      Try:

      -
          ./try.sh
      +
          ./try.sh

      Now play output.mid and output2.mid in an audio player that can play MIDI files.

      Judges’ remarks:

      @@ -179,7 +180,7 @@ for most of my testing (see cvikl.mid).

      Usage

      Compile the program using the following command (I tested this using both clang and gcc):

      -
          cc -pedantic -Wall -Werror -Wextra -O3 -o prog prog.c
      +
          cc -pedantic -Wall -Werror -Wextra -O3 -o prog prog.c

      The program expects a MIDI on stdin, and writes a modified MIDI to stdout:

          ./prog <input.mid >output.mid

      If the program encounters an error, no output will generally be produced, and @@ -271,10 +272,10 @@ very thoroughly).

    • try.sh - how to run
    • cvikl.mid - sample input sound
    • entertainer.mid - sample input sound
    • -
    • 2020_otterness.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2020_otterness.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2020/tsoj/.entry.json b/2020/tsoj/.entry.json index 9a2c8dee8..209ceb0ef 100644 --- a/2020/tsoj/.entry.json +++ b/2020/tsoj/.entry.json @@ -43,7 +43,7 @@ }, { "file_path" : "2020_tsoj.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2020/tsoj/index.html b/2020/tsoj/index.html index 2b3e2982b..be3a61187 100644 --- a/2020/tsoj/index.html +++ b/2020/tsoj/index.html @@ -88,6 +88,7 @@ @@ -141,22 +142,22 @@ Location: DE - Federal Republic of Germ

      To build:

      -
          make
      +
          make

      There is an alternate version which has controls that will make much more sense to those familiar with vi. See Alternate code below.

      To use:

      -
          ./prog
      +
          ./prog

      Try:

      -
          # Make your terminal as large as possible, possibly reduce your font size
      +
          # Make your terminal as large as possible, possibly reduce your font size
           # then...
           ./prog

      Alternate code:

      This version has the difference of moving forwards, left, backwards and right, where instead of w, a, s and d, you can use k, h, j and l.

      Alternate build:

      -
          make alt
      +
          make alt

      Alternate use:

      -
          # Make your terminal as large as possible, possibly reduce your font size
      +
          # Make your terminal as large as possible, possibly reduce your font size
           # then...
           ./prog.alt

      ..and maybe curse less than you might otherwise, but still probably curse (see @@ -257,10 +258,10 @@ it.

    • Makefile - entry Makefile
    • prog.alt.c - alternative source
    • prog.orig.c - original source
    • -
    • 2020_tsoj.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2020_tsoj.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/2020/yang/.entry.json b/2020/yang/.entry.json index 1e9e5b01a..0e2246ed4 100644 --- a/2020/yang/.entry.json +++ b/2020/yang/.entry.json @@ -59,7 +59,7 @@ }, { "file_path" : "2020_yang.tar.bz2", - "inventory_order" : 100000, + "inventory_order" : 1415926535, "OK_to_edit" : false, "display_as" : "tbz2", "display_via_github" : false, diff --git a/2020/yang/index.html b/2020/yang/index.html index 4b1802599..360650eef 100644 --- a/2020/yang/index.html +++ b/2020/yang/index.html @@ -88,6 +88,7 @@ @@ -141,14 +142,14 @@ Location: US - United States of America

      To build:

      -
          make
      +
          make

      To use:

      -
          ./prog [PIN] < input.txt > output.c
      +
          ./prog [PIN] < input.txt > output.c

      Try:

      -
          ./try.sh
      +
          ./try.sh

      The author provided the file cppp.cc which can preprocess the generated output to make them more acceptable to typical compilers. To build:

      -
          make cppp
      +
          make cppp

      See the author’s remarks for more details.

      Judges’ remarks:

      You might think of this entry as code obfuscater with a code. @@ -159,7 +160,7 @@ What is compiling this entry about? spoiler that shows how this entry was written.

      Author’s remarks:

      Synopsis

      -
          echo "Hello world" | ./prog 12345 > encoded.c
      +
          echo "Hello world" | ./prog 12345 > encoded.c
       
           gcc -DPIN=12345 encoded.c -o ./decoded && ./decoded

      Details

      @@ -169,10 +170,10 @@ spoiler that shows how this entry was written.

      where [PIN] is an integer in the range of 1..65535

      When run with an encoding PIN (first command line argument), Mile will read bytes from stdin and generate C code on stdout. Example:

      -
          echo "Hello, world!" | ./prog 56789 > encoded.c
      +
          echo "Hello, world!" | ./prog 56789 > encoded.c

      This generated code will reproduce the same input bytes on stdout when executed, if it was compiled with the same encoding PIN.

      -
          gcc -DPIN=56789 encoded.c -o decoded
      +
          gcc -DPIN=56789 encoded.c -o decoded

      The generated code reconstructs all data at compile time by seeding a random number generator with the given PIN to reproduce the input bytes, and simply does one fwrite(3) call at run time to print those bytes. Not @@ -260,10 +261,10 @@ then compile it with a c++ compiler of your choice.

    • try.sh - how to run
    • cppp.cc - encode large file C Pre-PreProcessor source
    • spoiler.html - SPOILER WARNING
    • -
    • 2020_yang.tar.bz2 - download entry tarball

    Secondary files

      +
    • 2020_yang.tar.bz2 - download entry tarball
    • index.html - this web page
    • README.md - markdown source for this web page
    • .entry.json - description of entry in JSON
    • diff --git a/CODE_OF_CONDUCT.html b/CODE_OF_CONDUCT.html index 9a8805541..1126e8014 100644 --- a/CODE_OF_CONDUCT.html +++ b/CODE_OF_CONDUCT.html @@ -83,6 +83,7 @@ diff --git a/Makefile b/Makefile index 5d554c98a..648b9de63 100644 --- a/Makefile +++ b/Makefile @@ -438,6 +438,7 @@ quick_www: ${MAKE} gen_other_html ${MAKE} gen_status ${MAKE} quick_entry_index + ${MAKE} gen_sitemap @echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-=' # do everything needed to build HTML content for the web site @@ -459,6 +460,7 @@ www: ${MAKE} gen_other_html ${MAKE} gen_status ${MAKE} entry_index + ${MAKE} gen_sitemap @echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-=' # untar all entry tarballs diff --git a/README.html b/README.html index ac87a78fb..ee603386a 100644 --- a/README.html +++ b/README.html @@ -83,6 +83,7 @@ @@ -194,7 +195,7 @@ you encounter should give you more appreciation for the entry.

      If you have the energy to type in the text, or if you have access to a machine readable version of these programs, you should next consider some preprocessing such as:

      -
      sed -e '/^#.*include/d' prog.c | cc -E
      +
      sed -e '/^#.*include/d' prog.c | cc -E

      This strips away comments and expands the program’s macros without having things such as includes and macros cluttering up the output. If the entry requires or suggests the use of compile line options (such as -Dindex=strchr) they should diff --git a/archive/historic/index.html b/archive/historic/index.html index e707555ba..797991362 100644 --- a/archive/historic/index.html +++ b/archive/historic/index.html @@ -83,6 +83,7 @@

      @@ -191,11 +192,11 @@ Machine as of [2022 Dec 28)(https://web.archive.org/web/20201228005211/https://www.ioccc.org/).

      How to unpack

      HINT: To uncompress a given bzip2 compressed tarball file, use:

      -
      tar -jxvf file.tar.bz2
      +
      tar -jxvf file.tar.bz2

      where “file.tar.bz2” is the name of a file found in this directory.

      To uncompress all of the 2022 Dec 28 archive using the year based bzip2 compressed tarball files:

      -
      for year in 198{4,5,6,7,8,9} 199{0,1,2,3,4,5,6,8} 200{0,1,4,5,6} 201{1,2,3,4,5,8,9} 2020; do
      +
      for year in 198{4,5,6,7,8,9} 199{0,1,2,3,4,5,6,8} 200{0,1,4,5,6} 201{1,2,3,4,5,8,9} 2020; do
           rm -rf "$year"
           tar -jxvf "archive-$year.tar.bz2"
       done
      diff --git a/authors.html b/authors.html index 4d6cd4646..11744a7dc 100644 --- a/authors.html +++ b/authors.html @@ -83,6 +83,7 @@ diff --git a/bin/gen-top-html.sh b/bin/gen-top-html.sh index f7419ab52..7db3ff39e 100755 --- a/bin/gen-top-html.sh +++ b/bin/gen-top-html.sh @@ -88,7 +88,7 @@ TOP_MD_SET+=("faq") # set variables referenced in the usage message # -export VERSION="1.2.4 2024-04-13" +export VERSION="1.3 2024-04-14" NAME=$(basename "$0") export NAME export V_FLAG=0 @@ -125,6 +125,9 @@ TOP_MD_SET+=("index") TOP_MD_SET+=("judges") TOP_MD_SET+=("license") TOP_MD_SET+=("news") +TOP_MD_SET+=("next/README") +TOP_MD_SET+=("next/guidelines") +TOP_MD_SET+=("next/rules") TOP_MD_SET+=("thanks-for-help") # export NOOP= @@ -486,6 +489,10 @@ for name in "${TOP_MD_SET[@]}"; do if [[ $name == inc/README ]]; then HTML_FILE="inc/index.html" fi + # next/README is a special case + if [[ $name == next/README ]]; then + HTML_FILE="next/index.html" + fi # archive/historic/README is a special case if [[ $name == archive/historic/README ]]; then HTML_FILE="archive/historic/index.html" diff --git a/bin/index.html b/bin/index.html index be3a327fd..52be44291 100644 --- a/bin/index.html +++ b/bin/index.html @@ -83,6 +83,7 @@ @@ -133,63 +134,63 @@ repo.

      all-run.sh

      Run a command on all winning entries.

      For example:

      -
      bin/all-run.sh -v 3 bin/quick-readme2index.sh -v 1
      +
      bin/all-run.sh -v 3 bin/quick-readme2index.sh -v 1

      Or for example:

      -
      bin/all-run.sh -v 3 bin/readme2index.sh -v 1
      +
      bin/all-run.sh -v 3 bin/readme2index.sh -v 1

      all-years.sh

      Run a command on all IOCCC years.

      For example:

      -
      bin/all-years.sh -v 1 bin/gen-year-index.sh -v 1
      +
      bin/all-years.sh -v 1 bin/gen-year-index.sh -v 1

      Or for example:

      -
      bin/all-years.sh -v 1 bin/chk-entry.sh
      +
      bin/all-years.sh -v 1 bin/chk-entry.sh

      We recommend that this tool be invoked via the top level Makefile:

      -
      make verify_entry_files
      +
      make verify_entry_files

      chk-entry.sh

      Check that files required by an entry match the entry’s manifest as found in .entry.json.

      For example:

      -
      bin/chk-entry.sh 2020/ferguson1
      +
      bin/chk-entry.sh 2020/ferguson1

      filelist.entry.json.awk

      Generate the list of files in the entry’s manifest, .entry.json.

      For example:

      -
      awk -f bin/filelist.entry.json.awk 2020/ferguson1/.entry.json
      +
      awk -f bin/filelist.entry.json.awk 2020/ferguson1/.entry.json

      gen-authors.sh

      Generate the top level /authors.html page.

      Usage:

      -
      bin/gen-authors.sh -v 1
      +
      bin/gen-authors.sh -v 1

      gen-location.sh

      Generate the top level /location.html page.

      Usage:

      -
      bin/gen-location.sh -v 1
      +
      bin/gen-location.sh -v 1

      gen-other-html.sh

      Generate entry HTML files (other than README.md to index.html) from markdown files.

      Usage:

      -
      bin/gen-other-html.sh -v 1
      +
      bin/gen-other-html.sh -v 1

      gen-sitemap.sh

      Generate an XML sitemap for the IOCCC web site.

      Usage:

      -
      bin/gen-sitemap.sh -v 1
      +
      bin/gen-sitemap.sh -v 1

      We recommend that this tool be invoked via the top level Makefile:

      -
      make gen_sitemap
      +
      make gen_sitemap

      gen-status.sh

      Generate status.json according to the modification dates of status.json and news.html.

      Without argument, the contest_status is unchanged.

      Usage:

      -
      bin/gen-status.sh -v 1
      +
      bin/gen-status.sh -v 1

      To force the contest_status to be closed:

      -
      bin/gen-status.sh -v 1 closed
      +
      bin/gen-status.sh -v 1 closed

      To force the contest_status to be open:

      -
      bin/gen-status.sh -v 1 open
      +
      bin/gen-status.sh -v 1 open

      To see other valid statuses:

      -
      bin/gen-status -h
      +
      bin/gen-status -h

      We recommend that this tool be invoked via the top level Makefile:

      -
      make gen_status
      +
      make gen_status

      gen-top-html.sh

      Generate a number of top level HTML pages for the IOCCC web sites.

      Usage:

      -
      bin/gen-top-html.sh -v 1
      +
      bin/gen-top-html.sh -v 1

      Examples of top level HTML pages built by this tool include:

      We recommend that this tool be invoked via the top level Makefile:

      -
      make gen_top_html
      +
      make gen_top_html

      gen-year-index.sh

      Generate an index.html page for an given IOCCC year.

      Usage:

      -
      bin/gen-year-index.sh -v 1 2020
      +
      bin/gen-year-index.sh -v 1 2020

      We recommend that this tool be invoked via the top level Makefile:

      -
      make gen_year_index
      +
      make gen_year_index

      gen-years.sh

      Generate the top level /years.html page.

      Usage:

      -
      bin/gen-years.sh -v 1
      +
      bin/gen-years.sh -v 1

      We recommend that this tool be invoked via the top level Makefile:

      -
      make gen_years
      +
      make gen_years

      md2html.sh

      This is the primary tool that forms IOCCC generated HTML content from markdown files (permanent markdown files or temporarily generated @@ -247,19 +248,19 @@ 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 1
      +
      bin/all-run.sh -v 3 bin/quick-readme2index.sh -v 1

      NOTE: This command assumes that the relative modification times for index.hmtl, .entry.json, and index.html are correct. If in doubt, use:

      We recommend that this tool be invoked via the top level Makefile:

      -
      make quick_entry_index
      +
      make quick_entry_index

      readme2index.sh

      Convert an entry README.md into entry directory index.html.

      -
      bin/all-run.sh -v 3 bin/readme2index.sh -v 1
      +
      bin/all-run.sh -v 3 bin/readme2index.sh -v 1

      To build index.html files for all entries:

      -
      bin/all-run.sh -v 3 bin/readme2index.sh -v 1
      +
      bin/all-run.sh -v 3 bin/readme2index.sh -v 1

      We recommend that this tool be invoked via the top level Makefile:

      -
      make entry_index
      +
      make entry_index

      status2html.sh

      Convert status.json into HTML.

      This tool is a ‘before tool’ (-b tool) that is intended @@ -274,11 +275,11 @@ We sort with lines starting with ! fourth.

      sort.gitignore.sh

      Sort a .gitignore in a entry directory.

      Usage:

      -
      bin/sort.gitignore.sh -v 1 YYYY/dir
      +
      bin/sort.gitignore.sh -v 1 YYYY/dir

      Suggested usage:

      -
      bin/all-run.sh bin/sort.gitignore.sh -v 1
      +
      bin/all-run.sh bin/sort.gitignore.sh -v 1

      We recommend that this tool be invoked via the top level Makefile:

      -
      make sort_gitignore
      +
      make sort_gitignore

      subst.default.sh

      Print default substitutions.

      subst.entry-index.sh

      @@ -292,33 +293,33 @@ We sort with lines starting with ! fourth.

      tar-entry.sh

      Form a compressed tarball for an entry.

      Usage:

      -
      bin/tar-entry.sh -v 1 YYYY/dir
      +
      bin/tar-entry.sh -v 1 YYYY/dir

      Suggested usage:

      -
      bin/all-run.sh -v 3 bin/tar-entry.sh -v 1 -W
      +
      bin/all-run.sh -v 3 bin/tar-entry.sh -v 1 -W

      tar-year.sh

      Form a compressed tarball for an IOCCC year.

      Usage:

      -
      bin/tar-year.sh -v 1 YYYY
      +
      bin/tar-year.sh -v 1 YYYY

      Suggested usage:

      -
      bin/all-years.sh -v 3 bin/tar-year.sh -v 1 -W
      +
      bin/all-years.sh -v 3 bin/tar-year.sh -v 1 -W

      We recommend that this tool be invoked via the top level Makefile:

      -
      make form_year_tarball
      +
      make form_year_tarball

      untar-entry.sh

      Untar an entry’s a compressed tarball.

      Usage:

      -
      bin/untar-entry.sh -v 1 YYYY/dir
      +
      bin/untar-entry.sh -v 1 YYYY/dir

      Suggested usage:

      -
      bin/all-run.sh -v 3 bin/untar-entry.sh -v 1
      +
      bin/all-run.sh -v 3 bin/untar-entry.sh -v 1

      We recommend that this tool be invoked via the top level Makefile:

      -
      make untar_entry_tarball
      +
      make untar_entry_tarball

      untar-year.sh

      Untar an IOCCC year’s compressed tarball.

      Usage:

      -
      bin/untar-year.sh -v 1 YYYY
      +
      bin/untar-year.sh -v 1 YYYY

      Suggested usage:

      -
      bin/all-years.sh -v 3 bin/untar-year.sh -v 1
      +
      bin/all-years.sh -v 3 bin/untar-year.sh -v 1

      We recommend that this tool be invoked via the top level Makefile:

      -
      make untar_year_tarball
      +
      make untar_year_tarball

      How IOCCC HTML content is built

      The md2html.sh tool is the primary tool that is used to form all IOCCC related HTML pages for the official IOCCC web @@ -335,16 +336,16 @@ built uses, by default, files from the inc directory the file name form:

      *.default.html

      By using command line options of the form:

      -
      -H phase=name
      +
      -H phase=name

      where phase is the name of an HTML phase, a non-default file may be used. For example:

      -
      -H topnav=up2index
      +
      -H topnav=up2index

      will 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=.
      +
      -H footer=.

      will cause no HTML content to be produced during the footer HTML phase.

      HTML phases

      The following HTML phase files are used to build HTML content:

      @@ -560,7 +561,7 @@ IOCCC. Each author has EXACTLY ONE author_handle.< a POSIX safe string with the addition of + (for technical reasons beyond this document). In particular, the author_handle must be an ASCII string that matches this regexp:

      -
      ^[0-9A-Za-z][0-9A-Za-z._+-]*$"
      +
      ^[0-9A-Za-z][0-9A-Za-z._+-]*$"

      Default author_handle’s do not have multiple consecutive _ (underscore) characters. Nevertheless, multiple consecutive _ (underscore) characters are allowed. Contest submitters who wish to override the author_handle may do so.

      @@ -581,7 +582,7 @@ 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]*$
      +
      Anonymous_[0-9][0-9][0-9][0-9][.0-9]*$

      entry

      An IOCCC entry that won an award for a given IOCCC.

      An entry has one more more authors.

      @@ -598,7 +599,7 @@ may be limited to previous entrys that used them.

      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]
      +
      [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 directory will have a file under it named:

      @@ -608,7 +609,7 @@ instance, 2020/.year has the string: 2020dir

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

      A dir is a string that matches this regexp:

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

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

      entry_id

      diff --git a/bin/md2html.sh b/bin/md2html.sh index cc20a5a15..91c05248a 100755 --- a/bin/md2html.sh +++ b/bin/md2html.sh @@ -141,7 +141,7 @@ shopt -s lastpipe # run last command of a pipeline not executed in the backgroun # set variables referenced in the usage message # -export VERSION="1.2.1 2024-04-13" +export VERSION="1.3 2024-04-14" NAME=$(basename "$0") export NAME export V_FLAG=0 @@ -1678,43 +1678,88 @@ fi # input.md is -, we will need to capture standard input into a new temporary file # -if [[ $INPUT_MD == - ]]; then - export TMP_INPUT_MD=".$NAME.$$.stdin.md" +if [[ -z $NOOP ]]; then + if [[ $INPUT_MD == - ]]; then + export TMP_INPUT_MD=".$NAME.$$.stdin.md" + if [[ $V_FLAG -ge 5 ]]; then + echo "$0: debug[5]: temporary stdin file: $TMP_INPUT_MD" 1>&2 + fi + trap 'rm -f $TMP_SED_SCRIPT $TMP_PHASE $TMP_INDEX_HTML $TMP_INPUT_MD; exit' 0 1 2 3 15 + rm -f "$TMP_INPUT_MD" + if [[ -e $TMP_INPUT_MD ]]; then + echo "$0: ERROR: cannot remove temporary stdin file: $TMP_INPUT_MD" 1>&2 + exit 20 + fi + :> "$TMP_INPUT_MD" + if [[ ! -e $TMP_INPUT_MD ]]; then + echo "$0: ERROR: cannot create temporary stdin file: $TMP_INPUT_MD" 1>&2 + exit 21 + fi + + # capture standard input into the temporary stdin file + # + if [[ $V_FLAG -ge 5 ]]; then + echo "$0: debug[5]: about to capture stdin into: $TMP_INPUT_MD" 1>&2 + fi + cat > "$TMP_INPUT_MD" + status="$?" + if [[ $status -ne 0 ]]; then + echo "$0: ERROR: cat into stdin file: $TMP_INPUT_MD failed, error code: $status" 1>&2 + exit 22 + fi + + # replace 'input.md' of - with temporary stdin file + # + if [[ $V_FLAG -ge 5 ]]; then + echo "$0: debug[5]: input.md arg was - is now: $TMP_INPUT_MD" 1>&2 + fi + INPUT_MD="$TMP_INPUT_MD" + fi +elif [[ $V_FLAG -ge 3 ]]; then + echo "$0: debug[3]: because of -n, temporary stdin file is not formed: $TMP_INPUT_MD" 1>&2 +fi + +# strip commented language after markdown code block +# +if [[ -z $NOOP ]]; then + + export TMP_STRIPPED_MD=".$NAME.$$.stripped.md" if [[ $V_FLAG -ge 5 ]]; then - echo "$0: debug[5]: temporary stdin file: $TMP_INPUT_MD" 1>&2 + echo "$0: debug[5]: temporary stripped markdown file: $TMP_STRIPPED_MD" 1>&2 fi - trap 'rm -f $TMP_SED_SCRIPT $TMP_PHASE $TMP_INDEX_HTML $TMP_INPUT_MD; exit' 0 1 2 3 15 - rm -f "$TMP_INPUT_MD" - if [[ -e $TMP_INPUT_MD ]]; then - echo "$0: ERROR: cannot remove temporary stdin file: $TMP_INPUT_MD" 1>&2 - exit 20 + trap 'rm -f $TMP_SED_SCRIPT $TMP_PHASE $TMP_INDEX_HTML $TMP_INPUT_MD $TMP_STRIPPED_MD; exit' 0 1 2 3 15 + rm -f "$TMP_STRIPPED_MD" + if [[ -e $TMP_STRIPPED_MD ]]; then + echo "$0: ERROR: cannot remove temporary stripped markdown file: $TMP_STRIPPED_MD" 1>&2 + exit 23 fi - :> "$TMP_INPUT_MD" - if [[ ! -e $TMP_INPUT_MD ]]; then - echo "$0: ERROR: cannot create temporary stdin file: $TMP_INPUT_MD" 1>&2 - exit 21 + :> "$TMP_STRIPPED_MD" + if [[ ! -e $TMP_STRIPPED_MD ]]; then + echo "$0: ERROR: cannot create temporary stripped markdown file: $TMP_STRIPPED_MD" 1>&2 + exit 24 fi - # capture standard input into the temporary stdin file + # strip commented language after markdown code block # - if [[ $V_FLAG -ge 5 ]]; then - echo "$0: debug[5]: about to capture stdin into: $TMP_INPUT_MD" 1>&2 - fi - cat > "$TMP_INPUT_MD" + # We do not want the sed extended regular expression to be expanded, so + # we put it inside single quotes. + # + # SC2016 (info): Expressions don't expand in single quotes, use double quotes for that. + # https://www.shellcheck.net/wiki/SC2016 + # shellcheck disable=SC2016 + sed -E -e 's/^```[[:space:]]/```/' "$INPUT_MD" > "$TMP_STRIPPED_MD" status="$?" if [[ $status -ne 0 ]]; then - echo "$0: ERROR: cat into stdin file: $TMP_INPUT_MD failed, error code: $status" 1>&2 - exit 22 + echo "$0: ERROR: strip commented language after markdown code block from $INPUT_MD into file:" \ + "$TMP_INPUT_MD failed, error code: $status" 1>&2 + exit 25 fi - # replace 'input.md' of - with temporary stdin file - # - if [[ $V_FLAG -ge 5 ]]; then - echo "$0: debug[5]: input.md arg was - is now: $TMP_INPUT_MD" 1>&2 - fi - INPUT_MD="$TMP_INPUT_MD" +elif [[ $V_FLAG -ge 3 ]]; then + echo "$0: debug[3]: because of -n, temporary stripped markdown file is not formed: $TMP_INPUT_MD" 1>&2 fi + ####################################### # HTML phase 0: inc/top.__name__.html # ####################################### @@ -2045,13 +2090,13 @@ if [[ -n $PANDOC_WRAPPER ]]; then # if [[ $V_FLAG -ge 5 ]]; then echo "$0: debug[5]: about to execute:" \ - "$PANDOC_WRAPPER ${P_OPTION[*]} -- $INPUT_MD - >> $TMP_INDEX_HTML" 1>&2 + "$PANDOC_WRAPPER ${P_OPTION[*]} -- $TMP_STRIPPED_MD - >> $TMP_INDEX_HTML" 1>&2 fi - "$PANDOC_WRAPPER" "${P_OPTION[@]}" -- "$INPUT_MD" - >> "$TMP_INDEX_HTML" + "$PANDOC_WRAPPER" "${P_OPTION[@]}" -- "$TMP_STRIPPED_MD" - >> "$TMP_INDEX_HTML" status="$?" if [[ $status -ne 0 ]]; then echo "$0: ERROR: pandoc wrapper tool:" \ - "$PANDOC_WRAPPER ${P_OPTION[*]} -- $INPUT_MD - failed," \ + "$PANDOC_WRAPPER ${P_OPTION[*]} -- $TMP_STRIPPED_MD - failed," \ "error code: $status" 1>&2 exit 100 fi @@ -2319,9 +2364,10 @@ fi # file cleanup # if [[ -z $NOOP ]]; then - rm -f -- "$TMP_SED_SCRIPT" "$TMP_PHASE" "$TMP_INDEX_HTML" "$TMP_INPUT_MD" + rm -f -- "$TMP_SED_SCRIPT" "$TMP_PHASE" "$TMP_INDEX_HTML" "$TMP_INPUT_MD" "$TMP_STRIPPED_MD" elif [[ $V_FLAG -ge 3 ]]; then - echo "$0: debug[3]: because of -n, disabled: rm -f -- $TMP_SED_SCRIPT $TMP_PHASE $TMP_INDEX_HTML $TMP_INPUT_MD" 1>&2 + echo "$0: debug[3]: because of -n, disabled: rm -f --" \ + "$TMP_SED_SCRIPT $TMP_PHASE $TMP_INDEX_HTML $TMP_INPUT_MD $TMP_STRIPPED_MD" 1>&2 fi # All Done!!! -- Jessica Noll, Age 2 diff --git a/bugs.html b/bugs.html index b63817adf..9ec6290cc 100644 --- a/bugs.html +++ b/bugs.html @@ -83,6 +83,7 @@ @@ -417,7 +418,7 @@ own fix or suggest that they’re fixed!

      Information: 1984/decot/index.html

      The purpose of this program is to print out a string of rubbish. In particular you should see something like:

      -
          $ ./decot
      +
          $ ./decot
           '",x);      /*
           \

      without a newline after the \. This is not a bug.

      @@ -479,7 +480,7 @@ operators like /. To see what operators are supported check the sou

      With version 2 it sometimes segfaults even with the same input where other times it does not. We don’t believe this is because of the fix that lets some versions be compiled with clang. An example invocation is:

      -
          ./ver2 < westley.c
      +
          ./ver2 < westley.c

      A useful note on changing/fixing this program

      It should be noted that in additional to rot13 names there is code that is the reverse of other code (also wrt names). See the source file and the index.html @@ -511,12 +512,12 @@ the code. But it’s trickier than that as one might expect.

      The comments are processed too. Furthermore it happens that the last line becomes the first and the first line becomes the last! Now if you look at the code you’ll see on the first line:

      -
          /**//*/};)/**/pain(*//**/tang         ,gnat/**//*/,ABBA~,0-0(avnz;)0-0,tang,raeN
      +
          /**//*/};)/**/pain(*//**/tang         ,gnat/**//*/,ABBA~,0-0(avnz;)0-0,tang,raeN

      In ver0 it’ll be the same but the others are more interesting.

      In ver1 you’ll see on the last line:

      -
          cnva((vag)NOON&2/*//*\\**/,gnat,tang        ,NOON/**//*/(niam/**/);}/*//**/
      +
          cnva((vag)NOON&2/*//*\\**/,gnat,tang        ,NOON/**//*/(niam/**/);}/*//**/

      and on the first line:

      -
          /**//*/};)/**/cnva(*//**/gnat         ,tang/**//*/,NOON~,0-0(niam;)0-0,gnat,enrA
      +
          /**//*/};)/**/cnva(*//**/gnat         ,tang/**//*/,NOON~,0-0(niam;)0-0,gnat,enrA

      Observe that the ROT13 of pain is cnva and the ROT13 of main is znva. The ROT13 of NOON is ABBA. vag is ROT13 of int, gnat and tang are ROT13 of each other as well which is the reverse of the original (this is not @@ -563,7 +564,7 @@ Enjoy! :-)

      A point worth considering is that as the number passed into the program gets bigger the number of lines of output gets substantially larger and it takes much more time and resources to run as well. For instance:

      -
          $ for n in $(seq 1 18); do echo "$n"; echo "$n" | time "./baruch" | wc -l | sed -E -e 's/[[:space:]]//g'; done
      +
          $ for n in $(seq 1 18); do echo "$n"; echo "$n" | time "./baruch" | wc -l | sed -E -e 's/[[:space:]]//g'; done
           1
           3
           ./baruch  0.00s user 0.00s system 5% cpu 0.115 total
      @@ -628,11 +629,11 @@ fixed some issues in this program and Yus
       Endoh provided the btoa
       script but it appears there is a bug in this entry. The judges wrote that to
       test the entry one can do:

      -
          echo "Quartz glyph jocks vend, fix, BMW." | compress | ./btoa | ./jaw
      +
          echo "Quartz glyph jocks vend, fix, BMW." | compress | ./btoa | ./jaw

      which should apply the identity transformation to a minimal holoalphabetic sentence.

      But doing this shows instead:

      -
          echo "Quartz glyph jocks vend, fix, BMW." | compress | ./btoa | ./jaw
      +
          echo "Quartz glyph jocks vend, fix, BMW." | compress | ./btoa | ./jaw
           a얖?)V...?????777??hC??h??-? )SSSSXXX????r?L=???*?-???ppp,,,?R
           ?j
           111-)))? '..F@E
      @@ -640,7 +641,7 @@ sentence.

      ..F..F.?n,,,,,L@E$

      Notice how there’s no newline at the end: that final $ is the prompt.

      If one does, however:

      -
          echo "Quartz glyph jocks vend, fix, BMW." | compress | ./btoa | ./jaw | ./jaw
      +
          echo "Quartz glyph jocks vend, fix, BMW." | compress | ./btoa | ./jaw | ./jaw

      they will get just

          oops

      which seems to be an error message (one of the fixes was to make it not use @@ -698,7 +699,7 @@ or do something funny. For instance adsleep and adbasename

      Another thing is that the code:

      -
          printf((W,Y));
      +
          printf((W,Y));

      appears to be wrong because W is a FILE * and Y is a char[] but if one changes it to use fprintf() on the file (which, incidentally, is opened in read only mode which is another reason) with the %s specifier it will make @@ -727,11 +728,11 @@ have to remove the outer () pair.

      the first factor is 101 and is usually found in an instant.

      A quick debugging session from Cody suggests that the problem with this value is that:

      -
          if ( ppp->qq!=48 ) return;
      +
          if ( ppp->qq!=48 ) return;

      is never reached because the value is never 48 (it is in other cases but not for the example input). It varies in value at this point. Observe that the next lines of code are:

      -
          while ( ppp->qq==48 )
      +
          while ( ppp->qq==48 )
           {
               printf("%ld\n",qqq-45);
               *pp = ppp;
      @@ -742,7 +743,7 @@ it’s not it should not proceed at all, not even to go past that loop. In other
       words that loop should always be entered for at least one iteration. The check
       for the != 48 is also required.

      Perhaps more useful to know is that at this point in the code the code:

      -
          if ((((( !(aa=setjmp(ppp->ppp))||aa==aaaaaa )))))
      +
          if ((((( !(aa=setjmp(ppp->ppp))||aa==aaaaaa )))))

      appears to be entered because of the return value of setjmp(), not the other condition.

      The alt version does fix the problem but it is not obfuscated and not like the @@ -852,11 +853,11 @@ terminal columns is >= 80 it will display properly, rather than having to wra at 80 columns. However due to the nature of the program if the terminal is < 80 in column width it will not display right. To see the number of columns in your terminal try:

      -
          echo $COLUMNS
      +
          echo $COLUMNS

      STATUS: known bug - please help us fix

      The author suggested that the alternate version, which Cody added (but fixed for modern systems), should print

      -
          main(l,a,n,d)...
      +
          main(l,a,n,d)...
           [A M E R I C A]...

      …going down the left edge if your terminal auto-wraps at 80 characters.

      This however does not seem to work. It does not appear to be because of the fix @@ -910,7 +911,7 @@ through ctrl-c or such.

      fixed except for an exercise to yourself, should you wish to try.

      This program uses system(3) so if you provide invalid characters in the question you might cause an error. For instance don’t do this:

      -
          $ ./schnitzi schnitzi.info
      +
          $ ./schnitzi schnitzi.info
           This program answers questions about paragraphs
           of text posed to it in English.  It is written
           in C.  Mark Schnitzius is the author of this
      @@ -983,10 +984,10 @@ like getting to a place that the next contest can run must be done first.

      how this entry works, which will be necessary if this entry is to be fixed, below.

      You might wish to run the command:

      -
          make diff_orig_prog
      +
          make diff_orig_prog

      to see what had to change for the buffer size, when looking at the below. Furthermore you will want to look at:

      -
          diff schnitzi.alt.c schnitzi.alt2.c
      +
          diff schnitzi.alt.c schnitzi.alt2.c

      as the fgets() version can compile it just can’t generate compilable code (let alone using fgets()) when fed itself (to reiterate, just changing the call to fgets(3) does not mean it can compile and there’s a further problem in that @@ -1023,7 +1024,7 @@ o h >

      If you join the lines you end up with:

      -
      #include <stdio.h>
      +
      #include <stdio.h>

      If you look at column 25 which is the end of the word ‘mh111’ and you go down to the next row you’ll see a 0 and if you go one row down another 0. This is the buffer size, 100, for u! The column to the left is the same for the t @@ -1042,7 +1043,7 @@ size but that only works on the original source.

      To say just how sensitive this entry is: even a space, lack of space or a character, wrong character, lack of character or character in the wrong place can cause a compilation error! Make sure that the output of:

      -
          ./schnitzi < schnitzi.c
      +
          ./schnitzi < schnitzi.c

      can be compiled and the output of that new program when fed itself can also be compiled!

      1994/shapiro

      @@ -1101,11 +1102,11 @@ it calls getchar() via the pointer m. So this is a fea

      Source code: 1995/leo/leo.c

      Information: 1995/leo/index.html

      The judges suggested that the following commands should result in output:

      -
          ./leo 1 | cat - /dev/tty | gs -
      +
          ./leo 1 | cat - /dev/tty | gs -
       
           ./leo 37 80 | cat - /dev/tty | gs -

      The first one can work if one does instead:

      -
          echo "" | ./leo 1 > foo.ps
      +
          echo "" | ./leo 1 > foo.ps
           gs foo.ps

      but it is supposed to work in the pipeline as is. The second one does not appear to work at all even if one redirects to a file (like the workaround for the @@ -1141,7 +1142,7 @@ it was instead requiring a login / password.

      almost be done except that some of the output of the try.sh is wrong, especially the last one.

      This diff almost does it but not quite:

      -
          diff --git i/1996/huffman/huffman.c w/1996/huffman/huffman.c
      +
          diff --git i/1996/huffman/huffman.c w/1996/huffman/huffman.c
           index a5745bc7f4fa28b834c004f4cf19633e40ad9165..5e5e5334f33f9dbd95c70eddece3189d9bcff5e9 100644
           --- i/1996/huffman/huffman.c
           +++ w/1996/huffman/huffman.c
      @@ -1200,7 +1201,7 @@ to the page as well! You’ll have IOCCC fame for reviving a pootifier! :-)

      Information: 1998/schnitzi/index.html

      A point worth considering is that as the number passed into the program gets bigger the number of lines of output gets substantially larger. For instance:

      -
          $ ./schnitzi 9|wc -l
      +
          $ ./schnitzi 9|wc -l
             771999

      The larger the number the bigger the file can become too, even becoming gigabytes in size. The range is checked for >0 && <27 as not having this can @@ -1216,29 +1217,29 @@ is in the index.html file as something to try and ponder.

      Source code: 2000/dlowe/dlowe.c

      Information: 2000/dlowe/index.html

      The author gives an example command:

      -
          echo "7 P 6 d P P 8 p" | ./dlowe | tr 876 tpo
      +
          echo "7 P 6 d P P 8 p" | ./dlowe | tr 876 tpo

      which should print out poot but it doesn’t, not in linux and not in macOS.

      In linux it doesn’t crash but it doesn’t print anything out either.

      In macOS it crashes; it might appear to not crash in macOS but this is because of the pipeline. If you remove the | tr 876 tpo part of the command you will see that it does indeed crash!

      The reason for this not working is really strange.

      -
          $ echo "7 P 6 d P P 8 p" | ./dlowe
      +
          $ echo "7 P 6 d P P 8 p" | ./dlowe
           7668
           $ echo "7 P 6 d P P 8 p" | ./dlowe | grep 7
           $

      Why? Is it writing to stdout? Let’s try some other things:

      -
          $ echo 7668 | tr 876 tpo
      +
          $ echo 7668 | tr 876 tpo
           poot

      Okay so we know that it SHOULD work. But we also know something funny is going on with stdout and the entry. Another experiment:

      -
          $ echo "7 P 6 d P P 8 p" | ./dlowe 1>&2 | grep 7
      +
          $ echo "7 P 6 d P P 8 p" | ./dlowe 1>&2 | grep 7
           7668

      Okay so now it sees it, grep. But watch!

      -
          $ echo "7 P 6 d P P 8 p" | ./dlowe 2>foo 1>&1
      +
          $ echo "7 P 6 d P P 8 p" | ./dlowe 2>foo 1>&1
           7668
           $ cat foo

      .. so at this hour it does appear to be writing to stdout but yet somehow it doesn’t? But watch:

      -
          $ echo "7 P 6 d P P 8 p" | ./dlowe 1>foo 1>&1
      +
          $ echo "7 P 6 d P P 8 p" | ./dlowe 1>foo 1>&1
           $ cat foo
           $

      Well this explains why the tr does not transliterate it to poot but why is @@ -1247,11 +1248,11 @@ this happening? Why can’t it be redirected to another file even?

      time is writing to stdout one bug could be fixed. Maybe it’s the perl messing with things but we don’t know.

      Other commands do work, however, and give the appropriate output, such as:

      -
          $ echo 1 2 + p | ./dlowe
      +
          $ echo 1 2 + p | ./dlowe
           3

      so something is wrong with some commands/operators.

      Another feature that does work in linux is:

      -
          $ echo poot | ./dlowe
      +
          $ echo poot | ./dlowe
           poot was here!

      Can you help fix these problems?

      Cody provided the C code that creates an unformatted perl script that will just @@ -1260,7 +1261,7 @@ below for how to go further than unimplemented) which is the exact perl from the C program except that it has the #!/usr/bin/env perl and use warnings; as well. A note below might suggest that doing this creates incomplete perl. Anyway:

      -
          #include <stdio.h>
      +
          #include <stdio.h>
           int main(void)
           {
               printf("#!/usr/bin/env perl\nuse warnings;_:$_=               <> ; defined               or exit; @ARGV"
      @@ -1281,7 +1282,7 @@ Anyway:

      "=$SS[$#SS-1]}"); }

      Compiling this you can generate:

      -
          #!/usr/bin/env perl
      +
          #!/usr/bin/env perl
           use warnings;_:$_=               <> ; defined               or exit; @ARGV=split; __:$_=             shift;defined or             goto _; chomp ;(m*^\x70oO\x74$*i)?(print "$_ w\x61s h\145r\x65!\n"):((m*^\s\*(-?\d+(\.\d+)?)\s\*$*)?(push@SS            ,$1):(&{chr(((ord)%39)+3**4)x2             } )); goto __;             sub ff { @SS= ()} sub __{print            "stack empty\n"} sub ss{$#SS<0 and goto &            __; print $SS[$#SS]."\n"} sub SS{ $#SS<0              and goto &__ ;              print pop @SS}sub _ { print              "divide by zero\n"}sub ii{map{ print"$_\n" } reverse            @SS} sub AUTOLOAD { print"unimplemented\n"} sub gg{ $#SS<0 and goto              &__;push@SS,$SS[            $#SS]} sub uu{ $#SS<1 and goto            &__;$SS[ $#SS]+=            $SS[$#SS-1];$SS[$#SS-1]=$SS[$#SS]-$SS[$#SS-1]; $SS[$#SS]-=$SS[$#SS-1]}

      Here is example input/output:

          p
      @@ -1299,14 +1300,14 @@ Anyway:

      how this does not happen in the C program in linux!) but if one uses ‘p’ by itself it will print what’s on the stack (for example).

      To not get ‘unimplemented’ you can remove from the perl:

      -
          sub AUTOLOAD { print"unimplemented\n"}
      +
          sub AUTOLOAD { print"unimplemented\n"}

      (Note that the author stated this was used for exception handling so another possibility is that the C code doesn’t generate the correct perl and indeed even spaces is known to break the perl in at least one way, syntax errors, but maybe others too.)

      Here is an example run of several operations in the perl script after removing that subroutine:

      -
          $ echo 5 5 p | ./dlowe.pl
      +
          $ echo 5 5 p | ./dlowe.pl
           5
           $ echo 5 5 + p | ./dlowe.pl
           5
      @@ -1337,7 +1338,7 @@ works in the code, at least in some cases.

      invalid input. But as can be seen by the input I (Cody) gave the input is not actually incorrect. It is also curious to note that it ends up printing what’s on the stack at that point:

      -
          $ echo 5 5 + p | ./dlowe.pl
      +
          $ echo 5 5 + p | ./dlowe.pl
           unimplemented
           5

      which might (?) suggest that the + operator is unimplemented. Unfortunately it @@ -1347,7 +1348,7 @@ has been many years since I have used perl and I was never a guru either.

      they said is in Perl_sv_upgrade. As this is documented it is not considered a bug to be fixed. For the curious this will crash in macOS. Cody notes that the code that crashes is:

      -
          perl_eval_sv
      +
          perl_eval_sv
           (newSVpv("_:$_=               <> ; defined               or exit; @ARGV"
           "=split; __:$_=             shift;defined or             goto _; chomp "
           ";(m*^\\x70oO"              "\\x74$*i)?(pri"              "nt \"$_ w\\x"
      @@ -1366,14 +1367,14 @@ code that crashes is:

      "=$SS[$#SS-1]} ",0),0 );

      and in particular it appears that it is the perl itself. In other words if one changes it to be:

      -
          perl_eval_sv(newSVpv("",0),0);
      +
          perl_eval_sv(newSVpv("",0),0);

      it will not crash. But of course it won’t do anything either. So it’s more specifically that the call to newSVpv() crashes the code but INSIDE (key point!) the call to perl_eval_sv() that does it. Given what the author stated and that the version of perl is < than 5.6.0 which the author states can crash this makes sense.

      The example command above should print:

      -
          $ echo "13 14 15 16 17 + - * / p" | ./dlowe
      +
          $ echo "13 14 15 16 17 + - * / p" | ./dlowe
           -0.0515873015873016

      and that’s what it shows in linux.

      Note that with different perl libraries in macOS (for instance from @@ -1386,7 +1387,7 @@ of 92 warnings! Nonetheless neither works okay and both crash.

      Source code: 2000/primenum/primenum.c

      Information: 2000/primenum/index.html

      This program does not do what you might think it does! Running it like:

      -
          ./primenum 13
      +
          ./primenum 13

      will seemingly wait for input exactly because it is waiting for input. See the index.html file or look at the source.

      Although the name of the program suggests it prints prime numbers this is not @@ -1557,17 +1558,17 @@ identified by R.

      Since the game never ends properly the score is not printed either.

      It appears that the crash happens in more than one place. For instance it has happened at

      -
          XCheckMaskEvent(d, 4,&e)
      +
          XCheckMaskEvent(d, 4,&e)

      but it’s also happened at

      -
          else XDrawPoint(d    ,w,g,(l.s+=l.a)>>9,    h=(l.c+=l.b)>>9)
      +
          else XDrawPoint(d    ,w,g,(l.s+=l.a)>>9,    h=(l.c+=l.b)>>9)

      In both cases the pointer d was corrupted:

          (lldb) p d
           (Display *) 0x0000000000000001

      It is believed that it also happened at

      -
          XDrawString(d,w,g,W/3,H/2,m,B);
      +
          XDrawString(d,w,g,W/3,H/2,m,B);

      in J() and for the same reason.

      The loop seems to be stuck in the call to usleep(3) like:

      -
          usleep(p*200);
      +
          usleep(p*200);

      which happens to be in a while() loop.

      There is a way to get the code to crash. If you don’t do anything until everything is destroyed (where you’d lose the game if it ended) and then you @@ -1588,7 +1589,7 @@ sleeping.

      Information: 2004/gavin//index.html

      Segmentation fault will occur in some systems. For instance on macOS with the arm64 chip:

      -
          ./gavin > kernel
      +
          ./gavin > kernel

      When trying to link gavin.o to produce sh, the linker generates:

          Undefined symbols for architecture arm64:
             "start", referenced from:
      @@ -1600,7 +1601,7 @@ you have a fix? We welcome your help!

      Recent 2004/gavin mods:

      Although not related some recent changes were made to 2004/gavin to let it compile under clang. The following patch was applied:

      -
          diff --git a/2004/gavin/gavin.c b/2004/gavin/gavin.c
      +
          diff --git a/2004/gavin/gavin.c b/2004/gavin/gavin.c
           index c967b7e..2082b49 100644
           --- a/2004/gavin/gavin.c
           +++ b/2004/gavin/gavin.c
      @@ -1625,7 +1626,7 @@ compile under clang. The following patch was applied:

      Z, k = K; if (!t)

      The original Makefile from 2004 had the following to say about this entry:

      -
          # Special flags for the gavin entry
      +
          # Special flags for the gavin entry
           #
           # FYI: Older versions of GCC have a bug in -O2 optimization, hence -O1
           #
      @@ -1792,7 +1793,7 @@ used decimal mode, or any of the “undocumented” instructions.

      obnoxious in macOS as it shows it at runtime (redirecting stderr to /dev/null will silence it). The following diff will almost work but it crashes with at least computer.tofu input file:

      -
          12a13
      +
          12a13
           #define gets(c) fgets((c),PI,stdin)&&(((c)[strlen((c))-1]='\0'),c!=NULL)

      2006/borsanyi

      STATUS: INABIAF - please DO NOT fix

      @@ -1920,14 +1921,14 @@ macOS. A few things that were noticed depending on asan sanitisers With address in linux:

          richards.c:101:9: runtime error: null pointer passed as argument 2, which is declared to never be null

      but it actually works. This code is:

      -
          } else
      +
          } else
                       p++;
               W(c)} /* LINE 101 */
           }

      Okay but what about argument 2? Well W is defined as:

      -
          #define W(c) e=memmove(e,x[(u)c], y[(u)c])+y[(u)c];
      +
          #define W(c) e=memmove(e,x[(u)c], y[(u)c])+y[(u)c];

      so it would appear that

      -
          x[(u)c]
      +
          x[(u)c]

      (at least in my tired head?) is NULL. But why does it work then?

      NOTE: u is int.

      Under macOS (with the arm64 chip) we get:

      @@ -2007,7 +2008,7 @@ address allocated in macOS? Or is it?

      ==10983==ABORTING /bin/bash: line 1: 10983 Abort trap: 6 ./richards

      which corresponds to the code:

      -
          o rd(u v)
      +
          o rd(u v)
           {
               o *a = 0, **b = &a, **c = b + 32;
               x[v] = w;
      @@ -2266,7 +2267,7 @@ but this is not known.

      machine to find problems as it will allow you to verify what is correct and what is not. Again see his index.html for details. However it is also possible to not rely on the entry as the below shows. One should be able to do:

      -
          echo 'No. I want chocolate!' | ./prog > chocolate.raw
      +
          echo 'No. I want chocolate!' | ./prog > chocolate.raw
       
       ./prog e < chocolate.raw

      and get:

      @@ -2351,7 +2352,7 @@ loop printing whitespace.

      Source code: 2018/hou/prog.c

      Information: 2018/hou/index.html

      When you run it on a JSON file you will see something like:

      -
          $ ./prog < ioccc.json > ioccc.html
      +
          $ ./prog < ioccc.json > ioccc.html
           Assertion failed: (rulez), function C, file prog.c, line 124.
           Abort trap: 6

      (from say running ./try.sh) but this is expected and the fileioccc.html` will @@ -2446,7 +2447,7 @@ values but his implementation matches that of macOS and FreeBSD.

      that they can work but it might end up that the scripts don’t show any output anyway as they use the full alphabet. To test that it works one can have a script like:

      -
          LC_ALL=C  aäbcdefghijklmnoöpqrsßtuüvwxyz | LC_ALL=C grep .. | LC_ALL=de_DE.UTF-8 ./prog aäbcdefghijklmnoöpqrsßtuüvwxyz
      +
          LC_ALL=C  aäbcdefghijklmnoöpqrsßtuüvwxyz | LC_ALL=C grep .. | LC_ALL=de_DE.UTF-8 ./prog aäbcdefghijklmnoöpqrsßtuüvwxyz

      If you run this you should see:

          aäbcdefghijklmnoöpqrsßtuüvwxyz

      which shows it works. However as the de.sh script refers to all letters it can’t @@ -2478,7 +2479,7 @@ beginning.

      This program will also very likely leave sockets lying about in the current working directory. For instance Cody Boone Ferguson showed us this:

      -
          $ ls -al |grep '^s'
      +
          $ ls -al |grep '^s'
           srwxr-xr-x   1 cody  staff     0 Apr  6 08:19 .BDHFHALG=
           srwxr-xr-x   1 cody  staff     0 Apr  6 08:15 .CGGHAMGC=
           srwxr-xr-x   1 cody  staff     0 Apr  6 08:16 .CMDGAELH=
      @@ -2489,9 +2490,9 @@ manually. You shouldn’t have to worry about these being added to git: it seems
       to ignore sockets (it did at least in macOS).

      He provides the following tips on this situation. A simpler way to find sockets in the directory:

      -
          file .*|grep socket|cut -f1 -d:
      +
          file .*|grep socket|cut -f1 -d:

      To delete them you can do:

      -
          find . -exec file '{}' \;|grep socket|cut -f 1 -d: | xargs rm -f
      +
          find . -exec file '{}' \;|grep socket|cut -f 1 -d: | xargs rm -f

      though one might want to check that the program is not currently running. :-)

      2019/endoh

      STATUS: INABIAF - please DO NOT fix

      diff --git a/contact.html b/contact.html index 4342fdfe1..b19482f31 100644 --- a/contact.html +++ b/contact.html @@ -83,6 +83,7 @@ diff --git a/faq.html b/faq.html index bb0d90e1f..70c3537fa 100644 --- a/faq.html +++ b/faq.html @@ -83,6 +83,7 @@ @@ -382,7 +383,7 @@ command that is compatible with GNU Make version 3.81.

      FAQ 0.3: May I use a different source or compiled filename than prog.c or prog?

      While your entry’s source filename, as submitted, must be prog.c, your entry’s Makefile may copy prog.c to a different filename as part of the compiling/building process. For example:

      -
          all: desired_name
      +
          all: desired_name
       
           desired_name: desired_name.c
                   cc desired_name.c -o $@
      @@ -397,7 +398,7 @@ may copy prog.c to a different filename as part of the compiling/bu
       creates as part of the compiling/building process.

      You may also copy the compiled prog into a different file as part of compiling process. For example:

      -
          different_name: prog
      +
          different_name: prog
                   rm -f $@
                   cp -f prog $@

      FAQ 0.4: What platform should I assume for my entry?

      @@ -802,7 +803,7 @@ winning entries page.

      Section 3: Compiling and running IOCCC entries

      FAQ 3.0: What Makefile rules are available to build or clean up IOCCC entries?

      In general the best way to compile everything in an entry directory is to run:

      -
          make clobber all
      +
          make clobber all

      If you wish to compile every entry for every year you should go to the top level directory and run the same command as above, make clobber all.

      The all rule will build everything necessary except for the alternate @@ -811,10 +812,10 @@ alternate version exists. To build all the entries along with any alternate code you can do from the top level directory:

          make clobber everything

      If you wish to only build alternate code you can do:

      -
          make clobber alt
      +
          make clobber alt

      If you wish to not remove the entry binaries and only compile the additional alt versions:

      -
          make alt
      +
          make alt

      The following Makefile rules should be in all Makefiles:

      • all: build the entry programs (main program and any supplementary program)
      • @@ -971,7 +972,7 @@ the thanks-for-help.html file.

        Red Hat based Linux

        First, see the above note on installing and starting Xorg.

        Install Xorg and related packages:

        -
            sudo dnf install --skip-broken --best --exclude xorgxrdp --exclude xorgxrdp-glamor '*xorg*' 'libx*' 'libX*' 'fontconfig*'
        +
            sudo dnf install --skip-broken --best --exclude xorgxrdp --exclude xorgxrdp-glamor '*xorg*' 'libx*' 'libX*' 'fontconfig*'

        See also:

        For systems that have the dnf(1) command:

        -
            sudo dnf install --skip-broken --best --exclude xorgxrdp --exclude xorgxrdp-glamor '*xorg*' 'libx*' 'libX*' 'fontconfig*'
        +
            sudo dnf install --skip-broken --best --exclude xorgxrdp --exclude xorgxrdp-glamor '*xorg*' 'libx*' 'libX*' 'fontconfig*'

        For systems that have the yum(1) command:

        -
            sudo yum install --skip-broken --best --exclude xorgxrdp --exclude xorgxrdp-glamor '*xorg*' 'libx*' 'libX*' 'fontconfig*'
        +
            sudo yum install --skip-broken --best --exclude xorgxrdp --exclude xorgxrdp-glamor '*xorg*' 'libx*' 'libX*' 'fontconfig*'

        IMPORTANT NOTE: The X.org server has been deprecated. See the above note for details.

        Package website

        @@ -1043,13 +1044,13 @@ See the above note for details.

        macOS with alternative methods for macOS and different package managers with Linux.

        Red Hat based Linux

        Execute the following as root or via sudo:

        -
            dnf install SDL2 SDL2-devel sdl12-compat sdl12-compat-devel
        +
            dnf install SDL2 SDL2-devel sdl12-compat sdl12-compat-devel

        Older RHEL distributions might have to use “yum” instead of “dnf” in the above command.

        In the past it was said that one might need to run make like:

        -
            make ... SDL2_INCLUDE_ROOT=/usr
        +
            make ... SDL2_INCLUDE_ROOT=/usr

        or set the following environment variable:

        -
            export SDL2_INCLUDE_ROOT=/usr
        +
            export SDL2_INCLUDE_ROOT=/usr

        but this might not be necessary in more modern days especially as we use sdl-config and sdl2-config which should find the proper paths.

        macOS

        @@ -1061,20 +1062,20 @@ the package website.

        macOS via Homebrew

        If you have not already done so, install Homebrew.

        Then to install SDL and SDL2, execute the following command:

        -
            brew install sdl2 sdl12-compat
        +
            brew install sdl2 sdl12-compat
             eval "$(opt/homebrew/bin/brew shellenv)"
        macOS via MacPorts

        If you haven’t already, install MacPorts. Then run:

        -
            sudo port install libsdl libsdl2
        +
            sudo port install libsdl libsdl2

        Debian based Linux

        Execute the following as root or via sudo:

        -
            apt install libsdl1.2debian libsdl1.2-dev libsdl2-dev
        +
            apt install libsdl1.2debian libsdl1.2-dev libsdl2-dev

        and then try make all again.

        In the past it was said that one might need to run make like:

        -
            make ... SDL2_INCLUDE_ROOT=/usr
        +
            make ... SDL2_INCLUDE_ROOT=/usr

        or set the following environment variable:

        -
            export SDL2_INCLUDE_ROOT=/usr
        +
            export SDL2_INCLUDE_ROOT=/usr

        but this might not be necessary in more modern days especially as we use sdl-config and sdl2-config which should find the proper paths.

        Other Linux distributions

        @@ -1098,10 +1099,10 @@ as a GitHub pull request for more information about pull requests.

        macOS with alternative methods for macOS and different package managers with Linux.

        Red Hat based Linux

        Execute the following as root or via sudo:

        -
            dnf install ncurses ncurses-devel
        +
            dnf install ncurses ncurses-devel

        macOS

        With macOS it should already be installed. If it is not you might have to do:

        -
            xcode-select --install
        +
            xcode-select --install

        and agree to the terms and conditions and proceed with the install.

        macOS via Homebrew

        Not applicable, see above.

        @@ -1109,7 +1110,7 @@ macOS with alternative methods for macOS and different package managers with Lin

        Not applicable, see above.

        Debian based Linux

        Execute the following as root or via sudo:

        -
            apt install libncurses6
        +
            apt install libncurses6

        and then try make all again.

        Other Linux distributions

        Use your package manager to install the appropriate packages. Try the search @@ -1126,18 +1127,18 @@ processing programs, SoX, will work. H install depends on your OS.

        Red Hat based Linux

        As root or via sudo:

        -
            dnf install -y sox sox-devel
        +
            dnf install -y sox sox-devel

        macOS

        For macOS there are two well known options.

        macOS via Homebrew

        If you have not already done so, install Homebrew.

        Then to install SoX, execute the following command:

        -
            brew install sox
        +
            brew install sox
             eval "$(opt/homebrew/bin/brew shellenv)"
        macOS via MacPorts

        If you haven’t already, install MacPorts. Then run:

        -
            sudo port install sox
        +
            sudo port install sox

        Debian based Linux

        Usually the index.html file will explain how to use it under Debian so we do not include this here, at least for now.

        @@ -1158,12 +1159,12 @@ when they do, -Weverything is enabled with all of its challenges, p warnings, and sometimes warnings about things that do not matter, some of which are frankly frivolous and often downright dubious.

        To enable this feature:

        -
            make clobber all CC=clang
        +
            make clobber all CC=clang

        or:

        -
            make clobber all 'CWARN+= -Weverything'
        +
            make clobber all 'CWARN+= -Weverything'

        though it should be noted that if one tries -Weverything with compilers that are not clang they might see something like:

        -
            echo 'int main(void) {}' > foo.c ; cc -Weverything foo.c -o foo
        +
            echo 'int main(void) {}' > foo.c ; cc -Weverything foo.c -o foo
             cc: error: unrecognized command-line option '-Weverything'

        which means that it can’t even be compiled. Thus the proper way to do it is the first way, make clobber all CC=clang.

        @@ -1207,11 +1208,11 @@ Ferguson was able to get much of it to work and looking at that entry might be of value to your submissions, at least if you can figure the code out :-). To see the differences, try from 1989/westley:

        -
            make diff_orig_prog
        +
            make diff_orig_prog

        If you have colordiff try:

        -
            make DIFF=colordiff diff_orig_prog
        +
            make DIFF=colordiff diff_orig_prog

        Alternatively you can try:

        -
            git diff d2a42f42e8f477f29e9d5ed09ce2bb349eaf7397..eb9e69fde657acc8c85a618a8a99af4c2f93b21d westley.c
        +
            git diff d2a42f42e8f477f29e9d5ed09ce2bb349eaf7397..eb9e69fde657acc8c85a618a8a99af4c2f93b21d westley.c

        As you can see, using clang has some additional problems to work out but if you can get your entry to work well in clang it might very well be considered better than other entries.

        @@ -1225,13 +1226,13 @@ special characters. There are typical defaults like (where ^ = ctrl

      and various others. But if you don’t know this you can find out through the stty(1) command with the -a option. For instance with macOS you might see:

      -
          $ stty -a
      +
          $ stty -a
           speed 9600 baud; rows 40; columns 155;
           intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; [..snip..]

      If you know the name you can use grep to find the correct line and if your implementation of grep(1) has the -o option you can filter it. For instance to find what the intr is set to:

      -
          $ stty -a |grep -o 'intr = ^[[:alpha:]]'
      +
          $ stty -a |grep -o 'intr = ^[[:alpha:]]'
           intr = ^C

      … assuming of course that it’s a ctrl combination :-) If for some strange reason it’s not you might have to do something else including just piping it to @@ -1269,19 +1270,19 @@ Please see FAQ 5.2 for how to submit a fix to an IOC

      If your OS package manager does not have the package tcpserver you can download, making sure you’re in a temporary directory, and compile the source like:

      -
          wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
      +
          wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
           tar ucspi-tcp-0.88.tar.gz
           cd ucspi-tcp-0.88
           make

      Then as root or via sudo(1) enter:

      -
          make setup check
      +
          make setup check

      That will install it to /usr/local/bin. Now you should be able to use the entry in question.

      3.15 - How do I compile and install netpbm for entries that require it?

      This depends on your operating system for which we describe a couple below.

      Red Hat based Linux

      Execute the following as root or via sudo:

      -
          dnf install netpbm-progs netpbm
      +
          dnf install netpbm-progs netpbm

      Older RHEL distributions might have to use “yum” instead of “dnf” in the above command.

      macOS

      @@ -1293,14 +1294,14 @@ the package website.

      macOS via Homebrew

      If you have not already done so, install Homebrew.

      Then to install netpbm, execute the following command:

      -
          brew install netpbm
      +
          brew install netpbm
      macOS via MacPorts

      If you haven’t already, install MacPorts. Then run:

      -
          sudo port install libnetpbm netpbm
      +
          sudo port install libnetpbm netpbm

      Debian based Linux

      Execute the following as root or via sudo:

      -
          apt install netpbm
      +
          apt install netpbm

      and then try make all again.

      Other Linux distributions

      Use your package manager to install the appropriate packages. Try the search @@ -1315,7 +1316,7 @@ for downloading, installing and using netpbm.

      This depends on your operating system for which we describe a couple below.

      Red Hat based Linux

      Execute the following as root or via sudo:

      -
          dnf install libjpeg-turbo-utils libjpeg-turbo-devel libjpeg-turbo
      +
          dnf install libjpeg-turbo-utils libjpeg-turbo-devel libjpeg-turbo

      Older RHEL distributions might have to use “yum” instead of “dnf” in the above command.

      macOS

      @@ -1327,14 +1328,14 @@ the package website.

      macOS via Homebrew

      If you have not already done so, install Homebrew.

      Then to install libjpeg-turbo, execute the following command:

      -
          brew install libjpeg-turbo
      +
          brew install libjpeg-turbo
      macOS via MacPorts

      If you haven’t already, install MacPorts. Then run:

      -
          sudo port install libjpeg-turbo libjpeg-turbo-devel
      +
          sudo port install libjpeg-turbo libjpeg-turbo-devel

      Debian based Linux

      Execute the following as root or via sudo:

      -
          apt install libturbojpeg0 libturbojpeg0-dev
      +
          apt install libturbojpeg0 libturbojpeg0-dev

      and then try make all again.

      Other Linux distributions

      Use your package manager to install the appropriate packages. Try the search @@ -1349,7 +1350,7 @@ for downloading, installing and using libjpeg-turbo.

      This depends on your operating system for which we describe a couple below.

      Red Hat based Linux

      Execute the following as root or via sudo:

      -
          dnf install ImageMagick
      +
          dnf install ImageMagick

      Older RHEL distributions might have to use “yum” instead of “dnf” in the above command.

      macOS

      @@ -1361,14 +1362,14 @@ the package website.

      macOS via Homebrew

      If you have not already done so, install Homebrew.

      Then to install ImageMagick, execute the following command:

      -
          brew install ImageMagick
      +
          brew install ImageMagick
      macOS via MacPorts

      If you haven’t already, install MacPorts. Then run:

      -
          sudo port install ImageMagick
      +
          sudo port install ImageMagick

      Debian based Linux

      Execute the following as root or via sudo:

      -
          apt install imagemagick
      +
          apt install imagemagick

      and then try make all again.

      Other Linux distributions

      Use your package manager to install the appropriate packages. Try the search @@ -1386,12 +1387,12 @@ See FAQ 3.7: How do I run an IOCCC entry that requires X1 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
      +
          cc ... -lGL -lGLU -L _location-where-X11-libs-are-installed_ -lX11

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

      Red Hat based Linux

      Execute the following as root or via sudo:

      -
          sudo dnf install glew-devel SDL2-devel SDL2_image-devel glm-devel freetype-devel
      +
          sudo dnf install glew-devel SDL2-devel SDL2_image-devel glm-devel freetype-devel

      See OpenGL Programming/Installation/Linux for details.

      Older RHEL distributions might have to use “yum” instead of “dnf” in the above command.

      @@ -1403,7 +1404,7 @@ should be able to go. However in Apple drops support for OpenGL later on, you might look to install OpenGL via Homebrew or MacPorts.

      Debian based Linux

      Execute the following as root or via sudo:

      -
          sudo apt-get install libglew-dev libsdl2-dev libsdl2-image-dev libglm-dev libfreetype6-dev
      +
          sudo apt-get install libglew-dev libsdl2-dev libsdl2-image-dev libglm-dev libfreetype6-dev

      and then try make all again.

      See OpenGL Programming/Installation/Linux for details.

      Other Linux distributions

      @@ -1428,10 +1429,10 @@ necessary.

      If you do not have GNU make(1) you might look for gmake as that is what it often is packaged as. Then you can use gmake instead. For instance if you go to the top level directory of the winner repo you can do:

      -
          gmake
      +
          gmake

      In the case that the Makefile uses the MAKE variable you will have to override it like:

      -
          gmake MAKE=gmake
      +
          gmake MAKE=gmake

      though of course for both you may specify a rule or rules to run.

      Section 4: Changes made to IOCCC entries

      FAQ 4.0: Why are some winning entry remarks incongruent with the winning IOCCC code?

      @@ -1450,7 +1451,7 @@ because of alarming warnings that can be displayed, in some systems at runtime interspersed with the output of the program.

      For instance in macOS the entry 1990/tbr would output the warning in such a way that caused confusing output for the entry, looking like:

      -
          $ ./tbr
      +
          $ ./tbr
           $ warning: this program uses gets(), which is unsafe.
           # nothing here, what to do?

      In some cases changing the code to use fgets() is not so easy to fix and in @@ -1527,7 +1528,7 @@ allows for easily seeing the diffs.

      As some examples we’ll first look at one that has really long lines which will make it harder to see what is different, 2001/anonymous. What you would do is cd 2001/anonymous and then do:

      -
          make diff_orig_prog
      +
          make diff_orig_prog

      and then be really confused! :-)

      But for an entry like 1991/dds, you can see the differences much more easily. 1991/dds is a good example where it’s very @@ -1544,12 +1545,12 @@ when you have compiler errors :-) (though there are, as noted, some examples where it’s quite easy to see the differences).

      1991/dds is also a good example to see the alt difference very easily. To do that cd 1991/dds and then do:

      -
          make diff_alt_prog
      +
          make diff_alt_prog

      and you’ll see a single line changed and very simply.

      Tip: if you have colordiff installed it’s a lot easier to see the differences

      To use these rules but provide a different diff, for instance colordiff, just do:

      -
          make DIFF=colordiff diff_orig_prog # for orig to prog diff
      +
          make DIFF=colordiff diff_orig_prog # for orig to prog diff
           make DIFF=colordiff diff_alt_prog # for alt to prog diff

      Obviously if you want to view the alt code or the orig code you can just open the files as described above.

      @@ -1823,7 +1824,7 @@ how they are used.

      POSIX safe string plus the use of + (for technical reasons beyond this answer). In particular, the author_handle must be an ASCII string that matches this regexp:

      -
          ^[0-9A-Za-z][0-9A-Za-z._+-]*$"
      +
          ^[0-9A-Za-z][0-9A-Za-z._+-]*$"

      Default author_handle’s do not have multiple consecutive _ (underscore) characters. Nevertheless, multiple consecutive _ (underscore) characters are allowed. Contest submitters who wish to override their default author_handle may do so.

      @@ -1844,7 +1845,7 @@ 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]*$
      +
          Anonymous_[0-9][0-9][0-9][0-9][.0-9]*$

      See FAQ 5.5 for information about how to update and/or correct IOCCC author information.

      FAQ 6.6: What is a author_handle.json file and how are they used?

      @@ -1873,7 +1874,7 @@ for information on the So-called JSON spec.

      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:

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

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

      no_comment
      -

      <!--- json--> "no_comment" : "mandatory comment: because comments were removed from the original JSON spec",

      +
          "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.

      @@ -1930,7 +1931,7 @@ of the these files is modified: and then only those who maintain the official IOCCC web site 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.

      @@ -1944,14 +1945,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 @@ -1965,7 +1966,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.

      @@ -1982,38 +1983,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, they should use 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 an email address, or if the URL is unknown, they should use the JSON null as the JSON value of this JSON member. For example:

      -
          "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 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 email address, or if the alternate URL is unknown, they should use the JSON null as the JSON value of this JSON member. For example:

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

      @@ -2023,14 +2024,14 @@ 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 an twitter handle, or if the twitter handle is unknown, they should use the JSON null as the JSON value of this JSON member. For example:

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

      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.

      @@ -2042,7 +2043,7 @@ used by the author.

      For more information in Mastodon, see the Mastodon help guide. See the “Mastodon Address” section of that page in particular.

      The IOCCC Mastodon handle is:

      -
          @ioccc@fosstodon.org
      +
          @ioccc@fosstodon.org

      The IOCCC uses the Mastodon social network for announcements such as the opening and closing of a new IOCCC, changes to the IOCCC web site, updates during the judging process, and when new IOCCC entries @@ -2050,10 +2051,10 @@ are selected. We recommend you follow us on Mastodon.

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

      -
          "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. @@ -2067,10 +2068,10 @@ For example, if the Mastodon handle is:

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

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

      NOTE: The JSON null is NOT enclosed in quotes!

      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 @@ -2082,10 +2083,10 @@ and hosts official IOCCC web site on GitHub

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

      -
          "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.

      @@ -2096,11 +2097,11 @@ For example, the affiliation for the IOCCC would be:

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

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

      NOTE: The JSON null is NOT enclosed in quotes!

      winning_entry_set
      entry_id
      -
          "winning_entry_set" : [
      +
          "winning_entry_set" : [
               { "entry_id" : "2012_endoh1" },
               { "entry_id" : "2012_endoh2" },
               { "entry_id" : "2013_endoh1" },
      @@ -2136,7 +2137,7 @@ of the IOCCC entry directories for a given year. For example, see the 1984/anonymous/.path.

      The .top, .year and .path files are generated from the top level Makefile, by:

      -
          make genpath
      +
          make genpath

      <a name”terms”>FAQ 6.9: What is the current meaning of the IOCCC terms Author, Entry, and Submission?

      The IOCCC is now attempting to use the following terms:

        @@ -2208,7 +2209,7 @@ instructions. Once you’ve completed this task make sure you log in to GitHub.<

        Assuming you do not have an ssh key you should go to the command prompt and type (if you already have one and are okay using it for GitHub you can use that one):

        -
            ssh-keygen -t rsa -b 4096 -C "luser@example.com"
        +
            ssh-keygen -t rsa -b 4096 -C "luser@example.com"

        where luser@example.com is the email you want associated with your key. Follow the instructions. It will tell you the key files.

        Once you have an ssh key you need to go to your account @@ -2233,11 +2234,11 @@ instructions in forking the repo.

        Cloning the temp-test-ioccc repo

        Once you have forked the repo you are ready to clone it to your system. For instance Cody Boone Ferguson has the GitHub handle xexyl so he would type in:

        -
            git clone https://github.com/xexyl/temp-test-ioccc [target_dir]
        +
            git clone https://github.com/xexyl/temp-test-ioccc [target_dir]

        Once that is completed you will need to change to that directory. The default directory would be the name of the repo but if you specified a target directory it will be that. For instance using the above example you might do:

        -
            cd temp-test-ioccc
        +
            cd temp-test-ioccc

        You’re ready to make your changes now!

        Making changes, fixes etc.

        Here you must use your wits, knowledge, creativity and whatever else you have. @@ -2255,7 +2256,7 @@ or an exercise in sibilance!

        starts with # Last updated: to refer to 01 March 2024 rather than what it is now (at the time of writing this), 15 April 2023.

        But what if he wanted to add a file? He’d create the file and then type:

        -
            git add foo
        +
            git add foo

        where foo is the file to add.

        When he’s ready to make a commit he would need to create a new branch for the pull request.

        @@ -2263,25 +2264,25 @@ pull request.

        First, as an aside, if this is your first pull request (which we assume is if you’re reading this :-) ) you need to make sure that you can push changes to GitHub with your ssh key. To do this you need to do:

        -
            ssh -T git@github.com
        +
            ssh -T git@github.com

        Cody would see:

        Hi xexyl! You’ve successfully authenticated, but GitHub does not provide shell access.

        Now, assuming that the forked repo is https://github.com/xexyl/temp-test-ioccc, you’d type:

        -
            git remote set-url origin git@github.com:xexyl/temp-test-ioccc.git
        +
            git remote set-url origin git@github.com:xexyl/temp-test-ioccc.git

        Now you’d be ready to make your commits.

        Before doing anything else, however, a new branch needs to be created. Continuing the example above for 2020/ferguson1/play.sh, it might be that:

        -
            git checkout -B human-snakes
        +
            git checkout -B human-snakes

        This would change the branch to the newly created branch human-snakes branch. Now Cody could commit the changes:

        -
            git commit play.sh # if specifying specific files
        +
            git commit play.sh # if specifying specific files
             git commit -a # if committing everything

        He could also have done:

        -
            git add play.sh
        +
            git add play.sh
             git commit

        In any case this would open an editor (in his case vim) to write a commit log. It is recommended that the first line is <=51 chars and the next line is blank. @@ -2295,7 +2296,7 @@ warrant the log:

        Opening a pull request

        To do this depends on the branch name. Assuming the branch from above, human-snakes, you would type:

        -
            git push --set-upstream origin human-snakes
        +
            git push --set-upstream origin human-snakes

        This might show:

            Enumerating objects: 9, done.
             Counting objects: 100% (9/9), done.
        @@ -2341,7 +2342,7 @@ in the matter.

        When the judges have merged the pull request you now need to make sure your fork has the merge. To do this from the command line, assuming the fork in the above example, you would type:

        -
            git checkout master && git pull https://github.com/ioccc-src/temp-test-ioccc.git master && git push origin master
        +
            git checkout master && git pull https://github.com/ioccc-src/temp-test-ioccc.git master && git push origin master

        This will merge your pull request to your fork.

        FAQ 6.11: Am I allowed to use IOCCC content?

        Disclaimer: This FAQ is not a license, has no legal diff --git a/inc/index.html b/inc/index.html index 49a4280dd..738e3a94d 100644 --- a/inc/index.html +++ b/inc/index.html @@ -83,6 +83,7 @@

        diff --git a/inc/md2html.cfg b/inc/md2html.cfg index d6052d085..8ed35bcaa 100644 --- a/inc/md2html.cfg +++ b/inc/md2html.cfg @@ -341,6 +341,22 @@ inc/README.md -D ../ +next/README.md + -H + topnav=empty + -o + bin/subst.default.sh + -s + TITLE=The International Obfuscated C Code Contest + -s + DESCRIPTION=IOCCC Rules and Guidelines + -s + KEYWORDS=IOCCC, rules, Rules, guidelines, Guidelines + -s + HEADER_2=IOCCC Rules and Guidelines + -D + ../ + next/rules.md -H topnav=empty @@ -349,7 +365,7 @@ next/rules.md -s TITLE=The International Obfuscated C Code Contest -s - DESCRIPTION=IOCCC rules + DESCRIPTION=IOCCC rules and guidelines -s KEYWORDS=IOCCC, rules, Rules -s diff --git a/inc/sidenav.default.html b/inc/sidenav.default.html index 221d28f27..33c50b527 100644 --- a/inc/sidenav.default.html +++ b/inc/sidenav.default.html @@ -14,6 +14,7 @@ diff --git a/index.html b/index.html index 3bd2ab6b2..1cdbd125b 100644 --- a/index.html +++ b/index.html @@ -83,6 +83,7 @@ diff --git a/judges.html b/judges.html index e0d7b9739..dfeb1b32f 100644 --- a/judges.html +++ b/judges.html @@ -83,6 +83,7 @@ diff --git a/license.html b/license.html index 4ae677a7e..ebfbfdaa4 100644 --- a/license.html +++ b/license.html @@ -83,6 +83,7 @@ diff --git a/location.html b/location.html index bfb05d154..547129dc3 100644 --- a/location.html +++ b/location.html @@ -83,6 +83,7 @@ diff --git a/news.html b/news.html index 623b65181..65e5af318 100644 --- a/news.html +++ b/news.html @@ -83,6 +83,7 @@ @@ -206,7 +207,7 @@ in date(1) format.

        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",
        +
            "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 diff --git a/next/README.md b/next/README.md new file mode 100644 index 000000000..ff74fbedd --- /dev/null +++ b/next/README.md @@ -0,0 +1,86 @@ +# IOCCC Rules and Guidelines + +**IMPORTANT**: Did you read the **Important disclaimers about scope** +and did you check the current **[IOCCC status](../status.html)**? + +* [IOCCC rules](rules.html) +* [IOCCC guidelines](guidelines.html) + +You may also wish to review the +[mkiocccentry tool repo](https://github.com/ioccc-src/mkiocccentry), +especially when the [rules](rules.html) and [guidelines](guidelines.html) +are official, to be sure you are **using an up to date official mkiocccentry tool set**. + + +# Important disclaimers about scope + + +### When the IOCCC status is closed + +When the IOCCC status is closed, the [rules](rules.html) and [guidelines](guidelines.html) +are **OUT OF DATE**. + +They are a **very tentative proposal** for the next IOCCC +that is **VERY LIKELY** to be updated before the next IOCCC. +They are are provided as a **tentative** hint at what +might be used for the next IOCCC. + +**IMPORTANT**: All **tentative** [rules](rules.html) and [guidelines](guidelines.html) +are subject to change by the [IOCCC judges](../judges.html) at any time. +See both the [IOCCC news](../news.html) and the [IOCCC +Mastodon](https://fosstodon.org/@ioccc) feed as _sometimes_ the +[IOCCC judges](../judges.html) _mention_ changes there. + + +### When the IOCCC status is pending + +When the IOCCC status is pending, the [rules](rules.html) and [guidelines](guidelines.html) are +**tentative**. + +One might think of them as a **beta** release for the IOCCC +that is about to open. + +**IMPORTANT**: All **tentative** [rules](rules.html) and [guidelines](guidelines.html) +are subject to change by the [IOCCC judges](../judges.html) at any time. +See both the [IOCCC news](../news.html) and the [IOCCC +Mastodon](https://fosstodon.org/@ioccc) feed as _sometimes_ the +[IOCCC judges](../judges.html) _mention_ changes there. + + +### When the IOCCC status is open + +When the IOCCC status is open, the [rules](rules.html) and [guidelines](guidelines.html) are **OFFICIAL**. + +Unless some significant problem turns up (such as a need to delay +in when the IOCCC will close, or some major bug is discovered) they +will remain **OFFICIAL** for this IOCCC. + +**SUGGESTION**: Watch both the [IOCCC news](../news.html) and the [IOCCC +Mastodon](https://fosstodon.org/@ioccc) feed for the latest news +about any _mentions_ changes. + + +### When the IOCCC status is judging + +When the IOCCC status is judging, the [rules](rules.html) and [guidelines](guidelines.html) are +for the current IOCCC that is no **longer open for new submissions**. + +See the [IOCCC news](../news.html) and well as the [IOCCC +Mastodon](https://fosstodon.org/@ioccc) feed for updates +on the IOCCC judging process as well as for the announcement +for [who won the IOCCC](../years.html). + + + diff --git a/next/guidelines.html b/next/guidelines.html new file mode 100644 index 000000000..9f5e43081 --- /dev/null +++ b/next/guidelines.html @@ -0,0 +1,972 @@ + + + + + + + + + + + +The International Obfuscated C Code Contest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

        + IOCCC image by Matt Zucker +

        The International Obfuscated C Code Contest

        +

        IOCCC Guidelines

        +
        + + + + +
        +  +
        + + + + +
        + + + + + + + + + +
        + + + + + + + + + + +

        WARNING: These guidelines are OUT OF DATE

        +

        They are a very tentative proposal for the next IOCCC +that is VERY LIKELY to be updated before the next IOCCC. +They are are provided as a very tentative hint at what +might be used in a future IOCCC.

        +

        Please regard these guidelines as a historic archive.

        +

        The IOCCC is closed

        +

        The IOCCC is NOT accepting new submissions at this time. See the +IOCCC winning entries page for the entires that have won the IOCCC.

        +

        Watch both the IOCCC status page and the +@IOCCC mastodon feed for information about future IOCCC openings.

        + + +

        27th International Obfuscated C Code Contest Official Guidelines

        +

        Copyright © 2024 Leonid A. Broukhis, Landon Curt Noll.

        +

        All Rights Reserved. Permission for personal, education or non-profit use is +granted provided this this copyright and notice are included in its entirety +and remains unaltered. All other uses must receive prior permission in +writing from the contest judges.

        +

        Guidelines version

        +

        | This guidelines file is version 2023-04-04-v28.

        +

        Change marks

        +

        | ← Lines that start with this symbol indicate a change from the previous IOCCC

        +

        Most lines (we sometimes make mistakes) that were modified start the | symbol.

        +

        ABOUT THIS FILE:

        +

        This file contains guidelines intended to help people who wish to +submit entries to the International Obfuscated C Code Contest (IOCCC).

        +

        This is not the IOCCC rules, though it does contain comments about +them. The guidelines should be viewed as hints and suggestions. +Entries that violate the guidelines but remain within the rules are +allowed. Even so, you are safer if you remain within the guidelines.

        +

        You should read the current IOCCC rules, prior to submitting entries. +The rules are typically sent out with these guidelines.

        +

        WHAT’S NEW IN 2019/2020

        +

        | This IOCCC runs from 2019-Dec-26 06:01:41 UTC to 2020-Mar-15 06:26:49 UTC.

        +

        | The reason for the times of day are so that key IOCCC events occur during UTC +| “prime time”. Do you understand why we factored this into the rules and +| guidelines? :-)

        +

        Until the start of this IOCCC, these rules, guidelines and iocccsize.c tool +should be considered provisional BETA versions and may be adjusted +at any time.

        +

        | Even though the contest will start in 2019, because the contest will close +| in 2020, URLs, subject lines, and contest related email addresses use 2019.

        +

        The IOCCC submission URL:

        +
            https://submit.ioccc.org/
        +

        | The submit URL should be active on or slightly before 2020-Jan-15 12:21:37 UTC.

        +

        Please wait to submit your entries until after that time.

        +

        The official rules, guidelines and iocccsize.c tool will be available +on the official IOCCC web site on or slightly before start of this IOCCC. +Please check the IOCCC web site “How to enter” link:

        +
            https://www.ioccc.org/index.html#enter
        +

        on or after the start of this IOCCC to be sure you are using the correct +versions of these items before using the IOCCC entry submission URL.

        +

        HINTS AND SUGGESTIONS:

        +

        You are encouraged to examine the winners of previous contests. See +FOR MORE INFORMATION for details on how to get previous winners.

        +

        Keep in mind that rules change from year to year, so some winning entries +may not be valid entries this year. What was unique and novel one year +might be ‘old’ the next year.

        +

        An entry is usually examined in a number of ways. We typically apply +a number of tests to an entry:

        +
          +
        • look at the original source
        • +
        • convert ANSI trigraphs to ASCII
        • +
        • C pre-process the source ignoring ‘#include’ lines
        • +
        • C pre-process the source ignoring ‘#define’ and ‘#include’ lines
        • +
        • run it through a C beautifier
        • +
        • examine the algorithm
        • +
        • compile it (with flags to enable all warnings)
        • +
        • execute it
        • +
        +

        You should consider how your entry looks in each of the above tests. +You should ask yourself if your entry remains obscure after it has been +‘cleaned up’ by the C pre-processor and a C beautifier.

        +

        Your entry need not pass all of the above tests. In certain +cases, a test is not important. Entries that compete for the +‘strangest/most creative source layout’ need not do as well as +others in terms of their algorithm. On the other hand, given +two such entries, we are more inclined to pick the entry that +does something interesting when you run it.

        +

        We try to avoid limiting creativity in our rules. As such, we leave +the contest open for creative rule interpretation. As in real life +programming, interpreting a requirements document or a customer request +is important. For this reason, we often award ‘worst abuse of the +rules’ to an entry that illustrates this point in an ironic way.

        +

        We do realize that there are holes in the rules, and invite entries +to attempt to exploit them. We will award ‘worst abuse of the rules’ +and then plug the hole next year. Even so, we will attempt to use +| the smallest plug needed, if not smaller. Or, maybe not. :-)

        +

        | There may be less than 2^7-1 reasons why these guidelines seem obfuscated.

        +

        Check out your program and be sure that it works. We sometimes make +the effort to debug an entry that has a slight problem, particularly +in or near the final round. On the other hand, we have seen some +of the best entries fall down because they didn’t work.

        +

        We tend to look down on a prime number printer that claims that +16 is a prime number. If you do have a bug, you are better off +documenting it. Noting “this entry sometimes prints the 4th power +of a prime by mistake” would save the above entry. And sometimes, +a strange bug/feature can even help the entry! Of course, a correctly +working entry is best. Clever people will note that 16 might be prime +under certain conditions. Wise people, when submitting something clever +will fully explain such cleverness in their entry’s remarks file.

        +

        People who are considering to just use some complex mathematical +function or state machine to spell out something such as “hello, +world!” really really, and we do mean really, do need to be more creative.

        +

        Ultra-obfuscated programs are, in some cases, easier to +deobfuscate than subtly-obfuscated programs. Consider using +misleading or subtle tricks layered on top of or under an +appropriate level of obfuscation. A clean looking program with +misleading comments and variable names might be a good start.

        +

        When programs use VTxxx/ANSI sequences, they should NOT limited to a +specific terminal brand. Those programs that work in a standard xterm +are considered more portable.

        +

        | Rule 2 (the size rule) refers to the use of an IOCCC size tool. +| The source for this tool is found at:

        +
        |    https://www.ioccc.org/2020/iocccsize.c
        +

        To further clarify rule 2, we subdivided it into two parts, 2a and 2b. +| Your entry must satisfy BOTH the maximum size rule 2a AND your entry +must satisfy the IOCCC size tool rule 2b.

        +

        The IOCCC size tool should be compiled as:

        +
            cc -pedantic -Wall -Wextra -std=c11 iocccsize.c -o iocccsize
        +

        This tool imposes a 2nd limit on C code size (rule 2b). To check your +code against the 2nd limit of rule 2, use the -i command line option. +For example:

        +
            ./iocccsize -i < prog.c
        +

        The IOCCC size tool, when using the -i option, may be summarized as:

        +
            The size tool counts most C reserved words (keyword, secondary,
        +    and selected preprocessor keywords) as 1.  The size tool counts all
        +    other octets as 1 excluding ASCII whitespace, and excluding any
        +    ';', '{' or '}' followed by ASCII whitespace, and excluding any
        +    ';', '{' or '}' octet immediately before the end of file.
        +

        ASCII whitespace includes ASCII tab, ASCII space, ASCII newline, +ASCII formfeed, and ASCII carriage return.

        +

        | When ‘;’, ‘{’ or ‘}’ are within a C string, they may still not be +| counted by the IOCCC size tool. This is a feature, not a bug!

        +

        In cases where the above summary and the algorithm implemented by +the IOCCC size tool source code conflict, the algorithm implemented +by the IOCCC size tool source code is preferred by the judges.

        +

        There are at least 2 other reasons for selecting 2053 as the 2nd limit +besides the fact that 2053 is the next prime > 2048. These reasons +may be searched for and discovered if you are “Curios!” about 2053. :-) +Moreover, 2053 was the number of the kernel disk pack of one of the +judge’s BESM-6.

        +

        Take note that this secondary limit imposed by the IOCCC size tool +obviates some of the need to #define C reserved words in an effort +to get around the size limits of rule 2.

        +

        Yes Virginia, that is a hint!

        +

        | We applaud programs that do not issue warnings when compiled. +| To avoid warnings, you might be tempted to add various -Wno-foobar +| flags. Unfortunately such flags are NOT portable. Moreover, +| such flags are not consistent between different C compilers. +| Therefore we recommend that you consider one of several approaches:

        +
          +
        1. | Write code that does not generate compiler warnings
        2. +
        3. | Do not use flags that disable compiler warnings
        4. +
        5. | Provide instructions (such as in your Makefile) that +| uses appropriate disable compiler warnings flags for +| both clang and gcc
        6. +
        7. | Do something creative
        8. +
        +

        OUR LIKES AND DISLIKES:

        +

        Doing masses of #defines to obscure the source has become ‘old’. We +tend to ‘see thru’ masses of #defines due to our pre-processor tests +that we apply. Simply abusing #defines or -Dfoo=bar won’t go as far +as a program that is more well rounded in confusion.

        +

        Many C compilers dislike the following code, and so do we:

        +
            #define d define
        +    #d foo             /* <-- don't expect this to turn into #define foo */
        +

        When declaring local or global variables, you should declare the type:

        +
            int this_is_fine;
        +    this_is_not;       /* <-- Try to avoid implicit type declarations */
        +

        We suggest that you compile your entry with a commonly available +c11 (formerly C1X) C compiler (ISO/IEC 9899:2011).

        +

        Do not assume that optional c11 features are supported. If you +must use an optional c11 feature, use feature test macros so +that implementations without such optional c11 features will see +an entry that is both functional and interesting.

        +

        We like entries that have workarounds that allow someone with +an older c99 (ISO/IEC 9899:1999) compiler to be able to compile +and enjoy your entry.

        +

        We really like “lint free” code. However lint is a toll of the past. +So try to ensure that your entry compiles warning free. If possible, +to compile compile your code using:

        +
            -Wall -Wextra -pedantic
        +

        For compilers, such as clang, that have the -Weverything option, try +to make your code compile warning free using:

        +
            -Wall -Wextra -Weverything -pedantic
        +

        If you must turn off various warnings on the compile line such as:

        +
            ... -Wno-empty-body -Wno-return-type ...
        +

        be sure to clearly state so in your remarks AS WELL AS in +your “how to build” / Makefile.

        +

        All other things being equal, a program that must turn off fewer +warnings will be considered better, for certain values of better.

        +

        Unless you clearly state otherwise in your remarks AS WELL AS in +your “how to build” / Makefile we will compile using:

        +
            -O3 -std=c11
        +

        Anyone care to submit an entry that makes gratuitous use of all +of the c11 reserved words in their intended C language contexts? +NOTE: As with the use of the word Belgium, the use of certain gratuitous +c11 reserved words may be completely banned in all parts of the Galaxy, +except in one small part (ISO/IEC 9899:2011) where they might not truly +understand the implications of such words.

        +
            http://hitchhikers.wikia.com/wiki/Belgium
        +    http://www.bezem.de/pdf/ReservedWordsInC.pdf
        +

        DO NOT assume that we will use gcc to compile your program. +We will first try to compile your program using Clang.

        +

        It is much better to not use any obscure compiler flags if +you can help it. We want to discourage the use of obscure compiler +flags that would make the program less portable.

        +

        One side effect of the above is that you cannot assume the use +of nested functions such as:

        +
            main() {
        +|       void please_do_not_submit_this() {
        +|           printf("The machine that goes BING!\n");
        +        }
        +|       please_do_not_submit_this();
        +    }
        +

        This is because such nested functions often requires one to compile with +a flag such as -fnested-functions that is not found on some compilers.

        +

        On 2012 July 20, the judges rescinded the encouragement of +nested functions. Such constructions, while interesting and sometimes +amusing, will have to wait until they required by a C standard that are +actually implemented in commonly used C compilers. Sorry!

        +

        | We prefer programs that do not require a fish license: crayons and +| cat detector vans not withstanding.

        +

        If your entry uses functions that have a variable number of +arguments, be careful. Systems implement va_list as a wide variety +of ways. Because of this, a number of operations using va_list are +not portable and must not be used:

        +
          +
        • assigning a non-va_list variable to/from a va_list variable
        • +
        • casting a non-va_list variable into/from a va_list variable
        • +
        • passing a va_list variable to a function expecting a non-va_list arg
        • +
        • passing a non-va_list variable to a function expecting a va_list arg
        • +
        • performing arithmetic on va_list variables
        • +
        • using va_list as a structure or union
        • +
        +

        In particular, do not treat va_list variables as if they were a char **’s.

        +

        Avoid using <varargs.h>. Use <stdarg.h> instead.

        +

        On 28 January 2007, the Judges rescinded the requirement that the +’#” in a C preprocessor directive must be the 1st non-whitespace octet.

        +

        The exit() function returns void. Some broken systems have exit() +return int, your entry should assume that exit() returns a void.

        +

        | This guideline has a change mark at the very start of this line.

        +

        Small programs are best when they are short, obscure and concise. +While such programs are not as complex as other winners, they do +serve a useful purpose. They are often the only program that people +attempt to completely understand. For this reason, we look for +programs that are compact, and are instructional.

        +

        While those who are used to temperatures found on dwarf planet, +(yes Virginia, dwarf planets are planets) such as Pluto might be able to +explain to the Walrus why our seas are boiling hot, the question of +whether pigs have wings is likely to remain a debatable point to most.

        +

        One line programs should be short one line programs: say around 80 to 120 +octets long. Going well beyond 140 octets is a bit too long to be called +a one-liner in our vague opinion.

        +

        We tend to dislike programs that:

        +
          +
        • are very hardware specific
        • +
        • are very OS version specific +(index/strchr differences are OK, but socket/streams specific +code is likely not to be)
        • +
        • dump core or have compiler warnings +(it is OK only if you warn us in the ‘remark’ header item)
        • +
        • won’t compile or run under a POSIX P1003.1/P1003.2 like systems
        • +
        • depend on a utility or application not normally found on most +most POSIX P1003.1/P1003.2 like systems
        • +
        • abuse the build file to get around the size limit
        • +
        • obfuscate by excessive use of ANSI trigraphs
        • +
        • are longer than they need to be
        • +
        • are “blob-ier” than they need to be
        • +
        • are rather similar to previous winners :-(
        • +
        • are too similar to previous losers :-)
        • +
        • | that mandate the exclusive the use of an specific Integrated
        • +
        • | Development Environment (IDE)
        • +
        +

        | In order to encourage entry portability, we dislike entries that +| fail to build unless one is using an IDE. For example, do not +| mandate that one must use Microsoft Visual Studio to compile +| your entry. Nevertheless some of the better IDEs have command-line +| interfaces to their compilers, once one learns how to invoke a shell.

        +

        | The program must compile and link cleanly in a POSIX-like environment. +| Therefore do not assume the system has a windows.h include file:

        +
        |   #include <windows.h>        /* we dislike this include */
        +

        Unless you are cramped for space, or unless you are entering the +‘best one liner’ category, we suggest that you format your program +in a more creative way than simply forming excessively long lines.

        +

        At least one judge prefers to maintain the use of the leap-second +as part of the world’s time standard. If your code prints time +with seconds, we prefer that your code be capable of printing the +time of day during a leap-second where the value in seconds +after the minute mark is 60.

        +

        The “how to build” make process should not be used to try and get +around the size limit. It is one thing to make use of a several -D’s +| on the compile line to help out, but it is quite another to use many +bytes of -D’s in order to try and squeeze the source under the size limit.

        +

        | Your source code, post-pre-processing, should not exceed the size +| of Windows. :-)

        +

        The judges, as a group, have a history giving wide degree of latitude +to reasonable entries. And recently they have had as much longitudinal +variation as it is possible to have on Earth. :-)

        +

        You should try to restrict commands used on the build file to +POSIX-like or common Unix-like commands. You can also compile +and use your own programs. If you do, try to build and execute +from the current directory. This restriction is not a hard and +absolute one. The intent is to ensure that the building if your +program is reasonably portable.

        +

        We prefer programs that are portable across a wide variety of Unix-like +operating systems (i.e., Linux, GNU Hurd, BSD, Unix, etc.).

        +

        You are in a maze of twisty guidelines, all different.

        +

        There are at least zero judges who think that Fideism has little +or nothing to do with the IOCCC judging process.

        +

        Don’t forget that the building of your program should be done +without human intervention. So don’t do things such as:

        +
            prog: prog.c
        +        #echo this next line requires data from standard input
        +        cat > prog.c
        +        ${CC} prog.c -o prog
        +

        However, you can do something cute such as making your program +do something dumb (or cute) when it is built ‘automatically’. And +when it is run with a human involved, do something more clever. +For example, one could use the build instructions:

        +
            prog: prog.c
        +        ${CC} prog.c -DNON_HUMAN_COMPILE -o prog
        +        @echo "See remarks section about alternate ways to compile"
        +

        and then include special notes in the program “remarks” for +alternate / human intervention based building.

        +

        We want to get away from source that is simply a compact blob of +octets. Really try to be more creative than blob coding. HINT!

        +

        Please do not use things like gzip to get around the size limit. +Please try to be much more creative.

        +

        We really dislike entries that make blatant use of including +large data files to get around the source code size limit.

        +

        We do not recommend submitting systemd source code to the IOCCC, +if nothing else because that code is likely to exceed the source code +size limit. This isn’t to say that another highly compact and obfuscated +replacement of init would not be an interesting submission.

        +

        Did we remember to indicate that programs that blatantly use +some complex state machine to do something simple are boring? +We think we did. :-)

        +

        All generalizations are false, including this one. – Mark Twain

        +

        Given two versions of the same program, one that is a compact blob +of code, and the other that is formatted more like a typical C +program, we tend to favor the second version. Of course, a third +version of the same program that is formatted in an interesting +and/or obfuscated way, would definitely win over the first two! +Remember, you can submit more than one entry. See the rules for details.

        +

        We suggest that you avoid trying for the ‘smallest self-replicating’ +source. The smallest, a zero byte entry, won in 1994.

        +

        Programs that claim to be the smallest C source that does something, really +better be the smallest such program or they risk being rejected because +they do not work as documented.

        +

        Please note that the C source below, besides lacking in obfuscation, +is NOT the smallest C source file that when compiled and run, dumps core:

        +
            main;
        +

        We do not like writable strings. That is, we don’t want stuff like:

        +
            char *T = "So many primes, so little time!";
        +    ...
        +    T[14] = ';';
        +

        Please don’t make use of this feature, even if your system allows it. +However, initialized char arrays are OK to write over. This is OK:

        +
            char b[] = "Is this OK";
        +    b[9] = 'K';
        +

        | There are more than one typos in this very sentence.

        +

        X client entries should be as portable as possible. Entries that +adapt to a wide collection of environments will be favored. For +example, don’t depend on a particular type or size of display. +Don’t assume the use of a particular browser. Instead assume a +generic browser that forms to a widely used W3C standard. +Don’t assume a particular sound sub-system or video driver is installed +in the OS. Instead, make use of a well known and widely available open +source program (one that actually works) to display audio/visual data.

        +

        X client entries should avoid using X related libraries and +software that is not in wide spread use.

        +

        This is the only guideline that contains the word fizzbin. +| However, do you know how to play fizzbin? You do?!? (Except on Tuesday)

        +

        We don’t like entries that use proprietary toolkits such as the Mtif, +Xvew, or OpenL*ok toolkits, since not everyone has them. Use of an +open source toolkit that is widely and freely available instead.

        +

        NOTE: | The previous guideline in this spot has been replaced by this guideline:

        +

        X client entries should not to depend on particular items on +.Xdefaults. If you must do so, be sure to note the required lines +in the program “remarks”. They should also not depend on any +particular window manager.

        +

        Try to avoid entries that play silent sound segments or play the +Happy Birthday song; music that some people believe is copyrighted +(even if such copyrights appear to be bogus and/or blatant abuses of +the copyright system).

        +

        While we recognize that UNIX is not a universal operating system, the +contest does have a bias towards such systems. In an effort to expand +the scope of the contest, we phrase our bias in terms of POSIX P1003.1 +and P1003.2 standards. This will allow certain non-UNIX OS users to +submit entries. On the other hand, this is a guideline and not a rule. +We will not reject an entry based on some POSIX technicality.

        +

        When dealing with OS and application environments, we suggest that you +be reasonable with a nod towards vanilla UNIX-like systems. POSIX will +evolve but not as much as the contest.

        +

        You very well might not be completely prohibited from failing to not +partly misunderstand this particular guideline, but of course we could +| not possibly comment. Nevertheless, you are neither prohibited, nor are +| you required to determine that this or the previous sentence is either false +| and/or misleading. Therefore, it might be wise for you to not fail to consider +| to do so, accordingly. Thank you.

        +

        Any complaints about the above guideline could be addressed to the +Speaker of the House of Commons, or to the speaker of your national +| parliament should you have one.

        +

        We like programs that:

        +
          +
        • are as concise and small as they need to be
        • +
        • do something at least quasi-interesting
        • +
        • are portable
        • +
        • are unique or novel in their obfuscation style
        • +
        • MAKE USE OF A NUMBER OF DIFFERENT TYPES OF OBFUSCATION <== HINT!!
        • +
        • make us laugh and/or throw up :-) (humor really helps!)
        • +
        • make us want to eat good chocolate.
        • +
        +

        Some types of programs can’t excel (anti-tm) in some areas. Your +program doesn’t have to excel in all areas, but doing well in several +areas really does help.

        +

        You are better off explaining what your entry does in the program +“remarks” section rather than leaving it obscure for the judges +as we might miss something and/or be too tired to notice.

        +

        | Please avoid this specific individual guideline, if at all possible.

        +

        We freely admit that interesting, creative or humorous comments in +the program “remarks” help your chances of winning. If you had to +read so many twisted entries, you too would enjoy a good laugh or two. +We think the readers of the contest winners do as well. We do read +the program “remarks” during the judging process, so it is worth your +while to write remarkable program “remarks”.

        +

        We dislike C code with trailing control-M’s (r \015) that results +in compilation failures. Some non-Unix/non-Linux tools such as +MS Visual C and MS Visual C++ leave trailing control-M’s on lines. +Users of such tools should strip off such control-M’s before submitting +their entries. In some cases tools have a “Save As” option that will +prevent such trailing control-M’s being added.

        +

        One should restrict libcurses to portable features found on BSD +or Linux curses.

        +

        Rule 13 states any C source that fails to compile because of unescaped +octets with the high bit set (octet value >= 128) will be rejected. +Instead of unescaped octets, you should use or escapes:

        +
                      /* 123456789 123456789 123456789 123456 */
        +    char *foo = "This string is 36 octets in length \263";
        +          /* This octet requires 4 octets of source ^^^^ */
        +    if (strlen(foo) == 36) printf("foo is 36 octets plus a final NUL\n");
        +    else printf("This code should not print this message\n");
        +

        It is a very good idea to, in your remarks file, tell us why you +think your entry is obfuscated. This is particularly true if +your entry is has some very subtle obfuscations that we might +otherwise overlook. <<– Hint!

        +

        Anyone can format their code into a dense blob. A really clever +author will try format their entry using a “normal” formatting style +such that at first glance (if you squint and don’t look at the details) +the code might pass for non-obfuscated C. Deceptive comments, +and mis-leading formatting, in some cases, may be a plus. On the +other hand, a misleading code style requires more source bytes.

        +

        If you do elect to use misleading formatting and comments, we +suggest you remark on this point in your remarks where you talk +about why you think your entry is obfuscated. On the other hand, +if you are pushing up against the size limits, you may be forced +into creating a dense blob. Such are the trade offs that obfuscators face!

        +

        We prefer code that can run on either a 64-bit or 32-bit processor. +However, it is unwise to assume it will run on an i386 or x86 architecture.

        +

        We believe that Mark Twain’s remark:

        +
            Get your facts first, then you can distort them as you please.
        +

        is a good guideline for those writing code for the IOCCC.

        +

        The IOCCC size tool source, iocccsize.c, is not an original work, +| unless you are Anthony C Howe, in which case it is original! +| Submitting source that uses the content iocccsize.c, unless you are +| Anthony C Howe, might run the risk of violating rule 7.

        +

        Rule 7 does not prohibit you from writing your own obfuscated IOCCC size tool. +However if you do, you might wish to make your tool do something more +interesting than simply implementing the IOCCC size tool algorithm.

        +

        While programs that only run in a specific word size are OK. If you have +to pick, choose a 64-bit word size.

        +

        If we are feeling ornery we might choose to compile your program +for running on an Arduino or a PDP-11. Heck, should we ever find +an emulator of 60-bit CDC Cyber CPU running a POSIX-like OS, we +might just try your entry on that emulator as well :-)

        +

        If your entry MUST run only in 32-bit mode on an Intel processor, add the +following compiler flag:

        +
            -arch i386
        +

        to your “how to build” make compile line. For example:

        +
            prog: prog.c
        +        ${CC} prog.c -arch i386 -o prog
        +

        Be even more creative!

        +

        If there are limitations in your entry, you are highly encouraged +to note such limitations in your remarks file. For example if your +entry factors values up to a certain size, you might want to state:

        +
            This entry factors values up 2305567963945518424753102147331756070.
        +    Attempting to factor larger values will produce unpredictable results.
        +

        The judges might try to factor the value -5, so you want to might state:

        +
            This entry factors positive values up 2305567963945518424753102147331756070.
        +    Attempting to factor large values will produce unpredictable results.
        +

        However the judges might try to also factor 0, so you want to might state:

        +
            This entry factors values between 1 and 2305567963945518424753102147331756070.
        +    Attempting to factor values outside that range will produce unpredictable results.
        +

        Moreover the try to also factor 3.5 or 0x7, or Fred, so you want to might state:

        +
            This entry factors integers between 1 and 2305567963945518424753102147331756070.
        +    Attempting to factor anything else will produce unpredictable results.
        +

        You entry might be better off catching the attempt to factor bogus values +and doing something interesting. So you might want to code accordingly and state:

        +
            This entry factors integers between 1 and 2305567963945518424753102147331756070.
        +    Attempting to factor anything else will cause the program to insult your
        +    pet fish Eric.
        +

        The judges might not have a pet fish named Eric, so might want to state:

        +
            This entry factors integers between 1 and 2305567963945518424753102147331756070.
        +    Attempting to factor anything else will cause the program to insult your
        +    pet fish Eric, or in the case that you lack such a pet, will insult the
        +    pet that you do not have.
        +

        When all other things are equal, an entry with fewer limitation will be judged +better than an entry with lots of limitations. So you might want to code accordingly +and state:

        +
            This entry attempts to a factor value of any size provided that the program
        +    is given enough time and memory.  If the value is not a proper integer, the
        +    program will insult a fish named Eric, even if such a fish does not exist.
        +

        ABUSING THE RULES:

        +

        Legal abuse of the rules is somewhat encouraged. Legal rule abuse may +involve, but is not limited to, doing things that are technically +allowed by the rules and yet do not fit the spirit of what we intended +to be submitted.

        +

        Legal rule abuse is encouraged to help promote creativity. Rule abuse +entries, regardless of if they receive an award, result in changes to +the next year’s rules and guidelines.

        +

        Legal abuse of the rules is NOT an invitation to violate the rules. +An entry that violates the rules in the opinion of the judges, WILL be +disqualified. RULE ABUSE CARRIES A CERTAIN LEVEL OF RISK! If you +have an entry that might otherwise be interesting, you might want to +submit two versions; one that does not abuse the rules and one that +does.

        +

        If you intend to abuse the rules, indicate so in the program +“remarks”. You must try to justify why you consider your rule abuse +to be allowed under the rules. That is, you must plead your case as +to why your entry is valid. Humor and/or creativity help plead a +case.

        +

        Abusing the web submission procedure tends to annoy us more +than amuse us. Spend your creative energy on content of your +entry rather than on the submission process itself.

        +

        We are often asked why the contest rules and guidelines seem too +strange or contain mistakes, flaws or grammatical errors. One reason +is that we sometimes make genuine mistakes. But in many cases such +problems, flaws or areas of confusion are deliberate. Changes to +rules and guidelines in response to rule abuses, are done in a minimal +fashion. Often we will deliberately leave behind holes (or introduce +new ones) so that future rule abuse may continue. A cleaver author +should be able to read them and “drive a truck through the holes” in +the rules and guidelines.

        +

        At the risk of stating the obvious, this contest is a parody of the +software development process. The rules and guidelines are only a +small part of the overall contest. Even so, one may think the contest +rules and guideline process as a parody of the sometimes tragic +mismatch between what a customer (or marketing) wants and what +engineering delivers. Real programmers must face obfuscated +and sometimes conflicting specifications and requirements from marketing, +sales, product management an even from customers themselves on a +all too regular basis. This is one of the reasons why the rules and +guidelines are written in obfuscated form.

        +

        JUDGING PROCESS:

        +

        Entries are judged by Leonid A. Broukhis, Simon Cooper, Landon Curt Noll.

        +

        Each entry submitted is given a random id number and subdirectory. The +entry files including, but not limited to prog.c, Makefile (that we +form from around your “how to build” information), as well as any +data files that you submit are all placed under their own directory. +stored and judged from this directory.

        +

        Any information about the authors is not read by the judges until +the judging process is complete, and then only from entries that have +won an award. Because we do not read this information for entries that +do not win, we do not know who did not win.

        +

        The above process helps keep us biased for/against any one particular +individual. Therefore you MUST refrain from putting any information +that reveals your identity in your entry.

        +

        Now some people point out that coding style might reveal the information +about the others. However we consider this to be simply circumstantial +and outside the scope of the above paragraph.

        +

        Some people, in the past, have attempted to obfuscate their identity by +including comments of famous Internet personalities such as Peter Honeyman +(http://www.citi.umich.edu/u/honey/). The judges are on to this +trick and therefore consider any obfuscated source or data file +claiming to be from Honeyman to not be form Honeyman. This of course +creates an interesting paradox known as the “obfuscated Peter Honeyman +paradox”. Should Peter Honeyman actually submit an obfuscated entry, +he alone is excluded from the above, as we will likely believe +it just another attempt at confusion. This guideline is known +as the “Peter Honeyman is exempt” guideline.

        +

        BTW: None of the entries claiming to be from Peter Honeyman have ever +won an award. So it is theoretically possible that Peter Honeyman +did submit an entry in the past. In the past, Peter had denied +submitting anything to the IOCCC. Perhaps those entries were +submitted by one of his students?

        +

        Hopefully we are very CLEAR on this point! The rules now strongly state: +PLEASE DO NOT put a name of an author, in an obvious way, into your +source code, remarks, data files, etc. The above “Peter Honeyman is +exempt” not withstanding.

        +

        We seemed to have digressed again … :-) Returning to the judging process:

        +

        We prefer to be kept in the dark as much as you are until the final +awards are given. We enjoy the surprise of finding out in the end, +who won and where they were from.

        +

        We attempt to keep all entries anonymous, unless they win an award. +Because the main ‘prize’ of winning is being announced, we make all +attempts to send non-winners into oblivion. We remove all non-winning +files, and shred all related paper. By tradition, we do not even +reveal the number of entries that we received.

        +

        During the judging process. a process that spans multiple sessions +over a few weeks, post general updates from our @IOCCC twitter account.

        +

        Once we have selected the winners, for each category we will tweet:

        +
          +
        • category name
        • +
        • name(s) of the authors (or anonymous if requested)
        • +
        • twitter handle(s) (if provided and if anonymity was not requested)
        • +
        • country code(s) of the author(s)
        • +
        +

        After the initial announcement, we attempt to send email to the +authors of the winning entries. One reason we do this is to give +the authors a chance to comment on the way we have presented their +entry. They are given the chance to correct mistakes and typos. We +often accept their suggestions/comments about our remarks as well. +This is done prior to posting the winners to the wide world.

        +

        An important 2023 update to how winners are announced

        +

        The IOCCC no longer uses twitter. IOCCC entries will be announced +by a git commit to the IOCCC entries repo:

        +
            https://github.com/ioccc-src/winner
        +

        that, in turn, updates the offivial IOCCC web site:

        +
            https://www.ioccc.org/index.html
        +

        In addition a note is posted to the IOCCC Mastodon account:

        +
            https://fosstodon.org/@ioccc
        +

        Back to the Judging process

        +

        Judging consists of a number of elimination rounds. During a round, +the collection of entries are divided into two roughly equal piles; +the pile that advances on to the next round, and the pile that does +not. We also re-examine the entries that were eliminated in the +previous round. Thus, an entry gets at least two readings.

        +

        A reading consists of a number of actions:

        +
          +
        • reading the “how to build” information and forming a Makefile
        • +
        • reading prog.c, the C source
        • +
        • reviewing the “remarks” information
        • +
        • briefly looking any any supplied data files
        • +
        • passing the source thru the C pre-processor +skipping over any #include files
        • +
        • performing a number of C beautify/cleanup edits on the source
        • +
        • passing the beautified source thru the C pre-processor +skipping over any #include files
        • +
        • compiling/building the source
        • +
        • running the program
        • +
        • Doing other things that only IOCCC judges know about :-)
        • +
        +

        In later rounds, other actions are performed including performing +miscellaneous tests on the source and binary.

        +

        | This is the very guideline that goes, BING!

        +

        Until we reduce the stack of entries down to about 25 entries, entries +are judged on an individual basis. An entry is set aside because it +does not, in our opinion, meet the standard established by the round. +When the number of entries thins to about 25 entries, we begin to form +award categories. Entries begin to compete with each other for awards. +An entry will often compete in several categories.

        +

        The actual award category list will vary depending on the types of entries +we receive. A typical category list might be:

        +
          +
        • best small one line program (see above about one line programs)
        • +
        • best small program
        • +
        • strangest/most creative source layout
        • +
        • most useful obfuscated program
        • +
        • best game that is obfuscated
        • +
        • most creatively obfuscated program
        • +
        • most deceptive C code (code with deceptive comments and source code)
        • +
        • best X client (see OUR LIKES AND DISLIKES)
        • +
        • best abuse of ISO C or ANSI C standard (see above about compilers)
        • +
        • best abuse of the C preprocessor
        • +
        • worst abuse of the rules
        • +
        • (anything else so strange that it deserves an award)
        • +
        +

        We do not limit ourselves to this list. For example, a few entries are so +good/bad that they are declared winners at the start of the final round. +We will invent awards categories for them, if necessary.

        +

        In the final round process, we perform the difficult tasks of +reducing the remaining entries (typically about 25) down to to about +half that number: declaring those remaining to be winners.

        +

        Often we are confident that the entries that make it into +the final round are definitely better than the ones that do not +make it. The selection of the winners out of the final round, is +less clear cut.

        +

        Sometimes a final round entry is good enough to win, but is beat out +by a similar, but slightly better entry. For this reason, it is +sometimes worthwhile to re-enter an improved version of an entry +that failed to win in a previous year. This assumes, of course, +that the entry is worth improving in the first place!

        +

        More than one IOCCC judge has been known to bribe another IOCCC judge +into voting for a winning entry by offering a bit high quality chocolate. +This technique is highly discouraged for use by non-IOCCC judges.

        +

        More often than not, we select a small entry (usually one line), a +strange/creative layout entry. We sometimes also select an +entry that abuses the contest guidelines in an interesting way, +or that stretches the content rules that while legal, is +nevertheless goes against the intent of the rules.

        +

        In the end, we traditionally pick one entry as ‘best’. Sometimes such +an entry simply far exceeds any of the other entries. More often, the +‘best’ is picked because it does well in a number of categories.

        +

        In years past, we renamed the winning entry from prog.c to a +name related to the submitter(s) names. This is no longer done. +Winning source is called prog.c A compiled binary is called prog.

        +

        ANNOUNCEMENT OF WINNERS:

        +

        The judges will tweet initial announcement of who won, the name +of their award, and a very brief description of the winning entry +from the @IOCCC twitter handle. Non-twitter users should visit:

        +
            https://twitter.com/ioccc
        +

        An important update to this historic note

        +

        -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

        +

        | The IOCCC no longer uses twitter.

        +

        | Today the IOCCC uses Mastodon.

        +

        | For more information and to see our IOCCC Mastodon posts, see:

        +
            https://fosstodon.org/@ioccc
        +

        -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

        +

        Non-twitter users should force their browsers to reload the above URL +to be sure they are seeing the most recent tweets.

        +

        The judges will then post an initial announcement of who won, the name +of their award, and a very brief description of the winning entry +on the IOCCC web site:

        +
            https://www.ioccc.org/whowon.html
        +

        We will also attempt to submit a brief announcement story to /.:

        +
            https://slashdot.org
        +

        that, depending on the willingness of the /. editors, may be posted +to their site at the same time.

        +

        Note that initial announcement will NOT contain source. This is because +the winning authors are given a chance to review the judges comments, +and test our Makefile. This review process typically takes a few weeks.

        +

        Sometime after the initial announcement, and once the review +by the winners has been completed, the winning source will be +posted to the IOCCC web site:

        +
            https://www.ioccc.org/years.html
        +
        +    NOTE: previous winners are available at that URL
        +

        We will also tweet, via @IOCCC, when the winning source is available.

        +

        An important 2023 update to how winners are announced

        +

        The IOCCC no longer uses twitter. IOCCC entries will be announced +by a git commit to the IOCCC entries repo:

        +
            https://github.com/ioccc-src/winner
        +

        that, in turn, updates the official IOCCC web site:

        +
            https://www.ioccc.org/index.html
        +

        In addition a note is posted to the IOCCC Mastodon account:

        +
            https://fosstodon.org/@ioccc
        +

        Back to annoucement of winners

        +

        It is pointless to ask the IOCCC judges how many entries we receive. +Other government TLA or FLA snooping organizations are prohibited from +either confirming, denying or revealing any knowledge of this data point.

        +

        Often, winning entries are published in selected magazines from around +the world. Winners have appeared in books (“The New Hackers Dictionary”) +and on T-Shirts. More than one winner has been turned in a tattoo!

        +

        Last, but not least, winners receive international fame and flames! :-)

        +

        FOR MORE INFORMATION:

        +

        You may contact the judges by sending email to the following address:

        +
        |   q.2020@ioccc.org        (do not submit entries to this address)
        +

        | You must include the words ‘ioccc 2020 question’ in the subject of your +email message when sending email to the judges.

        +

        Questions and comments about the contest are welcome. Comments about +confusing rules and guidelines are also welcome.

        +

        The rules and the guidelines may (and often do) change from year to +year. You should be sure you have the current rules and guidelines +prior to submitting entries.

        +

        Check out the IOCCC Web page:

        +
            https://www.ioccc.org
        +

        It has rules, guidelines and winners of previous contests (1984 to date).

        +

        For the updates and breaking IOCCC news, you are encouraged to follow +the twitter handle:

        +
            @IOCCC
        +

        You do not have to be a twitter user to follow @IOCCC. Non-twitter +users should access:

        +
            https://twitter.com/ioccc
        +

        Non-twitter users should force their browsers to reload the above URL +to be sure they are seeing the most recent tweets.

        +

        An important update to this historic note

        +

        -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

        +

        | The IOCCC no longer uses twitter.

        +

        | Today the IOCCC uses Mastodon.

        +

        | For more information and to see our IOCCC Mastodon posts, see:

        +
            https://fosstodon.org/@ioccc
        +

        -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

        +

        Leonid A. Broukhis +chongo (Landon Curt Noll) //
        +

        + + + + + + + +
        + + + + +
        + + + + + + + + + + + + + + + diff --git a/next/guidelines.md b/next/guidelines.md new file mode 100644 index 000000000..7c018a813 --- /dev/null +++ b/next/guidelines.md @@ -0,0 +1,1160 @@ + + +# WARNING: These guidelines are OUT OF DATE + +They are a **very tentative proposal** for the next IOCCC +that is **VERY LIKELY** to be updated before the next IOCCC. +They are are provided as a **very tentative** hint at what +might be used in a future IOCCC. + +Please regard these guidelines as a historic archive. + + +# The IOCCC is closed + +The IOCCC is **NOT** accepting new submissions at this time. See the +[IOCCC winning entries page](years.html) for the entires that have won the IOCCC. + +Watch both [the IOCCC status page](status.html) and the +[@IOCCC mastodon feed](https://fosstodon.org/@ioccc) for information about future IOCCC openings. + + + +# 27th International Obfuscated C Code Contest Official Guidelines + +Copyright © 2024 Leonid A. Broukhis, Landon Curt Noll. + +All Rights Reserved. Permission for personal, education or non-profit use is +granted provided this this copyright and notice are included in its entirety +and remains unaltered. All other uses must receive prior permission in +writing from the contest judges. + + +## Guidelines version + +**`|`** This guidelines file is version **2023-04-04-v28**. + + +### Change marks + +**`|`** **← Lines that start with this symbol indicate a change from the previous IOCCC** + +Most lines (we sometimes make mistakes) that were modified start the **`|`** symbol. + + +# ABOUT THIS FILE: + +This file contains guidelines intended to help people who wish to +submit entries to the International Obfuscated C Code Contest (IOCCC). + +This is not the IOCCC rules, though it does contain comments about +them. The guidelines should be viewed as hints and suggestions. +Entries that violate the guidelines but remain within the rules are +allowed. Even so, you are safer if you remain within the guidelines. + +You should read the current IOCCC rules, prior to submitting entries. +The rules are typically sent out with these guidelines. + + +# WHAT'S NEW IN 2019/2020 + +**`|`** This IOCCC runs from **2019-Dec-26 06:01:41 UTC** to **2020-Mar-15 06:26:49 UTC**. + +**`|`** The reason for the times of day are so that key IOCCC events occur during UTC +**`|`** "prime time". Do you understand why we factored this into the rules and +**`|`** guidelines? :-) + +Until the start of this IOCCC, these rules, guidelines and iocccsize.c tool +should be considered provisional BETA versions and may be adjusted +at any time. + +**`|`** Even though the contest will start in 2019, because the contest will close +**`|`** in 2020, URLs, subject lines, and contest related email addresses use 2019. + +The IOCCC submission URL: + +``` + https://submit.ioccc.org/ +``` + +**`|`** The submit URL should be active on or slightly before **2020-Jan-15 12:21:37 UTC**. + +Please wait to submit your entries until after that time. + +The official rules, guidelines and iocccsize.c tool will be available +on the official IOCCC web site on or slightly before start of this IOCCC. +Please check the IOCCC web site "How to enter" link: + +``` + https://www.ioccc.org/index.html#enter +``` + +on or after the start of this IOCCC to be sure you are using the correct +versions of these items before using the IOCCC entry submission URL. + + +# HINTS AND SUGGESTIONS: + +You are encouraged to examine the winners of previous contests. See +**FOR MORE INFORMATION** for details on how to get previous winners. + +Keep in mind that rules change from year to year, so some winning entries +may not be valid entries this year. What was unique and novel one year +might be 'old' the next year. + +An entry is usually examined in a number of ways. We typically apply +a number of tests to an entry: + +* look at the original source +* convert ANSI trigraphs to ASCII +* C pre-process the source ignoring '#include' lines +* C pre-process the source ignoring '#define' and '#include' lines +* run it through a C beautifier +* examine the algorithm +* compile it (with flags to enable all warnings) +* execute it + +You should consider how your entry looks in each of the above tests. +You should ask yourself if your entry remains obscure after it has been +'_cleaned up_' by the C pre-processor and a C beautifier. + +Your entry need not pass all of the above tests. In certain +cases, a test is not important. Entries that compete for the +'strangest/most creative source layout' need not do as well as +others in terms of their algorithm. On the other hand, given +two such entries, we are more inclined to pick the entry that +does something interesting when you run it. + +We try to avoid limiting creativity in our rules. As such, we leave +the contest open for creative rule interpretation. As in real life +programming, interpreting a requirements document or a customer request +is important. For this reason, we often award 'worst abuse of the +rules' to an entry that illustrates this point in an ironic way. + +We do realize that there are holes in the rules, and invite entries +to attempt to exploit them. We will award 'worst abuse of the rules' +and then plug the hole next year. Even so, we will attempt to use +**`|`** the smallest plug needed, if not smaller. Or, maybe not. :-) + +**`|`** There may be less than 2^7-1 reasons why these guidelines seem obfuscated. + +Check out your program and be sure that it works. We sometimes make +the effort to debug an entry that has a slight problem, particularly +in or near the final round. On the other hand, we have seen some +of the best entries fall down because they didn't work. + +We tend to look down on a prime number printer that claims that +16 is a prime number. If you do have a bug, you are better off +documenting it. Noting "this entry sometimes prints the 4th power +of a prime by mistake" would save the above entry. And sometimes, +a strange bug/feature can even help the entry! Of course, a correctly +working entry is best. Clever people will note that 16 might be prime +under certain conditions. Wise people, when submitting something clever +will fully explain such cleverness in their entry's remarks file. + +People who are considering to just use some complex mathematical +function or state machine to spell out something such as "hello, +world!" really really, and we do mean really, do need to be more creative. + +Ultra-obfuscated programs are, in some cases, easier to +deobfuscate than subtly-obfuscated programs. Consider using +misleading or subtle tricks layered on top of or under an +appropriate level of obfuscation. A clean looking program with +misleading comments and variable names might be a good start. + +When programs use VTxxx/ANSI sequences, they should NOT limited to a +specific terminal brand. Those programs that work in a standard xterm +are considered more portable. + +**`|`** Rule 2 (the size rule) refers to the use of an IOCCC size tool. +**`|`** The source for this tool is found at: + +``` +| https://www.ioccc.org/2020/iocccsize.c +``` + +To further clarify rule 2, we subdivided it into two parts, 2a and 2b. +**`|`** Your entry must satisfy BOTH the maximum size rule 2a AND your entry +must satisfy the IOCCC size tool rule 2b. + +The IOCCC size tool should be compiled as: + +``` + cc -pedantic -Wall -Wextra -std=c11 iocccsize.c -o iocccsize +``` + +This tool imposes a 2nd limit on C code size (rule 2b). To check your +code against the 2nd limit of rule 2, use the -i command line option. +For example: + +``` + ./iocccsize -i < prog.c +``` + +The IOCCC size tool, when using the -i option, may be summarized as: + +``` + The size tool counts most C reserved words (keyword, secondary, + and selected preprocessor keywords) as 1. The size tool counts all + other octets as 1 excluding ASCII whitespace, and excluding any + ';', '{' or '}' followed by ASCII whitespace, and excluding any + ';', '{' or '}' octet immediately before the end of file. +``` + +ASCII whitespace includes ASCII tab, ASCII space, ASCII newline, +ASCII formfeed, and ASCII carriage return. + +**`|`** When ';', '{' or '}' are within a C string, they may still not be +**`|`** counted by the IOCCC size tool. This is a feature, not a bug! + +In cases where the above summary and the algorithm implemented by +the IOCCC size tool source code conflict, the algorithm implemented +by the IOCCC size tool source code is preferred by the judges. + +There are at least 2 other reasons for selecting 2053 as the 2nd limit +besides the fact that 2053 is the next prime > 2048. These reasons +may be searched for and discovered if you are "Curios!" about 2053. :-) +Moreover, 2053 was the number of the kernel disk pack of one of the +judge's BESM-6. + +Take note that this secondary limit imposed by the IOCCC size tool +obviates some of the need to #define C reserved words in an effort +to get around the size limits of rule 2. + +Yes Virginia, **that is a hint**! + +**`|`** We applaud programs that do not issue warnings when compiled. +**`|`** To avoid warnings, you might be tempted to add various -Wno-foobar +**`|`** flags. Unfortunately such flags are NOT portable. Moreover, +**`|`** such flags are not consistent between different C compilers. +**`|`** Therefore we recommend that you consider one of several approaches: + +a) **`|`** Write code that does not generate compiler warnings +b) **`|`** Do not use flags that disable compiler warnings +c) **`|`** Provide instructions (such as in your Makefile) that + **`|`** uses appropriate disable compiler warnings flags for + **`|`** both clang and gcc +d) **`|`** Do something creative + + +# OUR LIKES AND DISLIKES: + +Doing masses of #defines to obscure the source has become 'old'. We +tend to 'see thru' masses of #defines due to our pre-processor tests +that we apply. Simply abusing #defines or -Dfoo=bar won't go as far +as a program that is more well rounded in confusion. + +Many C compilers dislike the following code, and so do we: + +``` + #define d define + #d foo /* <-- don't expect this to turn into #define foo */ +``` + +When declaring local or global variables, you should declare the type: + +``` + int this_is_fine; + this_is_not; /* <-- Try to avoid implicit type declarations */ +``` + +We suggest that you compile your entry with a commonly available +c11 (formerly C1X) C compiler (ISO/IEC 9899:2011). + +Do not assume that optional c11 features are supported. If you +must use an optional c11 feature, use feature test macros so +that implementations without such optional c11 features will see +an entry that is both functional and interesting. + +We like entries that have workarounds that allow someone with +an older c99 (ISO/IEC 9899:1999) compiler to be able to compile +and enjoy your entry. + +We really like "lint free" code. However lint is a toll of the past. +So try to ensure that your entry compiles warning free. If possible, +to compile compile your code using: + +``` + -Wall -Wextra -pedantic +``` + +For compilers, such as clang, that have the -Weverything option, try +to make your code compile warning free using: + +``` + -Wall -Wextra -Weverything -pedantic +``` + +If you must turn off various warnings on the compile line such as: + +``` + ... -Wno-empty-body -Wno-return-type ... +``` + +be sure to clearly state so in your remarks AS WELL AS in +your "how to build" / Makefile. + +All other things being equal, a program that must turn off fewer +warnings will be considered better, for certain values of better. + +Unless you clearly state otherwise in your remarks AS WELL AS in +your "how to build" / Makefile we will compile using: + +``` + -O3 -std=c11 +``` + +Anyone care to submit an entry that makes gratuitous use of all +of the c11 reserved words in their intended C language contexts? +NOTE: As with the use of the word Belgium, the use of certain gratuitous +c11 reserved words may be completely banned in all parts of the Galaxy, +except in one small part (ISO/IEC 9899:2011) where they might not truly +understand the implications of such words. + +``` + http://hitchhikers.wikia.com/wiki/Belgium + http://www.bezem.de/pdf/ReservedWordsInC.pdf +``` + +DO NOT assume that we will use gcc to compile your program. +We will first try to compile your program using Clang. + +It is much better to not use any obscure compiler flags if +you can help it. We want to discourage the use of obscure compiler +flags that would make the program less portable. + +One side effect of the above is that you cannot assume the use +of nested functions such as: + +``` + main() { +| void please_do_not_submit_this() { +| printf("The machine that goes BING!\n"); + } +| please_do_not_submit_this(); + } +``` + +This is because such nested functions often requires one to compile with +a flag such as -fnested-functions that is not found on some compilers. + +On 2012 July 20, the judges rescinded the encouragement of +nested functions. Such constructions, while interesting and sometimes +amusing, will have to wait until they required by a C standard that are +actually implemented in commonly used C compilers. Sorry! + +**`|`** We prefer programs that do not require a fish license: crayons and +**`|`** cat detector vans not withstanding. + +If your entry uses functions that have a variable number of +arguments, be careful. Systems implement va_list as a wide variety +of ways. Because of this, a number of operations using va_list are +not portable and must not be used: + +* assigning a non-va_list variable to/from a va_list variable +* casting a non-va_list variable into/from a va_list variable +* passing a va_list variable to a function expecting a non-va_list arg +* passing a non-va_list variable to a function expecting a va_list arg +* performing arithmetic on va_list variables +* using va_list as a structure or union + +In particular, do not treat va_list variables as if they were a char **'s. + +Avoid using . Use instead. + +On 28 January 2007, the Judges rescinded the requirement that the +'#" in a C preprocessor directive must be the 1st non-whitespace octet. + +The exit() function returns void. Some broken systems have exit() +return int, your entry should assume that exit() returns a void. + +**`|`** This guideline has a change mark at the very start of this line. + +Small programs are best when they are short, obscure and concise. +While such programs are not as complex as other winners, they do +serve a useful purpose. They are often the only program that people +attempt to completely understand. For this reason, we look for +programs that are compact, and are instructional. + +While those who are used to temperatures found on dwarf planet, +(yes Virginia, dwarf planets are planets) such as Pluto might be able to +explain to the Walrus why our seas are boiling hot, the question of +whether pigs have wings is likely to remain a debatable point to most. + +One line programs should be short one line programs: say around 80 to 120 +octets long. Going well beyond 140 octets is a bit too long to be called +a one-liner in our vague opinion. + +We tend to dislike programs that: + +* are very hardware specific +* are very OS version specific + (index/strchr differences are OK, but socket/streams specific + code is likely not to be) +* dump core or have compiler warnings + (it is OK only if you warn us in the 'remark' header item) +* won't compile or run under a POSIX P1003.1/P1003.2 like systems +* depend on a utility or application not normally found on most + most POSIX P1003.1/P1003.2 like systems +* abuse the build file to get around the size limit +* obfuscate by excessive use of ANSI trigraphs +* are longer than they need to be +* are "blob-ier" than they need to be +* are rather similar to previous winners :-( +* are too similar to previous losers :-) +* **`|`** that mandate the exclusive the use of an specific Integrated +* **`|`** Development Environment (IDE) + +**`|`** In order to encourage entry portability, we dislike entries that +**`|`** fail to build unless one is using an IDE. For example, do not +**`|`** mandate that one must use Microsoft Visual Studio to compile +**`|`** your entry. Nevertheless some of the better IDEs have command-line +**`|`** interfaces to their compilers, once one learns how to invoke a shell. + +**`|`** The program must compile and link cleanly in a POSIX-like environment. +**`|`** Therefore do not assume the system has a windows.h include file: + +``` +| #include /* we dislike this include */ +``` + +Unless you are cramped for space, or unless you are entering the +'best one liner' category, we suggest that you format your program +in a more creative way than simply forming excessively long lines. + +At least one judge prefers to maintain the use of the leap-second +as part of the world's time standard. If your code prints time +with seconds, we prefer that your code be capable of printing the +time of day during a leap-second where the value in seconds +after the minute mark is 60. + +The "how to build" make process should not be used to try and get +around the size limit. It is one thing to make use of a several -D's +**`|`** on the compile line to help out, but it is quite another to use many +bytes of -D's in order to try and squeeze the source under the size limit. + +**`|`** Your source code, post-pre-processing, should not exceed the size +**`|`** of Windows. :-) + +The judges, as a group, have a history giving wide degree of latitude +to reasonable entries. And recently they have had as much longitudinal +variation as it is possible to have on Earth. :-) + +You should try to restrict commands used on the build file to +POSIX-like or common Unix-like commands. You can also compile +and use your own programs. If you do, try to build and execute +from the current directory. This restriction is not a hard and +absolute one. The intent is to ensure that the building if your +program is reasonably portable. + +We prefer programs that are portable across a wide variety of Unix-like +operating systems (i.e., Linux, GNU Hurd, BSD, Unix, etc.). + +You are in a maze of twisty guidelines, all different. + +There are at least zero judges who think that Fideism has little +or nothing to do with the IOCCC judging process. + +Don't forget that the building of your program should be done +***without human intervention***. So don't do things such as: + +``` + prog: prog.c + #echo this next line requires data from standard input + cat > prog.c + ${CC} prog.c -o prog +``` + +However, you can do something cute such as making your program +do something dumb (or cute) when it is built 'automatically'. And +when it is run with a human involved, do something more clever. +For example, one could use the build instructions: + +``` + prog: prog.c + ${CC} prog.c -DNON_HUMAN_COMPILE -o prog + @echo "See remarks section about alternate ways to compile" +``` + +and then include special notes in the program "remarks" for +alternate / human intervention based building. + +We want to get away from source that is simply a compact blob of +octets. Really try to be more creative than blob coding. *HINT!* + +Please do not use things like gzip to get around the size limit. +Please try to be much more creative. + +We really dislike entries that make blatant use of including +large data files to get around the source code size limit. + +We do not recommend submitting systemd source code to the IOCCC, +if nothing else because that code is likely to exceed the source code +size limit. This isn't to say that another highly compact and obfuscated +replacement of init would not be an interesting submission. + +Did we remember to indicate that programs that blatantly use +some complex state machine to do something simple are boring? +We think we did. :-) + +All generalizations are false, including this one. -- Mark Twain + +Given two versions of the same program, one that is a compact blob +of code, and the other that is formatted more like a typical C +program, we tend to favor the second version. Of course, a third +version of the same program that is formatted in an interesting +and/or obfuscated way, would definitely win over the first two! +Remember, you can submit more than one entry. See the rules for details. + +We suggest that you avoid trying for the 'smallest self-replicating' +source. The smallest, a zero byte entry, won in 1994. + +Programs that claim to be the smallest C source that does something, really +better be the smallest such program or they risk being rejected because +they do not work as documented. + +Please note that the C source below, besides lacking in obfuscation, +is NOT the smallest C source file that when compiled and run, dumps core: + +``` + main; +``` + +We do not like writable strings. That is, we don't want stuff like: + +``` + char *T = "So many primes, so little time!"; + ... + T[14] = ';'; +``` + +Please don't make use of this feature, even if your system allows it. +However, initialized char arrays are OK to write over. This is OK: + +``` + char b[] = "Is this OK"; + b[9] = 'K'; +``` + +**`|`** There are more than one typos in this very sentence. + +X client entries should be as portable as possible. Entries that +adapt to a wide collection of environments will be favored. For +example, don't depend on a particular type or size of display. +Don't assume the use of a particular browser. Instead assume a +generic browser that forms to a widely used W3C standard. +Don't assume a particular sound sub-system or video driver is installed +in the OS. Instead, make use of a well known and widely available open +source program (one that actually works) to display audio/visual data. + +X client entries should avoid using X related libraries and +software that is not in wide spread use. + +This is the only guideline that contains the word fizzbin. +**`|`** However, do you know how to play fizzbin? You do?!? (Except on Tuesday) + +We don't like entries that use proprietary toolkits such as the M*tif, +Xv*ew, or OpenL*ok toolkits, since not everyone has them. Use of an +open source toolkit that is widely and freely available instead. + +**NOTE**: **`|`** The previous guideline in this spot has been replaced by this guideline: + +X client entries should not to depend on particular items on +.Xdefaults. If you must do so, be sure to note the required lines +in the program "remarks". They should also not depend on any +particular window manager. + +Try to avoid entries that play silent sound segments or play the +Happy Birthday song; music that some people believe is copyrighted +(even if such copyrights appear to be bogus and/or blatant abuses of +the copyright system). + +While we recognize that UNIX is not a universal operating system, the +contest does have a bias towards such systems. In an effort to expand +the scope of the contest, we phrase our bias in terms of POSIX P1003.1 +and P1003.2 standards. This will allow certain non-UNIX OS users to +submit entries. On the other hand, this is a guideline and not a rule. +We will not reject an entry based on some POSIX technicality. + +When dealing with OS and application environments, we suggest that you +be reasonable with a nod towards vanilla UNIX-like systems. POSIX will +evolve but not as much as the contest. + +You very well might not be completely prohibited from failing to not +partly misunderstand this particular guideline, but of course we could +**`|`** not possibly comment. Nevertheless, you are neither prohibited, nor are +**`|`** you required to determine that this or the previous sentence is either false +**`|`** and/or misleading. Therefore, it might be wise for you to not fail to consider +**`|`** to do so, accordingly. Thank you. + +Any complaints about the above guideline could be addressed to the +Speaker of the House of Commons, or to the speaker of your national +**`|`** parliament should you have one. + +We like programs that: + +* are as concise and small as they need to be +* do something at least quasi-interesting +* are portable +* are unique or novel in their obfuscation style +* MAKE USE OF A NUMBER OF DIFFERENT TYPES OF OBFUSCATION <== HINT!! +* make us laugh and/or throw up :-) (humor really helps!) +* make us want to eat good chocolate. + +Some types of programs can't excel (anti-tm) in some areas. Your +program doesn't have to excel in all areas, but doing well in several +areas really does help. + +You are better off explaining what your entry does in the program +"remarks" section rather than leaving it obscure for the judges +as we might miss something and/or be too tired to notice. + +**`|`** Please avoid this specific individual guideline, if at all possible. + +We freely admit that interesting, creative or humorous comments in +the program "remarks" help your chances of winning. If you had to +read so many twisted entries, you too would enjoy a good laugh or two. +We think the readers of the contest winners do as well. We do read +the program "remarks" during the judging process, so it is worth your +while to write remarkable program "remarks". + +We dislike C code with trailing control-M's (\r or \015) that results +in compilation failures. Some non-Unix/non-Linux tools such as +MS Visual C and MS Visual C++ leave trailing control-M's on lines. +Users of such tools should strip off such control-M's before submitting +their entries. In some cases tools have a "Save As" option that will +prevent such trailing control-M's being added. + +One should restrict libcurses to portable features found on BSD +or Linux curses. + +Rule 13 states any C source that fails to compile because of unescaped +octets with the high bit set (octet value >= 128) will be rejected. +Instead of unescaped octets, you should use \octal or \hex escapes: + +``` + /* 123456789 123456789 123456789 123456 */ + char *foo = "This string is 36 octets in length \263"; + /* This octet requires 4 octets of source ^^^^ */ + if (strlen(foo) == 36) printf("foo is 36 octets plus a final NUL\n"); + else printf("This code should not print this message\n"); +``` + +It is a very good idea to, in your remarks file, tell us why you +think your entry is obfuscated. This is particularly true if +your entry is has some very subtle obfuscations that we might +otherwise overlook. <<-- Hint! + +Anyone can format their code into a dense blob. A really clever +author will try format their entry using a "normal" formatting style +such that at first glance (if you squint and don't look at the details) +the code might pass for non-obfuscated C. Deceptive comments, +and mis-leading formatting, in some cases, may be a plus. On the +other hand, a misleading code style requires more source bytes. + +If you do elect to use misleading formatting and comments, we +suggest you remark on this point in your remarks where you talk +about why you think your entry is obfuscated. On the other hand, +if you are pushing up against the size limits, you may be forced +into creating a dense blob. Such are the trade offs that obfuscators face! + +We prefer code that can run on either a 64-bit or 32-bit processor. +However, it is unwise to assume it will run on an i386 or x86 architecture. + +We believe that Mark Twain's remark: + +``` + Get your facts first, then you can distort them as you please. +``` + +is a good guideline for those writing code for the IOCCC. + +The IOCCC size tool source, iocccsize.c, is not an original work, +**`|`** unless you are Anthony C Howe, in which case it is original! +**`|`** Submitting source that uses the content iocccsize.c, unless you are +**`|`** Anthony C Howe, might run the risk of violating rule 7. + +Rule 7 does not prohibit you from writing your own obfuscated IOCCC size tool. +However if you do, you might wish to make your tool do something more +interesting than simply implementing the IOCCC size tool algorithm. + +While programs that only run in a specific word size are OK. If you have +to pick, choose a 64-bit word size. + +If we are feeling ornery we might choose to compile your program +for running on an Arduino or a PDP-11. Heck, should we ever find +an emulator of 60-bit CDC Cyber CPU running a POSIX-like OS, we +might just try your entry on that emulator as well :-) + +If your entry MUST run only in 32-bit mode on an Intel processor, add the +following compiler flag: + +``` + -arch i386 +``` + +to your "how to build" make compile line. For example: + +``` + prog: prog.c + ${CC} prog.c -arch i386 -o prog +``` + +Be even more creative! + +If there are limitations in your entry, you are highly encouraged +to note such limitations in your remarks file. For example if your +entry factors values up to a certain size, you might want to state: + +``` + This entry factors values up 2305567963945518424753102147331756070. + Attempting to factor larger values will produce unpredictable results. +``` + +The judges might try to factor the value -5, so you want to might state: + +``` + This entry factors positive values up 2305567963945518424753102147331756070. + Attempting to factor large values will produce unpredictable results. +``` + +However the judges might try to also factor 0, so you want to might state: + +``` + This entry factors values between 1 and 2305567963945518424753102147331756070. + Attempting to factor values outside that range will produce unpredictable results. +``` + +Moreover the try to also factor 3.5 or 0x7, or Fred, so you want to might state: + +``` + This entry factors integers between 1 and 2305567963945518424753102147331756070. + Attempting to factor anything else will produce unpredictable results. +``` + +You entry might be better off catching the attempt to factor bogus values +and doing something interesting. So you might want to code accordingly and state: + +``` + This entry factors integers between 1 and 2305567963945518424753102147331756070. + Attempting to factor anything else will cause the program to insult your + pet fish Eric. +``` + +The judges might not have a pet fish named Eric, so might want to state: + +``` + This entry factors integers between 1 and 2305567963945518424753102147331756070. + Attempting to factor anything else will cause the program to insult your + pet fish Eric, or in the case that you lack such a pet, will insult the + pet that you do not have. +``` + +When all other things are equal, an entry with fewer limitation will be judged +better than an entry with lots of limitations. So you might want to code accordingly +and state: + +``` + This entry attempts to a factor value of any size provided that the program + is given enough time and memory. If the value is not a proper integer, the + program will insult a fish named Eric, even if such a fish does not exist. +``` + + +# ABUSING THE RULES: + +Legal abuse of the rules is somewhat encouraged. Legal rule abuse may +involve, but is not limited to, doing things that are technically +allowed by the rules and yet do not fit the spirit of what we intended +to be submitted. + +Legal rule abuse is encouraged to help promote creativity. Rule abuse +entries, regardless of if they receive an award, result in changes to +the next year's rules and guidelines. + +Legal abuse of the rules is NOT an invitation to violate the rules. +An entry that violates the rules in the opinion of the judges, WILL be +disqualified. RULE ABUSE CARRIES A CERTAIN LEVEL OF RISK! If you +have an entry that might otherwise be interesting, you might want to +submit two versions; one that does not abuse the rules and one that +does. + +If you intend to abuse the rules, indicate so in the program +"remarks". You must try to justify why you consider your rule abuse +to be allowed under the rules. That is, you must plead your case as +to why your entry is valid. Humor and/or creativity help plead a +case. + +Abusing the web submission procedure tends to annoy us more +than amuse us. Spend your creative energy on content of your +entry rather than on the submission process itself. + +We are often asked why the contest rules and guidelines seem too +strange or contain mistakes, flaws or grammatical errors. One reason +is that we sometimes make genuine mistakes. But in many cases such +problems, flaws or areas of confusion are deliberate. Changes to +rules and guidelines in response to rule abuses, are done in a minimal +fashion. Often we will deliberately leave behind holes (or introduce +new ones) so that future rule abuse may continue. A cleaver author +should be able to read them and "drive a truck through the holes" in +the rules and guidelines. + +At the risk of stating the obvious, this contest is a parody of the +software development process. The rules and guidelines are only a +small part of the overall contest. Even so, one may think the contest +rules and guideline process as a parody of the sometimes tragic +mismatch between what a customer (or marketing) wants and what +engineering delivers. Real programmers must face obfuscated +and sometimes conflicting specifications and requirements from marketing, +sales, product management an even from customers themselves on a +all too regular basis. This is one of the reasons why the rules and +guidelines are written in obfuscated form. + + +# JUDGING PROCESS: + +Entries are judged by Leonid A. Broukhis, Simon Cooper, Landon Curt Noll. + +Each entry submitted is given a random id number and subdirectory. The +entry files including, but not limited to prog.c, Makefile (that we +form from around your "how to build" information), as well as any +data files that you submit are all placed under their own directory. +stored and judged from this directory. + +Any information about the authors is not read by the judges until +the judging process is complete, and then only from entries that have +won an award. Because we do not read this information for entries that +do not win, we do not know who did not win. + +The above process helps keep us biased for/against any one particular +individual. Therefore you MUST refrain from putting any information +that reveals your identity in your entry. + +Now some people point out that coding style might reveal the information +about the others. However we consider this to be simply circumstantial +and outside the scope of the above paragraph. + +Some people, in the past, have attempted to obfuscate their identity by +including comments of famous Internet personalities such as Peter Honeyman +(http://www.citi.umich.edu/u/honey/). The judges are on to this +trick and therefore consider any obfuscated source or data file +claiming to be from Honeyman to not be form Honeyman. This of course +creates an interesting paradox known as the "obfuscated Peter Honeyman +paradox". Should Peter Honeyman actually submit an obfuscated entry, +he alone is excluded from the above, as we will likely believe +it just another attempt at confusion. This guideline is known +as the "Peter Honeyman is exempt" guideline. + +BTW: None of the entries claiming to be from Peter Honeyman have ever +won an award. So it is theoretically possible that Peter Honeyman +did submit an entry in the past. In the past, Peter had denied +submitting anything to the IOCCC. Perhaps those entries were +submitted by one of his students? + +Hopefully we are very CLEAR on this point! The rules now strongly state: +PLEASE DO NOT put a name of an author, in an obvious way, into your +source code, remarks, data files, etc. The above "Peter Honeyman is +exempt" not withstanding. + +We seemed to have digressed again ... :-) Returning to the judging process: + +We prefer to be kept in the dark as much as you are until the final +awards are given. We enjoy the surprise of finding out in the end, +who won and where they were from. + +We attempt to keep all entries anonymous, unless they win an award. +Because the main 'prize' of winning is being announced, we make all +attempts to send non-winners into oblivion. We remove all non-winning +files, and shred all related paper. By tradition, we do not even +reveal the number of entries that we received. + +During the judging process. a process that spans multiple sessions +over a few weeks, post general updates from our @IOCCC twitter account. + +Once we have selected the winners, for each category we will tweet: + +* category name +* name(s) of the authors (or anonymous if requested) +* twitter handle(s) (if provided and if anonymity was not requested) +* country code(s) of the author(s) + +After the initial announcement, we attempt to send email to the +authors of the winning entries. One reason we do this is to give +the authors a chance to comment on the way we have presented their +entry. They are given the chance to correct mistakes and typos. We +often accept their suggestions/comments about our remarks as well. +This is done prior to posting the winners to the wide world. + + +## An important 2023 update to how winners are announced + +The IOCCC no longer uses twitter. IOCCC entries will be announced +by a git commit to the IOCCC entries repo: + +``` + https://github.com/ioccc-src/winner +``` + +that, in turn, updates the offivial IOCCC web site: + +``` + https://www.ioccc.org/index.html +``` + +In addition a note is posted to the IOCCC Mastodon account: + +``` + https://fosstodon.org/@ioccc +``` + + +## Back to the Judging process + +Judging consists of a number of elimination rounds. During a round, +the collection of entries are divided into two roughly equal piles; +the pile that advances on to the next round, and the pile that does +not. We also re-examine the entries that were eliminated in the +previous round. Thus, an entry gets at least two readings. + +A reading consists of a number of actions: + +* reading the "how to build" information and forming a Makefile +* reading prog.c, the C source +* reviewing the "remarks" information +* briefly looking any any supplied data files +* passing the source thru the C pre-processor + skipping over any #include files +* performing a number of C beautify/cleanup edits on the source +* passing the beautified source thru the C pre-processor + skipping over any #include files +* compiling/building the source +* running the program +* Doing other things that only IOCCC judges know about :-) + +In later rounds, other actions are performed including performing +miscellaneous tests on the source and binary. + +**`|`** This is the very guideline that goes, BING! + +Until we reduce the stack of entries down to about 25 entries, entries +are judged on an individual basis. An entry is set aside because it +does not, in our opinion, meet the standard established by the round. +When the number of entries thins to about 25 entries, we begin to form +award categories. Entries begin to compete with each other for awards. +An entry will often compete in several categories. + +The actual award category list will vary depending on the types of entries +we receive. A typical category list might be: + +* best small one line program (see above about one line programs) +* best small program +* strangest/most creative source layout +* most useful obfuscated program +* best game that is obfuscated +* most creatively obfuscated program +* most deceptive C code (code with deceptive comments and source code) +* best X client (see OUR LIKES AND DISLIKES) +* best abuse of ISO C or ANSI C standard (see above about compilers) +* best abuse of the C preprocessor +* worst abuse of the rules +* (anything else so strange that it deserves an award) + +We do not limit ourselves to this list. For example, a few entries are so +good/bad that they are declared winners at the start of the final round. +We will invent awards categories for them, if necessary. + +In the final round process, we perform the difficult tasks of +reducing the remaining entries (typically about 25) down to to about +half that number: declaring those remaining to be winners. + +Often we are confident that the entries that make it into +the final round are definitely better than the ones that do not +make it. The selection of the winners out of the final round, is +less clear cut. + +Sometimes a final round entry is good enough to win, but is beat out +by a similar, but slightly better entry. For this reason, it is +sometimes worthwhile to re-enter an improved version of an entry +that failed to win in a previous year. This assumes, of course, +that the entry is worth improving in the first place! + +More than one IOCCC judge has been known to bribe another IOCCC judge +into voting for a winning entry by offering a bit high quality chocolate. +This technique is highly discouraged for use by non-IOCCC judges. + +More often than not, we select a small entry (usually one line), a +strange/creative layout entry. We sometimes also select an +entry that abuses the contest guidelines in an interesting way, +or that stretches the content rules that while legal, is +nevertheless goes against the intent of the rules. + +In the end, we traditionally pick one entry as 'best'. Sometimes such +an entry simply far exceeds any of the other entries. More often, the +'best' is picked because it does well in a number of categories. + +In years past, we renamed the winning entry from prog.c to a +name related to the submitter(s) names. This is no longer done. +Winning source is called prog.c A compiled binary is called prog. + + +# ANNOUNCEMENT OF WINNERS: + +The judges will tweet initial announcement of who won, the name +of their award, and a very brief description of the winning entry +from the @IOCCC twitter handle. Non-twitter users should visit: + +``` + https://twitter.com/ioccc +``` + + +## An important update to this historic note + +**-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-** + +**`|`** **The IOCCC no longer uses twitter**. + +**`|`** Today the [IOCCC uses Mastodon](../contact.html#mastodon). + +**`|`** For more information and to see our IOCCC Mastodon posts, see: + +``` + https://fosstodon.org/@ioccc +``` + +**-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-** + +Non-twitter users should force their browsers to reload the above URL +to be sure they are seeing the most recent tweets. + +The judges will then post an initial announcement of who won, the name +of their award, and a very brief description of the winning entry +on the IOCCC web site: + +``` + https://www.ioccc.org/whowon.html +``` + +We will also attempt to submit a brief announcement story to /.: + +``` + https://slashdot.org +``` + +that, depending on the willingness of the /. editors, may be posted +to their site at the same time. + +Note that initial announcement will NOT contain source. This is because +the winning authors are given a chance to review the judges comments, +and test our Makefile. This review process typically takes a few weeks. + +Sometime after the initial announcement, and once the review +by the winners has been completed, the winning source will be +posted to the IOCCC web site: + +``` + https://www.ioccc.org/years.html + + NOTE: previous winners are available at that URL +``` + +We will also tweet, via @IOCCC, when the winning source is available. + + +## An important 2023 update to how winners are announced + +The IOCCC no longer uses twitter. IOCCC entries will be announced +by a git commit to the IOCCC entries repo: + +``` + https://github.com/ioccc-src/winner +``` + +that, in turn, updates the official IOCCC web site: + +``` + https://www.ioccc.org/index.html +``` + +In addition a note is posted to the IOCCC Mastodon account: + +``` + https://fosstodon.org/@ioccc +``` + + +## Back to annoucement of winners + +It is pointless to ask the IOCCC judges how many entries we receive. +Other government TLA or FLA snooping organizations are prohibited from +either confirming, denying or revealing any knowledge of this data point. + +Often, winning entries are published in selected magazines from around +the world. Winners have appeared in books ("The New Hackers Dictionary") +and on T-Shirts. More than one winner has been turned in a tattoo! + +Last, but not least, winners receive international fame and flames! :-) + + +# FOR MORE INFORMATION: + +You may contact the judges by sending email to the following address: + +``` +| q.2020@ioccc.org (do not submit entries to this address) +``` + +**`|`** You must include the words 'ioccc 2020 question' in the subject of your +email message when sending email to the judges. + +Questions and comments about the contest are welcome. Comments about +confusing rules and guidelines are also welcome. + +The rules and the guidelines may (and often do) change from year to +year. You should be sure you have the current rules and guidelines +prior to submitting entries. + +Check out the IOCCC Web page: + +``` + https://www.ioccc.org +``` + +It has rules, guidelines and winners of previous contests (1984 to date). + +For the updates and breaking IOCCC news, you are encouraged to follow +the twitter handle: + +``` + @IOCCC +``` + +You do not have to be a twitter user to follow @IOCCC. Non-twitter +users should access: + +``` + https://twitter.com/ioccc +``` + +Non-twitter users should force their browsers to reload the above URL +to be sure they are seeing the most recent tweets. + + +## An important update to this historic note + +**-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-** + +**`|`** **The IOCCC no longer uses twitter**. + +**`|`** Today the [IOCCC uses Mastodon](../contact.html#mastodon). + +**`|`** For more information and to see our IOCCC Mastodon posts, see: + +``` + https://fosstodon.org/@ioccc +``` + +**-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-** + +Leonid A. Broukhis +chongo (Landon Curt Noll) /\cc/\ diff --git a/next/index.html b/next/index.html new file mode 100644 index 000000000..e32ab5f59 --- /dev/null +++ b/next/index.html @@ -0,0 +1,255 @@ + + + + + + + + + + + +The International Obfuscated C Code Contest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + IOCCC image by Matt Zucker +

        The International Obfuscated C Code Contest

        +

        IOCCC Rules and Guidelines

        +
        + + + + +
        +  +
        + + + + +
        + + + + + + + + + +
        + + + + + + + + + +

        IOCCC Rules and Guidelines

        +

        IMPORTANT: Did you read the Important disclaimers about scope +and did you check the current IOCCC status?

        + +

        You may also wish to review the +mkiocccentry tool repo, +especially when the rules and guidelines +are official, to be sure you are using an up to date official mkiocccentry tool set.

        +

        Important disclaimers about scope

        +

        When the IOCCC status is closed

        +

        When the IOCCC status is closed, the rules and guidelines +are OUT OF DATE.

        +

        They are a very tentative proposal for the next IOCCC +that is VERY LIKELY to be updated before the next IOCCC. +They are are provided as a tentative hint at what +might be used for the next IOCCC.

        +

        IMPORTANT: All tentative rules and guidelines +are subject to change by the IOCCC judges at any time. +See both the IOCCC news and the IOCCC +Mastodon feed as sometimes the +IOCCC judges mention changes there.

        +

        When the IOCCC status is pending

        +

        When the IOCCC status is pending, the rules and guidelines are +tentative.

        +

        One might think of them as a beta release for the IOCCC +that is about to open.

        +

        IMPORTANT: All tentative rules and guidelines +are subject to change by the IOCCC judges at any time. +See both the IOCCC news and the IOCCC +Mastodon feed as sometimes the +IOCCC judges mention changes there.

        +

        When the IOCCC status is open

        +

        When the IOCCC status is open, the rules and guidelines are OFFICIAL.

        +

        Unless some significant problem turns up (such as a need to delay +in when the IOCCC will close, or some major bug is discovered) they +will remain OFFICIAL for this IOCCC.

        +

        SUGGESTION: Watch both the IOCCC news and the IOCCC +Mastodon feed for the latest news +about any mentions changes.

        +

        When the IOCCC status is judging

        +

        When the IOCCC status is judging, the rules and guidelines are +for the current IOCCC that is no longer open for new submissions.

        +

        See the IOCCC news and well as the IOCCC +Mastodon feed for updates +on the IOCCC judging process as well as for the announcement +for who won the IOCCC.

        + + + + + + + + +
        + + + + +
        + + + + + + + + + + + + + + + diff --git a/next/rules.html b/next/rules.html new file mode 100644 index 000000000..690629e13 --- /dev/null +++ b/next/rules.html @@ -0,0 +1,430 @@ + + + + + + + + + + + +The International Obfuscated C Code Contest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        + IOCCC image by Matt Zucker +

        The International Obfuscated C Code Contest

        +

        IOCCC Rules

        +
        + + + + +
        +  +
        + + + + +
        + + + + + + + + + +
        + + + + + + + + + + +

        WARNING: These rules are OUT OF DATE

        +

        They are a very tentative proposal for the next IOCCC +that is VERY LIKELY to be updated before the next IOCCC. +They are are provided as a very tentative hint at what +might be used in a future IOCCC.

        +

        Please regard these rules as a historic archive.

        +

        The IOCCC is closed

        +

        The IOCCC is NOT accepting new submissions at this time. See the +IOCCC winning entries page for the entires that have won the IOCCC.

        +

        Watch both the IOCCC status page and the +@IOCCC mastodon feed for information about future IOCCC openings.

        + + +

        27th International Obfuscated C Code Contest Official Rules

        +

        | Copyright © 2024 Leonid A. Broukhis, Landon Curt Noll.

        +

        All Rights Reserved. Permission for personal, education or non-profit use is +granted provided this this copyright and notice are included in its entirety +and remains unaltered. All other uses must receive prior permission in +writing from the contest judges.

        +

        Rules version

        +

        | These rules are version 2024-04-04-v28.

        +

        Change marks

        +

        | ← Lines that start with this symbol indicate a change from the previous IOCCC

        +

        Most lines (we sometimes make mistakes) that were modified start the | symbol.

        +

        Obfuscate defined:

        +

        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.

        +

        Goals of the Contest

        +

        The goals of the IOCCC:

        +
          +
        • To write the most Obscure/Obfuscated C program within the rules.
        • +
        • To show the importance of programming style, in an ironic way.
        • +
        • To stress C compilers with unusual code.
        • +
        • To illustrate some of the subtleties of the C language.
        • +
        • To provide a safe forum for poor C code. :-)
        • +
        +

        Important IOCCC dates

        +

        | This IOCCC runs from 2019-Dec-26 06:01:41 UTC to 2020-Mar-15 06:26:49 UTC.

        +

        Until the start of this IOCCC, these rules, guidelines and iocccsize.c +tool should be considered provisional BETA versions and may be +adjusted at any time.

        +

        When the IOCCC is open, the submission URL is: +https://submit.ioccc.org/, at all other +times that link is likely to be unresponsive.

        +

        Please check the How to enter link link +for important information on how to submit to the IOCCC.

        +

        | The submit URL should be active on or slightly before 2020-Jan-15 12:21:37 UTC. +Please wait to submit your entries until after that time.

        +

        The official rules, guidelines and iocccsize.c tool will be available +on the official IOCCC web site on or slightly before start of this IOCCC.

        +

        Please recheck on or after the start of this IOCCC to be sure you +are using the correct versions of these items before using the IOCCC +entry submission URL.

        +

        RULES

        +

        To help us with the volume of entries, we ask that you follow these rules:

        +

        Rule 0

        +

        We need a rule 0. :-)

        +

        Rule 1

        +

        Your entry must be a complete program.

        +

        Rule 2

        +

        | The size rule requires your entry to satisfy BOTH rule 2a and rule 2b:

        +

        Rule 2a

        +

        The size of your program source must be <= 4096 bytesin length.

        +

        Rule 2b

        +

        When your program source is fed as input to the current IOCCC size +tool, and the IOCCC size tool -i command line option is used, the +value printed shall not exceed 2053.

        +

        | The source to the current IOCCC size tool is found in the +mkiocccentry tool repo.

        +

        Rule 3

        +

        Submissions should be performed using the instructions outlined at: +the How to enter link link.

        +

        To submit to an open IOCCC, you must the IOCCC submit server.

        +

        When the IOCCC is not open, that link will likely be unresponsive.

        +

        | The submit URL should be active on or slightly before 2020-Jan-15 12:21:37 UTC. +Please wait to submit your entries until after that time.

        +

        Rule 4

        +

        If your entry is selected as a winner, it will be modified as follows:

        +

        Your ‘build’ instructions will be incorporated into a Makefile.

        +

        Your source code will be the file prog.c. The compiled binary +will be called prog.

        +

        Rule 5

        +

        Your entry must not modify the content or filename of any part of your +original entry including, but not limited to prog.c, the Makefile +(we create from your how to build instructions), as well as any data +files you submit.

        +

        If you entry wishes to modify such content, it must first copy the +file to a new filename and then modify that copy.

        +

        Rule 6

        +

        | I am not a rule, I am a free(void *man)!

        +
                while (!understand(ioccc(rule(you(are(number(6))))))) { ha_ha_ha(); }
        +

        Rule 7

        +

        The obfuscated C program must be an original work that you own.

        +

        You (the authors) must own the contents of your submission OR +you must have permission from the owners to submit their content +under the following license:

        +

        | CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International

        +

        See also Rule 18.

        +

        If you submit any content that is owned by others, you MUST +detail that ownership (i.e., who owns what) and document the +permission you obtained.

        +

        Please note that the IOCCC size tool is not an original work.

        +

        Rule 8

        +

        | Entries must be received prior to the end of this IOCCC which is:

        +
            2020-Mar-15 06:26:49 UTC
        +

        A confirmation of submission will be sent to the submitter email address before the close of the contest.

        +

        Rule 9

        +

        | Each person may submit up to and including 8.000000 entries per contest.

        +

        Each entry must be submitted separately.

        +

        Rule 10

        +

        Entries requiring human interaction to be initially compiled are not permitted.

        +

        Rule 11

        +

        Programs that require special privileges (setuid, setgid, super-user, +special owner, special group, etc.) are still highly discouraged. We +do not guarantee these functions will behave as you expect on our test +platforms. If your program needs special permissions please document +them in the remarks file.

        +

        Rule 12

        +

        Legal abuse of the rules is somewhat encouraged. An entry that, in +the opinion of the judges, violates the rules will be disqualified. +Entries that attempt to abuse the rules must try to justify why +their rule abuse is legal in the remarks file.

        +

        Rule 13

        +

        Any C source that fails to compile because of unescaped octets with +the high bit set (octet value >= 128) will be rejected.

        +

        Rule 14

        +

        Any C source that fails to compile because of lines with trailing +control-M’s (i.e., lines with a tailing octet 015) will be rejected.

        +

        Please do not put trailing control-M’s on remarks file lines. +Please check to be sure, before submitting, that you have removed +any control-M at the end of remark file lines.

        +

        Rule 15

        +

        When you submit your entry you must have a valid email address +that can both send and receive email. The online submission +method is a two phase process that requires the use of an +approval code. This code will be emailed to you as part of +phase 1.

        +

        Entries submitted without a working or valid email address will +be disqualified.

        +

        The judges are not responsible for delays in email, please plan +enough time for one automated exchange of email as part of your +submission.

        +

        After your email address has been confirmed, the submission code will +be valid for submitting and editing the entry for the lifetime of the +competition.

        +

        Rule 16

        +

        You are STRONGLY encouraged to submit a previously unpublished and +original entry. Submissions that are similar to previous entries are +discouraged. As we judge anonymously, submissions that have already +been published may be disqualified.

        +

        Rule 17

        +

        The total size of your submission: the sum of the size of the program, +hints, comments, build and info files MUST be less than or equal +to 1048576 octets in size.

        +

        Rule 18

        +

        The entirety of your entry must be submitted under the following license:

        +

        | CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International

        +

        You (the authors) must own the contents of your submission OR +you must have permission from the owners to submit their content

        +

        You must not submit anything that cannot be submitted under that license.

        +

        Rule 19

        +

        The remarks file must be written in markdown format. See +the Daring Fireball {Markdown: Basics](http://daringfireball.net/projects/markdown/basics) +for more information.

        +

        | We currently use pandoc to convert markdown to HTML.

        +

        Rule 20

        +

        The how to build instructions must be in make form.

        +

        The target of the make file must be called prog. The original +C source file must be called prog.c.

        +

        To invoke the C compiler, use ${CC}. +To invoke the C preprocessor use ${CPP}.

        +

        Do not assume that . (the current directory) is in the $PATH.

        +

        Use a shell command syntax that is compatible with bash.

        +

        Assume that commands commonly found in POSIX-like / Linux-like systems +are available in the search path.

        +

        Do not assume any particular given value of ${CFLAGS} or other +commonly used make variables.

        +

        Rule 21

        +

        Your entry must not create nor modify files above the current directory +with the exception of the /tmp and the /var/tmp directories. Your entry +may create subdirectories below the current directory, or in /tmp, +or in /var/tmp provided that “.” is not the first octet in any +directory name.

        +

        Rule 22

        +

        Catch 22:

        +

        Your source code, data files, remarks and program output must NOT +identify the authors of your code. The judges STRONGLY prefer to +not know who is submitting entries to the IOCCC.

        +

        Even if you are a previous IOCCC winner, catch 22 still applies.

        +

        Identifying the authors of your entry in an obvious way anywhere +within in your code, data, remarks or program output (unless you are +Peter Honeyman or pretending to be Peter Honeyman) will be grounds +for disqualification of your entry.

        +

        Yes, Virginia, we really mean it!

        +

        Rule 23

        +

        This prime rule number is reserved for future use.

        +

        Rule 24

        +

        Even though 24 is not prime, you should still see rule #23.

        +

        Rule 25

        +

        | The IOCCC rule set consists of at least 26 rules.

        +

        Rule 26

        +

        | Rule 26 is also a rule.

        +

        FOR MORE INFORMATION:

        +

        The judging will be done by Leonid A. Broukhis, Simon Cooper, +Landon Curt Noll.

        +

        | Please send questions or comments about the contest, to:

        +
            q.2020@ioccc.org
        +

        | IMPORANT: You must include the words ioccc 2020 question +in the subject of your email message when sending email to the judges.

        +

        The rules and the guidelines may (and often do) change from year to +year. You should be sure you have the current rules and guidelines +prior to submitting entries.

        +

        | See the Official IOCCC web site for additional information.

        +

        For the updates and breaking IOCCC news, you are encouraged to follow +the twitter handle:

        +
            @IOCCC
        +

        You do not have to be a twitter user to follow @IOCCC. Non-twitter users should access:

        +
            https://twitter.com/ioccc
        +

        Non-twitter users should force their browsers to reload the above URL +to be sure they are seeing the most recent tweets.

        +

        An important update to this historic note

        +

        -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

        +

        | The IOCCC no longer uses twitter.

        +

        | Today the IOCCC uses Mastodon.

        +

        | For more information and to see our IOCCC Mastodon posts, see:

        +
            https://fosstodon.org/@ioccc
        +

        -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

        +

        Leonid A. Broukhis
        +Simon Cooper
        +chongo (Landon Curt Noll) /\cc/\

        + + + + + + + +
        + + + + +
        + + + + + + + + + + + + + + + diff --git a/next/rules.md b/next/rules.md new file mode 100644 index 000000000..13e31a7c4 --- /dev/null +++ b/next/rules.md @@ -0,0 +1,426 @@ + + +# WARNING: These rules are OUT OF DATE + +They are a **very tentative proposal** for the next IOCCC +that is **VERY LIKELY** to be updated before the next IOCCC. +They are are provided as a **very tentative** hint at what +might be used in a future IOCCC. + +Please regard these rules as a historic archive. + + +# The IOCCC is closed + +The IOCCC is **NOT** accepting new submissions at this time. See the +[IOCCC winning entries page](years.html) for the entires that have won the IOCCC. + +Watch both [the IOCCC status page](status.html) and the +[@IOCCC mastodon feed](https://fosstodon.org/@ioccc) for information about future IOCCC openings. + + + +# 27th International Obfuscated C Code Contest Official Rules + +**`|`** Copyright © 2024 Leonid A. Broukhis, Landon Curt Noll. + +All Rights Reserved. Permission for personal, education or non-profit use is +granted provided this this copyright and notice are included in its entirety +and remains unaltered. All other uses must receive prior permission in +writing from the [contest judges](../contact.html). + + +## Rules version + +**`|`** These rules are version **2024-04-04-v28**. + + +### Change marks + +**`|`** **← Lines that start with this symbol indicate a change from the previous IOCCC** + +Most lines (we sometimes make mistakes) that were modified start the **`|`** symbol. + + +# Obfuscate defined: + +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. + + +# Goals of the Contest + +The goals of the IOCCC: + +* To write the most Obscure/Obfuscated C program within the rules. +* To show the importance of programming style, in an ironic way. +* To stress C compilers with unusual code. +* To illustrate some of the subtleties of the C language. +* To provide a safe forum for poor C code. :-) + + +# Important IOCCC dates + +**`|`** This IOCCC runs from **2019-Dec-26 06:01:41 UTC** to **2020-Mar-15 06:26:49 UTC**. + +Until the start of this IOCCC, these rules, guidelines and iocccsize.c +tool should be considered provisional BETA versions and may be +adjusted at any time. + +When the IOCCC is open, the submission URL is: +[https://submit.ioccc.org/](https://submit.ioccc.org/), at all other +times that link is likely to be unresponsive. + +Please check the [How to enter link](../faq.html#submit) link +for **important information** on how to submit to the IOCCC. + +**`|`** The submit URL should be active on or slightly before **2020-Jan-15 12:21:37 UTC**. +Please wait to submit your entries until after that time. + +The official rules, guidelines and iocccsize.c tool will be available +on the official IOCCC web site on or slightly before start of this IOCCC. + + +Please recheck on or after the start of this IOCCC to be sure you +are using the correct versions of these items before using the IOCCC +entry submission URL. + + +# RULES + +To help us with the volume of entries, we ask that you follow these rules: + + +## Rule 0 + +We need a rule 0. :-) + + +## Rule 1 + +Your entry must be a complete program. + + +## Rule 2 + +**`|`** The size rule requires your entry to satisfy BOTH rule 2a and rule 2b: + + +## Rule 2a + +The size of your program source **must be <= 4096 bytes**in length. + +## Rule 2b + +When your program source is fed as input to the current IOCCC size +tool, and the IOCCC size tool -i command line option is used, the +value printed **shall not exceed 2053**. + +**`|`** The source to the current IOCCC size tool is found in the +[mkiocccentry tool repo](https://github.com/ioccc-src/mkiocccentry). + + +## Rule 3 + +Submissions should be performed using the instructions outlined at: +the [How to enter link](../faq.html#submit) link. + +To submit to an open IOCCC, you must the [IOCCC submit server](https://submit.ioccc.org/). + +When the IOCCC is not open, that link will likely be unresponsive. + +**`|`** The submit URL should be active on or slightly before **2020-Jan-15 12:21:37 UTC**. +Please wait to submit your entries until after that time. + + +## Rule 4 + +If your entry is selected as a winner, it will be modified as follows: + +Your 'build' instructions will be incorporated into a Makefile. + +Your source code will be the file **prog.c**. The compiled binary +will be called **prog**. + + +## Rule 5 + +Your entry must not modify the content or filename of any part of your +original entry including, but not limited to prog.c, the Makefile +(we create from your how to build instructions), as well as any data +files you submit. + +If you entry wishes to modify such content, it must first copy the +file to a new filename and then modify that copy. + + +## Rule 6 + +**`|`** I am not a rule, I am a free(void \*man)! + +``` + while (!understand(ioccc(rule(you(are(number(6))))))) { ha_ha_ha(); } +``` + + +## Rule 7 + +The obfuscated C program must be an original work that you own. + +You (the authors) must own the contents of your submission OR +you must have permission from the owners to submit their content +under the following license: + +**`|`** **[CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/)** + +See also Rule 18. + +If you submit any content that is owned by others, you MUST +detail that ownership (i.e., who owns what) and document the +permission you obtained. + +Please note that the IOCCC size tool is not an original work. + + +## Rule 8 + +**`|`** Entries must be received prior to the end of this IOCCC which is: + +``` + 2020-Mar-15 06:26:49 UTC +``` + +A confirmation of submission will be sent to the submitter email address before the close of the contest. + + +## Rule 9 + +**`|`** Each person may submit up to and including 8.000000 entries per contest. + +Each entry must be submitted separately. + + +## Rule 10 + +Entries requiring human interaction to be initially compiled are not permitted. + + +## Rule 11 + +Programs that require special privileges (setuid, setgid, super-user, +special owner, special group, etc.) are still highly discouraged. We +do not guarantee these functions will behave as you expect on our test +platforms. If your program needs special permissions please document +them in the remarks file. + + +## Rule 12 + +Legal abuse of the rules is somewhat encouraged. An entry that, in +the opinion of the judges, violates the rules will be disqualified. +Entries that attempt to abuse the rules must try to justify why +their rule abuse is legal in the remarks file. + + +## Rule 13 + +Any C source that fails to compile because of unescaped octets with +the high bit set (octet value >= 128) will be rejected. + + +## Rule 14 + +Any C source that fails to compile because of lines with trailing +control-M's (i.e., lines with a tailing octet 015) will be rejected. + +Please do not put trailing control-M's on remarks file lines. +Please check to be sure, before submitting, that you have removed +any control-M at the end of remark file lines. + + +## Rule 15 + +When you submit your entry you must have a valid email address +that can both send and receive email. The online submission +method is a two phase process that requires the use of an +approval code. This code will be emailed to you as part of +phase 1. + +Entries submitted without a working or valid email address will +be disqualified. + +The judges are not responsible for delays in email, please plan +enough time for one automated exchange of email as part of your +submission. + +After your email address has been confirmed, the submission code will +be valid for submitting and editing the entry for the lifetime of the +competition. + + +## Rule 16 + +You are STRONGLY encouraged to submit a previously unpublished and +original entry. Submissions that are similar to previous entries are +discouraged. As we judge anonymously, submissions that have already +been published may be disqualified. + + +## Rule 17 + +The total size of your submission: the sum of the size of the program, +hints, comments, build and info files MUST be less than or equal +to 1048576 octets in size. + + +## Rule 18 + +The entirety of your entry must be submitted under the following license: + +**`|`** **[CC BY-SA 4.0 DEED Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/)** + +You (the authors) must own the contents of your submission OR +you must have permission from the owners to submit their content + +You must not submit anything that cannot be submitted under that license. + + +## Rule 19 + +The remarks file must be written in markdown format. See +the Daring Fireball {Markdown: Basics](http://daringfireball.net/projects/markdown/basics) +for more information. + +**`|`** We currently use [pandoc](https://pandoc.org) to convert markdown to HTML. + + +## Rule 20 + +The how to build instructions must be in make form. + +The target of the make file must be called prog. The original +C source file must be called prog.c. + +To invoke the C compiler, use `${CC}`. +To invoke the C preprocessor use `${CPP}`. + +Do not assume that . (the current directory) is in the `$PATH`. + +Use a shell command syntax that is compatible with bash. + +Assume that commands commonly found in POSIX-like / Linux-like systems +are available in the search path. + +Do not assume any particular given value of `${CFLAGS}` or other +commonly used make variables. + + +## Rule 21 + +Your entry must not create nor modify files above the current directory +with the exception of the `/tmp` and the `/var/tmp` directories. Your entry +may create subdirectories below the current directory, or in /tmp, +or in `/var/tmp` provided that "**.**" is **not** the first octet in any +directory name. + + +## Rule 22 + +Catch 22: + +Your source code, data files, remarks and program output must **NOT** +identify the authors of your code. The judges **STRONGLY prefer** to +not know who is submitting entries to the IOCCC. + +Even if you are a previous IOCCC winner, catch 22 still applies. + +Identifying the authors of your entry in an obvious way anywhere +within in your code, data, remarks or program output (unless you are +_Peter Honeyman_ or pretending to be _Peter Honeyman_) will be grounds +for disqualification of your entry. + +Yes, Virginia, **we really mean it**! + + +## Rule 23 + +This prime rule number is reserved for future use. + + +## Rule 24 + +Even though 24 is not prime, you should still see rule #23. + + +## Rule 25 + +**`|`** The IOCCC rule set consists of at least 26 rules. + + +## Rule 26 + +**`|`** Rule 26 is also a rule. + + +# FOR MORE INFORMATION: + +The judging will be done by Leonid A. Broukhis, Simon Cooper, +Landon Curt Noll. + +**`|`** Please send questions or comments about the contest, to: + +``` + q.2020@ioccc.org +``` + +**`|`** **IMPORANT**: You must include the words **ioccc 2020 question** +in the subject of your email message when sending email to the judges. + +The rules and the guidelines may (and often do) change from year to +year. You should be sure you have the current rules and guidelines +prior to submitting entries. + +**`|`** See the [Official IOCCC web site](../index.html) for additional information. + +For the updates and breaking IOCCC news, you are encouraged to follow +the twitter handle: + +``` + @IOCCC +``` + +You do not have to be a twitter user to follow @IOCCC. Non-twitter users should access: + +``` + https://twitter.com/ioccc +``` + +Non-twitter users should force their browsers to reload the above URL +to be sure they are seeing the most recent tweets. + + +## An important update to this historic note + +**-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-** + +**`|`** **The IOCCC no longer uses twitter**. + +**`|`** Today the [IOCCC uses Mastodon](../contact.html#mastodon). + +**`|`** For more information and to see our IOCCC Mastodon posts, see: + +``` + https://fosstodon.org/@ioccc +``` + +**-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-** + +Leonid A. Broukhis
        +Simon Cooper
        +chongo (Landon Curt Noll) `/\cc/\` diff --git a/sitemap.xml b/sitemap.xml index 1dcaa70bd..51e1547e5 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -26,7 +26,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1984/anonymous/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:57+00:00 https://ioccc-src.github.io/temp-test-ioccc/1984/anonymous/.gitignore @@ -34,7 +34,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1984/anonymous/index.html - 2024-04-14T00:58:53+00:00 + 2024-04-14T23:50:39+00:00 https://ioccc-src.github.io/temp-test-ioccc/1984/anonymous/Makefile @@ -66,7 +66,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1984/decot/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:57+00:00 https://ioccc-src.github.io/temp-test-ioccc/1984/decot/.gitignore @@ -74,7 +74,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1984/decot/index.html - 2024-04-14T00:58:54+00:00 + 2024-04-14T23:50:39+00:00 https://ioccc-src.github.io/temp-test-ioccc/1984/decot/Makefile @@ -94,7 +94,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1984/index.html - 2024-04-14T00:18:38+00:00 + 2024-04-14T22:47:20+00:00 https://ioccc-src.github.io/temp-test-ioccc/1984/laman/1984_laman.tar.bz2 @@ -102,7 +102,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1984/laman/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:57+00:00 https://ioccc-src.github.io/temp-test-ioccc/1984/laman/.gitignore @@ -110,7 +110,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1984/laman/index.html - 2024-04-14T00:58:54+00:00 + 2024-04-14T23:50:39+00:00 https://ioccc-src.github.io/temp-test-ioccc/1984/laman/laman.c @@ -130,7 +130,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1984/laman/README.md - 2024-04-12T18:22:04+00:00 + 2024-04-14T18:11:41+00:00 https://ioccc-src.github.io/temp-test-ioccc/1984/laman/try.sh @@ -150,7 +150,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1984/mullender/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:58+00:00 https://ioccc-src.github.io/temp-test-ioccc/1984/mullender/gentab.c @@ -162,7 +162,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1984/mullender/index.html - 2024-04-14T00:58:55+00:00 + 2024-04-14T23:50:40+00:00 https://ioccc-src.github.io/temp-test-ioccc/1984/mullender/Makefile @@ -186,7 +186,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1984/mullender/README.md - 2024-04-12T18:22:04+00:00 + 2024-04-14T18:11:41+00:00 https://ioccc-src.github.io/temp-test-ioccc/1984/README.md @@ -218,7 +218,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1985/applin/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:58+00:00 https://ioccc-src.github.io/temp-test-ioccc/1985/applin/.gitignore @@ -226,7 +226,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1985/applin/index.html - 2024-04-14T00:58:56+00:00 + 2024-04-14T23:50:41+00:00 https://ioccc-src.github.io/temp-test-ioccc/1985/applin/Makefile @@ -254,7 +254,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1985/august/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:58+00:00 https://ioccc-src.github.io/temp-test-ioccc/1985/august/.gitignore @@ -262,7 +262,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1985/august/index.html - 2024-04-14T00:58:57+00:00 + 2024-04-14T23:50:41+00:00 https://ioccc-src.github.io/temp-test-ioccc/1985/august/Makefile @@ -290,7 +290,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1985/index.html - 2024-04-14T00:18:39+00:00 + 2024-04-14T22:47:20+00:00 https://ioccc-src.github.io/temp-test-ioccc/1985/lycklama/1985_lycklama.tar.bz2 @@ -298,7 +298,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1985/lycklama/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:58+00:00 https://ioccc-src.github.io/temp-test-ioccc/1985/lycklama/.gitignore @@ -306,7 +306,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1985/lycklama/index.html - 2024-04-14T00:58:57+00:00 + 2024-04-14T23:50:42+00:00 https://ioccc-src.github.io/temp-test-ioccc/1985/lycklama/lycklama.alt.c @@ -354,7 +354,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1985/shapiro/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:58+00:00 https://ioccc-src.github.io/temp-test-ioccc/1985/shapiro/.gitignore @@ -362,7 +362,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1985/shapiro/index.html - 2024-04-14T00:58:58+00:00 + 2024-04-14T23:50:42+00:00 https://ioccc-src.github.io/temp-test-ioccc/1985/shapiro/Makefile @@ -398,7 +398,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1985/sicherman/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:58+00:00 https://ioccc-src.github.io/temp-test-ioccc/1985/sicherman/.gitignore @@ -406,7 +406,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1985/sicherman/index.html - 2024-04-14T00:58:59+00:00 + 2024-04-14T23:50:43+00:00 https://ioccc-src.github.io/temp-test-ioccc/1985/sicherman/Makefile @@ -462,7 +462,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1986/applin/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:58+00:00 https://ioccc-src.github.io/temp-test-ioccc/1986/applin/.gitignore @@ -470,7 +470,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1986/applin/index.html - 2024-04-14T00:59:00+00:00 + 2024-04-14T23:50:43+00:00 https://ioccc-src.github.io/temp-test-ioccc/1986/applin/Makefile @@ -498,7 +498,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1986/august/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:58+00:00 https://ioccc-src.github.io/temp-test-ioccc/1986/august/.gitignore @@ -506,7 +506,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1986/august/index.html - 2024-04-14T00:59:00+00:00 + 2024-04-14T23:50:44+00:00 https://ioccc-src.github.io/temp-test-ioccc/1986/august/Makefile @@ -534,7 +534,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1986/bright/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:58+00:00 https://ioccc-src.github.io/temp-test-ioccc/1986/bright/.gitignore @@ -542,7 +542,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1986/bright/index.html - 2024-04-14T00:59:01+00:00 + 2024-04-14T23:50:44+00:00 https://ioccc-src.github.io/temp-test-ioccc/1986/bright/Makefile @@ -570,7 +570,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1986/hague/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:58+00:00 https://ioccc-src.github.io/temp-test-ioccc/1986/hague/.gitignore @@ -586,7 +586,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1986/hague/index.html - 2024-04-14T00:59:02+00:00 + 2024-04-14T23:50:45+00:00 https://ioccc-src.github.io/temp-test-ioccc/1986/hague/input.txt @@ -614,7 +614,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1986/holloway/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:58+00:00 https://ioccc-src.github.io/temp-test-ioccc/1986/holloway/.gitignore @@ -630,7 +630,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1986/holloway/index.html - 2024-04-14T00:59:03+00:00 + 2024-04-14T23:50:45+00:00 https://ioccc-src.github.io/temp-test-ioccc/1986/holloway/Makefile @@ -646,7 +646,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1986/index.html - 2024-04-14T00:18:39+00:00 + 2024-04-14T22:47:21+00:00 https://ioccc-src.github.io/temp-test-ioccc/1986/Makefile @@ -658,7 +658,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1986/marshall/compilers.html - 2024-04-14T00:18:57+00:00 + 2024-04-14T23:50:29+00:00 https://ioccc-src.github.io/temp-test-ioccc/1986/marshall/compilers.md @@ -666,7 +666,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1986/marshall/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:58+00:00 https://ioccc-src.github.io/temp-test-ioccc/1986/marshall/.gitignore @@ -674,7 +674,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1986/marshall/index.html - 2024-04-14T00:59:03+00:00 + 2024-04-14T23:50:46+00:00 https://ioccc-src.github.io/temp-test-ioccc/1986/marshall/Makefile @@ -706,7 +706,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1986/pawka/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:58+00:00 https://ioccc-src.github.io/temp-test-ioccc/1986/pawka/.gitignore @@ -714,7 +714,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1986/pawka/index.html - 2024-04-14T00:59:04+00:00 + 2024-04-14T23:50:46+00:00 https://ioccc-src.github.io/temp-test-ioccc/1986/pawka/Makefile @@ -750,7 +750,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1986/stein/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:58+00:00 https://ioccc-src.github.io/temp-test-ioccc/1986/stein/.gitignore @@ -758,7 +758,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1986/stein/index.html - 2024-04-14T00:59:05+00:00 + 2024-04-14T23:50:47+00:00 https://ioccc-src.github.io/temp-test-ioccc/1986/stein/Makefile @@ -790,7 +790,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1986/wall/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:58+00:00 https://ioccc-src.github.io/temp-test-ioccc/1986/wall/.gitignore @@ -798,7 +798,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1986/wall/index.html - 2024-04-14T00:59:06+00:00 + 2024-04-14T23:50:47+00:00 https://ioccc-src.github.io/temp-test-ioccc/1986/wall/Makefile @@ -842,7 +842,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1987/biggar/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:58+00:00 https://ioccc-src.github.io/temp-test-ioccc/1987/biggar/.gitignore @@ -850,7 +850,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1987/biggar/index.html - 2024-04-14T00:59:07+00:00 + 2024-04-14T23:50:47+00:00 https://ioccc-src.github.io/temp-test-ioccc/1987/biggar/Makefile @@ -878,7 +878,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1987/heckbert/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:58+00:00 https://ioccc-src.github.io/temp-test-ioccc/1987/heckbert/.gitignore @@ -894,7 +894,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1987/heckbert/index.html - 2024-04-14T00:59:07+00:00 + 2024-04-14T23:50:48+00:00 https://ioccc-src.github.io/temp-test-ioccc/1987/heckbert/Makefile @@ -918,7 +918,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1987/hines/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:58+00:00 https://ioccc-src.github.io/temp-test-ioccc/1987/hines/.gitignore @@ -942,7 +942,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1987/hines/index.html - 2024-04-14T00:59:08+00:00 + 2024-04-14T23:50:49+00:00 https://ioccc-src.github.io/temp-test-ioccc/1987/hines/Makefile @@ -962,7 +962,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1987/index.html - 2024-04-14T00:18:40+00:00 + 2024-04-14T22:47:21+00:00 https://ioccc-src.github.io/temp-test-ioccc/1987/korn/1987_korn.tar.bz2 @@ -970,7 +970,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1987/korn/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:58+00:00 https://ioccc-src.github.io/temp-test-ioccc/1987/korn/.gitignore @@ -978,7 +978,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1987/korn/index.html - 2024-04-14T00:59:09+00:00 + 2024-04-14T23:50:49+00:00 https://ioccc-src.github.io/temp-test-ioccc/1987/korn/korn.c @@ -1006,7 +1006,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1987/lievaart/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:58+00:00 https://ioccc-src.github.io/temp-test-ioccc/1987/lievaart/.gitignore @@ -1014,7 +1014,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1987/lievaart/index.html - 2024-04-14T00:59:10+00:00 + 2024-04-14T23:50:49+00:00 https://ioccc-src.github.io/temp-test-ioccc/1987/lievaart/lievaart2.c @@ -1058,7 +1058,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1987/wall/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:58+00:00 https://ioccc-src.github.io/temp-test-ioccc/1987/wall/.gitignore @@ -1066,7 +1066,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1987/wall/index.html - 2024-04-14T00:59:10+00:00 + 2024-04-14T23:50:50+00:00 https://ioccc-src.github.io/temp-test-ioccc/1987/wall/Makefile @@ -1098,7 +1098,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1987/westley/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:58+00:00 https://ioccc-src.github.io/temp-test-ioccc/1987/westley/.gitignore @@ -1106,7 +1106,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1987/westley/index.html - 2024-04-14T00:59:11+00:00 + 2024-04-14T23:50:50+00:00 https://ioccc-src.github.io/temp-test-ioccc/1987/westley/Makefile @@ -1154,7 +1154,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1988/applin/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:58+00:00 https://ioccc-src.github.io/temp-test-ioccc/1988/applin/.gitignore @@ -1162,7 +1162,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1988/applin/index.html - 2024-04-14T00:59:12+00:00 + 2024-04-14T23:50:51+00:00 https://ioccc-src.github.io/temp-test-ioccc/1988/applin/Makefile @@ -1190,7 +1190,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1988/dale/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:58+00:00 https://ioccc-src.github.io/temp-test-ioccc/1988/dale/.gitignore @@ -1198,7 +1198,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1988/dale/index.html - 2024-04-14T00:59:13+00:00 + 2024-04-14T23:50:51+00:00 https://ioccc-src.github.io/temp-test-ioccc/1988/dale/Makefile @@ -1222,7 +1222,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1988/index.html - 2024-04-14T00:18:40+00:00 + 2024-04-14T22:47:21+00:00 https://ioccc-src.github.io/temp-test-ioccc/1988/isaak/1988_isaak.tar.bz2 @@ -1230,7 +1230,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1988/isaak/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:59+00:00 https://ioccc-src.github.io/temp-test-ioccc/1988/isaak/.gitignore @@ -1238,7 +1238,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1988/isaak/index.html - 2024-04-14T00:59:13+00:00 + 2024-04-14T23:50:52+00:00 https://ioccc-src.github.io/temp-test-ioccc/1988/isaak/isaak.alt.c @@ -1274,7 +1274,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1988/litmaath/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:59+00:00 https://ioccc-src.github.io/temp-test-ioccc/1988/litmaath/.gitignore @@ -1282,7 +1282,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1988/litmaath/index.html - 2024-04-14T00:59:14+00:00 + 2024-04-14T23:50:52+00:00 https://ioccc-src.github.io/temp-test-ioccc/1988/litmaath/litmaath.alt.c @@ -1318,7 +1318,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1988/phillipps/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:59+00:00 https://ioccc-src.github.io/temp-test-ioccc/1988/phillipps/.gitignore @@ -1326,7 +1326,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1988/phillipps/index.html - 2024-04-14T00:59:15+00:00 + 2024-04-14T23:50:53+00:00 https://ioccc-src.github.io/temp-test-ioccc/1988/phillipps/Makefile @@ -1358,7 +1358,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1988/reddy/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:59+00:00 https://ioccc-src.github.io/temp-test-ioccc/1988/reddy/.gitignore @@ -1366,7 +1366,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1988/reddy/index.html - 2024-04-14T00:59:16+00:00 + 2024-04-14T23:50:53+00:00 https://ioccc-src.github.io/temp-test-ioccc/1988/reddy/Makefile @@ -1394,7 +1394,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1988/robison/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:59+00:00 https://ioccc-src.github.io/temp-test-ioccc/1988/robison/.gitignore @@ -1402,7 +1402,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1988/robison/index.html - 2024-04-14T00:59:16+00:00 + 2024-04-14T23:50:54+00:00 https://ioccc-src.github.io/temp-test-ioccc/1988/robison/Makefile @@ -1434,7 +1434,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1988/spinellis/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:59+00:00 https://ioccc-src.github.io/temp-test-ioccc/1988/spinellis/.gitignore @@ -1442,7 +1442,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1988/spinellis/index.html - 2024-04-14T00:59:17+00:00 + 2024-04-14T23:50:54+00:00 https://ioccc-src.github.io/temp-test-ioccc/1988/spinellis/input2.txt @@ -1482,7 +1482,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1988/westley/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:59+00:00 https://ioccc-src.github.io/temp-test-ioccc/1988/westley/.gitignore @@ -1490,7 +1490,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1988/westley/index.html - 2024-04-14T00:59:18+00:00 + 2024-04-14T23:50:55+00:00 https://ioccc-src.github.io/temp-test-ioccc/1988/westley/Makefile @@ -1538,7 +1538,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1989/fubar/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:59+00:00 https://ioccc-src.github.io/temp-test-ioccc/1989/fubar/fubar.c @@ -1558,7 +1558,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1989/fubar/index.html - 2024-04-14T00:59:19+00:00 + 2024-04-14T23:50:55+00:00 https://ioccc-src.github.io/temp-test-ioccc/1989/fubar/Makefile @@ -1578,7 +1578,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1989/index.html - 2024-04-14T00:18:41+00:00 + 2024-04-14T22:47:22+00:00 https://ioccc-src.github.io/temp-test-ioccc/1989/jar.1/1989_jar.1.tar.bz2 @@ -1586,7 +1586,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1989/jar.1/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:59+00:00 https://ioccc-src.github.io/temp-test-ioccc/1989/jar.1/.gitignore @@ -1594,7 +1594,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1989/jar.1/index.html - 2024-04-14T00:59:19+00:00 + 2024-04-14T23:50:56+00:00 https://ioccc-src.github.io/temp-test-ioccc/1989/jar.1/jar.1.alt.c @@ -1638,7 +1638,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1989/jar.2/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:59+00:00 https://ioccc-src.github.io/temp-test-ioccc/1989/jar.2/fib.lisp @@ -1650,7 +1650,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1989/jar.2/index.html - 2024-04-14T00:59:20+00:00 + 2024-04-14T23:50:56+00:00 https://ioccc-src.github.io/temp-test-ioccc/1989/jar.2/jar.2.c @@ -1690,7 +1690,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1989/ovdluhe/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:59+00:00 https://ioccc-src.github.io/temp-test-ioccc/1989/ovdluhe/.gitignore @@ -1698,7 +1698,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1989/ovdluhe/index.html - 2024-04-14T00:59:21+00:00 + 2024-04-14T23:50:57+00:00 https://ioccc-src.github.io/temp-test-ioccc/1989/ovdluhe/Makefile @@ -1738,7 +1738,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1989/paul/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:59+00:00 https://ioccc-src.github.io/temp-test-ioccc/1989/paul/.gitignore @@ -1746,7 +1746,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1989/paul/index.html - 2024-04-14T00:59:22+00:00 + 2024-04-14T23:50:57+00:00 https://ioccc-src.github.io/temp-test-ioccc/1989/paul/Makefile @@ -1782,7 +1782,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1989/robison/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:59+00:00 https://ioccc-src.github.io/temp-test-ioccc/1989/robison/.gitignore @@ -1790,7 +1790,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1989/robison/index.html - 2024-04-14T00:59:23+00:00 + 2024-04-14T23:50:58+00:00 https://ioccc-src.github.io/temp-test-ioccc/1989/robison/Makefile @@ -1822,7 +1822,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1989/roemer/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:59+00:00 https://ioccc-src.github.io/temp-test-ioccc/1989/roemer/.gitignore @@ -1830,7 +1830,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1989/roemer/index.html - 2024-04-14T00:59:23+00:00 + 2024-04-14T23:50:58+00:00 https://ioccc-src.github.io/temp-test-ioccc/1989/roemer/Makefile @@ -1862,7 +1862,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1989/tromp/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:59+00:00 https://ioccc-src.github.io/temp-test-ioccc/1989/tromp/.gitignore @@ -1870,7 +1870,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1989/tromp/index.html - 2024-04-14T00:59:24+00:00 + 2024-04-14T23:50:59+00:00 https://ioccc-src.github.io/temp-test-ioccc/1989/tromp/Makefile @@ -1902,7 +1902,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1989/vanb/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:59+00:00 https://ioccc-src.github.io/temp-test-ioccc/1989/vanb/.gitignore @@ -1910,7 +1910,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1989/vanb/index.html - 2024-04-14T00:59:25+00:00 + 2024-04-14T23:50:59+00:00 https://ioccc-src.github.io/temp-test-ioccc/1989/vanb/Makefile @@ -1946,7 +1946,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1989/westley/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:59+00:00 https://ioccc-src.github.io/temp-test-ioccc/1989/westley/.gitignore @@ -1954,7 +1954,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1989/westley/index.html - 2024-04-14T00:59:26+00:00 + 2024-04-14T23:51:00+00:00 https://ioccc-src.github.io/temp-test-ioccc/1989/westley/Makefile @@ -2006,7 +2006,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1990/baruch/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:59+00:00 https://ioccc-src.github.io/temp-test-ioccc/1990/baruch/.gitignore @@ -2014,7 +2014,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1990/baruch/index.html - 2024-04-14T00:59:26+00:00 + 2024-04-14T23:51:01+00:00 https://ioccc-src.github.io/temp-test-ioccc/1990/baruch/Makefile @@ -2046,7 +2046,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1990/cmills/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:59+00:00 https://ioccc-src.github.io/temp-test-ioccc/1990/cmills/.gitignore @@ -2054,7 +2054,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1990/cmills/index.html - 2024-04-14T00:59:27+00:00 + 2024-04-14T23:51:01+00:00 https://ioccc-src.github.io/temp-test-ioccc/1990/cmills/Makefile @@ -2082,7 +2082,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1990/dds/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:59+00:00 https://ioccc-src.github.io/temp-test-ioccc/1990/dds/.gitignore @@ -2090,7 +2090,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1990/dds/index.html - 2024-04-14T00:59:28+00:00 + 2024-04-14T23:51:02+00:00 https://ioccc-src.github.io/temp-test-ioccc/1990/dds/LANDER.BAS @@ -2122,7 +2122,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1990/dg/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:59+00:00 https://ioccc-src.github.io/temp-test-ioccc/1990/dg/.gitignore @@ -2130,7 +2130,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1990/dg/index.html - 2024-04-14T00:59:29+00:00 + 2024-04-14T23:51:02+00:00 https://ioccc-src.github.io/temp-test-ioccc/1990/dg/Makefile @@ -2158,7 +2158,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1990/index.html - 2024-04-14T00:18:41+00:00 + 2024-04-14T22:47:22+00:00 https://ioccc-src.github.io/temp-test-ioccc/1990/jaw/1990_jaw.tar.bz2 @@ -2170,7 +2170,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1990/jaw/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:59+00:00 https://ioccc-src.github.io/temp-test-ioccc/1990/jaw/.gitignore @@ -2178,7 +2178,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1990/jaw/index.html - 2024-04-14T00:59:30+00:00 + 2024-04-14T23:51:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/1990/jaw/jaw.c @@ -2218,7 +2218,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1990/pjr/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:13:59+00:00 https://ioccc-src.github.io/temp-test-ioccc/1990/pjr/.gitignore @@ -2226,7 +2226,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1990/pjr/index.html - 2024-04-14T00:59:30+00:00 + 2024-04-14T23:51:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/1990/pjr/Makefile @@ -2266,7 +2266,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1990/scjones/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:00+00:00 https://ioccc-src.github.io/temp-test-ioccc/1990/scjones/.gitignore @@ -2274,7 +2274,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1990/scjones/index.html - 2024-04-14T00:59:31+00:00 + 2024-04-14T23:51:04+00:00 https://ioccc-src.github.io/temp-test-ioccc/1990/scjones/Makefile @@ -2306,7 +2306,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1990/stig/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:00+00:00 https://ioccc-src.github.io/temp-test-ioccc/1990/stig/.gitignore @@ -2314,7 +2314,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1990/stig/index.html - 2024-04-14T00:59:32+00:00 + 2024-04-14T23:51:04+00:00 https://ioccc-src.github.io/temp-test-ioccc/1990/stig/Makefile @@ -2346,7 +2346,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1990/tbr/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:00+00:00 https://ioccc-src.github.io/temp-test-ioccc/1990/tbr/.gitignore @@ -2354,7 +2354,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1990/tbr/index.html - 2024-04-14T00:59:33+00:00 + 2024-04-14T23:51:05+00:00 https://ioccc-src.github.io/temp-test-ioccc/1990/tbr/Makefile @@ -2386,7 +2386,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1990/theorem/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:00+00:00 https://ioccc-src.github.io/temp-test-ioccc/1990/theorem/.gitignore @@ -2394,7 +2394,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1990/theorem/index.html - 2024-04-14T00:59:33+00:00 + 2024-04-14T23:51:05+00:00 https://ioccc-src.github.io/temp-test-ioccc/1990/theorem/Makefile @@ -2426,7 +2426,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1990/westley/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:00+00:00 https://ioccc-src.github.io/temp-test-ioccc/1990/westley/.gitignore @@ -2434,7 +2434,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1990/westley/index.html - 2024-04-14T00:59:34+00:00 + 2024-04-14T23:51:06+00:00 https://ioccc-src.github.io/temp-test-ioccc/1990/westley/Makefile @@ -2490,7 +2490,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1991/ant/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:00+00:00 https://ioccc-src.github.io/temp-test-ioccc/1991/ant/.gitignore @@ -2498,7 +2498,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1991/ant/index.html - 2024-04-14T00:59:35+00:00 + 2024-04-14T23:51:06+00:00 https://ioccc-src.github.io/temp-test-ioccc/1991/ant/Makefile @@ -2526,7 +2526,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1991/brnstnd/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:00+00:00 https://ioccc-src.github.io/temp-test-ioccc/1991/brnstnd/.gitignore @@ -2534,7 +2534,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1991/brnstnd/index.html - 2024-04-14T00:59:36+00:00 + 2024-04-14T23:51:07+00:00 https://ioccc-src.github.io/temp-test-ioccc/1991/brnstnd/Makefile @@ -2602,7 +2602,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1991/brnstnd/sorta.README.html - 2024-04-14T00:18:57+00:00 + 2024-04-14T22:47:38+00:00 https://ioccc-src.github.io/temp-test-ioccc/1991/brnstnd/sorta.README.md @@ -2634,7 +2634,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1991/buzzard/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:00+00:00 https://ioccc-src.github.io/temp-test-ioccc/1991/buzzard/.gitignore @@ -2642,7 +2642,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1991/buzzard/index.html - 2024-04-14T00:59:36+00:00 + 2024-04-14T23:51:07+00:00 https://ioccc-src.github.io/temp-test-ioccc/1991/buzzard/Makefile @@ -2670,7 +2670,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1991/cdupont/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:00+00:00 https://ioccc-src.github.io/temp-test-ioccc/1991/cdupont/.gitignore @@ -2678,7 +2678,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1991/cdupont/index.html - 2024-04-14T00:59:37+00:00 + 2024-04-14T23:51:08+00:00 https://ioccc-src.github.io/temp-test-ioccc/1991/cdupont/Makefile @@ -2706,7 +2706,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1991/davidguy/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:00+00:00 https://ioccc-src.github.io/temp-test-ioccc/1991/davidguy/.gitignore @@ -2714,7 +2714,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1991/davidguy/index.html - 2024-04-14T00:59:38+00:00 + 2024-04-14T23:51:08+00:00 https://ioccc-src.github.io/temp-test-ioccc/1991/davidguy/Makefile @@ -2742,7 +2742,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1991/dds/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:00+00:00 https://ioccc-src.github.io/temp-test-ioccc/1991/dds/.gitignore @@ -2750,7 +2750,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1991/dds/index.html - 2024-04-14T00:59:39+00:00 + 2024-04-14T23:51:09+00:00 https://ioccc-src.github.io/temp-test-ioccc/1991/dds/LANDER.BAS @@ -2778,7 +2778,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1991/fine/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:00+00:00 https://ioccc-src.github.io/temp-test-ioccc/1991/fine/fine.c @@ -2794,7 +2794,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1991/fine/index.html - 2024-04-14T00:59:39+00:00 + 2024-04-14T23:51:09+00:00 https://ioccc-src.github.io/temp-test-ioccc/1991/fine/Makefile @@ -2814,7 +2814,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1991/index.html - 2024-04-14T00:18:42+00:00 + 2024-04-14T23:50:16+00:00 https://ioccc-src.github.io/temp-test-ioccc/1991/Makefile @@ -2830,7 +2830,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1991/rince/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:00+00:00 https://ioccc-src.github.io/temp-test-ioccc/1991/rince/.gitignore @@ -2838,7 +2838,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1991/rince/index.html - 2024-04-14T00:59:40+00:00 + 2024-04-14T23:51:10+00:00 https://ioccc-src.github.io/temp-test-ioccc/1991/rince/Makefile @@ -2878,7 +2878,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1991/westley/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:00+00:00 https://ioccc-src.github.io/temp-test-ioccc/1991/westley/.gitignore @@ -2886,7 +2886,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1991/westley/index.html - 2024-04-14T00:59:41+00:00 + 2024-04-14T23:51:10+00:00 https://ioccc-src.github.io/temp-test-ioccc/1991/westley/Makefile @@ -2970,7 +2970,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1992/adrian/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:00+00:00 https://ioccc-src.github.io/temp-test-ioccc/1992/adrian/.gitignore @@ -2978,7 +2978,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1992/adrian/index.html - 2024-04-14T00:59:42+00:00 + 2024-04-14T23:51:11+00:00 https://ioccc-src.github.io/temp-test-ioccc/1992/adrian/Makefile @@ -3014,7 +3014,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1992/albert/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:00+00:00 https://ioccc-src.github.io/temp-test-ioccc/1992/albert/.gitignore @@ -3022,7 +3022,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1992/albert/index.html - 2024-04-14T00:59:43+00:00 + 2024-04-14T23:51:11+00:00 https://ioccc-src.github.io/temp-test-ioccc/1992/albert/Makefile @@ -3066,7 +3066,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1992/ant/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:00+00:00 https://ioccc-src.github.io/temp-test-ioccc/1992/ant/.gitignore @@ -3074,7 +3074,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1992/ant/index.html - 2024-04-14T00:59:43+00:00 + 2024-04-14T23:51:12+00:00 https://ioccc-src.github.io/temp-test-ioccc/1992/ant/Makefile @@ -3106,7 +3106,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1992/buzzard.1/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:00+00:00 https://ioccc-src.github.io/temp-test-ioccc/1992/buzzard.1/.gitignore @@ -3114,7 +3114,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1992/buzzard.1/index.html - 2024-04-14T00:59:44+00:00 + 2024-04-14T23:51:12+00:00 https://ioccc-src.github.io/temp-test-ioccc/1992/buzzard.1/Makefile @@ -3146,7 +3146,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1992/buzzard.2/buzzard.2.design.html - 2024-04-14T00:18:58+00:00 + 2024-04-14T22:47:38+00:00 https://ioccc-src.github.io/temp-test-ioccc/1992/buzzard.2/buzzard.2.design.md @@ -3158,7 +3158,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1992/buzzard.2/buzzard.2.README.html - 2024-04-14T00:18:58+00:00 + 2024-04-14T22:47:39+00:00 https://ioccc-src.github.io/temp-test-ioccc/1992/buzzard.2/buzzard.2.README.md @@ -3194,7 +3194,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1992/buzzard.2/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:00+00:00 https://ioccc-src.github.io/temp-test-ioccc/1992/buzzard.2/.gitignore @@ -3206,7 +3206,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1992/buzzard.2/index.html - 2024-04-14T00:59:45+00:00 + 2024-04-14T23:51:13+00:00 https://ioccc-src.github.io/temp-test-ioccc/1992/buzzard.2/Makefile @@ -3246,7 +3246,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1992/gson/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:00+00:00 https://ioccc-src.github.io/temp-test-ioccc/1992/gson/.gitignore @@ -3262,7 +3262,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1992/gson/index.html - 2024-04-14T00:59:46+00:00 + 2024-04-14T23:51:13+00:00 https://ioccc-src.github.io/temp-test-ioccc/1992/gson/Makefile @@ -3294,7 +3294,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1992/imc/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:00+00:00 https://ioccc-src.github.io/temp-test-ioccc/1992/imc/.gitignore @@ -3310,7 +3310,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1992/imc/index.html - 2024-04-14T00:59:46+00:00 + 2024-04-14T23:51:14+00:00 https://ioccc-src.github.io/temp-test-ioccc/1992/imc/Makefile @@ -3330,7 +3330,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1992/index.html - 2024-04-14T00:18:42+00:00 + 2024-04-14T22:47:23+00:00 https://ioccc-src.github.io/temp-test-ioccc/1992/kivinen/1992_kivinen.tar.bz2 @@ -3338,7 +3338,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1992/kivinen/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:01+00:00 https://ioccc-src.github.io/temp-test-ioccc/1992/kivinen/.gitignore @@ -3346,7 +3346,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1992/kivinen/index.html - 2024-04-14T00:59:47+00:00 + 2024-04-14T23:51:14+00:00 https://ioccc-src.github.io/temp-test-ioccc/1992/kivinen/kivinen.alt.c @@ -3378,7 +3378,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1992/lush/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:01+00:00 https://ioccc-src.github.io/temp-test-ioccc/1992/lush/.gitignore @@ -3386,7 +3386,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1992/lush/index.html - 2024-04-14T00:59:48+00:00 + 2024-04-14T23:51:15+00:00 https://ioccc-src.github.io/temp-test-ioccc/1992/lush/lush.c @@ -3422,7 +3422,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1992/marangon/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:01+00:00 https://ioccc-src.github.io/temp-test-ioccc/1992/marangon/.gitignore @@ -3430,7 +3430,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1992/marangon/index.html - 2024-04-14T00:59:49+00:00 + 2024-04-14T23:51:15+00:00 https://ioccc-src.github.io/temp-test-ioccc/1992/marangon/Makefile @@ -3462,7 +3462,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1992/nathan/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:01+00:00 https://ioccc-src.github.io/temp-test-ioccc/1992/nathan/.gitignore @@ -3470,7 +3470,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1992/nathan/index.html - 2024-04-14T00:59:49+00:00 + 2024-04-14T23:51:16+00:00 https://ioccc-src.github.io/temp-test-ioccc/1992/nathan/Makefile @@ -3510,7 +3510,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1992/vern/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:01+00:00 https://ioccc-src.github.io/temp-test-ioccc/1992/vern/.gitignore @@ -3518,7 +3518,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1992/vern/index.html - 2024-04-14T00:59:50+00:00 + 2024-04-14T23:51:16+00:00 https://ioccc-src.github.io/temp-test-ioccc/1992/vern/Makefile @@ -3546,7 +3546,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1992/westley/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:01+00:00 https://ioccc-src.github.io/temp-test-ioccc/1992/westley/.gitignore @@ -3554,7 +3554,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1992/westley/index.html - 2024-04-14T00:59:51+00:00 + 2024-04-14T23:51:17+00:00 https://ioccc-src.github.io/temp-test-ioccc/1992/westley/Makefile @@ -3634,7 +3634,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1993/ant/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:01+00:00 https://ioccc-src.github.io/temp-test-ioccc/1993/ant/.gitignore @@ -3642,7 +3642,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1993/ant/index.html - 2024-04-14T00:59:52+00:00 + 2024-04-14T23:51:17+00:00 https://ioccc-src.github.io/temp-test-ioccc/1993/ant/Makefile @@ -3678,7 +3678,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1993/cmills/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:01+00:00 https://ioccc-src.github.io/temp-test-ioccc/1993/cmills/.gitignore @@ -3686,7 +3686,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1993/cmills/index.html - 2024-04-14T00:59:53+00:00 + 2024-04-14T23:51:18+00:00 https://ioccc-src.github.io/temp-test-ioccc/1993/cmills/Makefile @@ -3738,7 +3738,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1993/dgibson/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:01+00:00 https://ioccc-src.github.io/temp-test-ioccc/1993/dgibson/.gitignore @@ -3746,7 +3746,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1993/dgibson/index.html - 2024-04-14T00:59:53+00:00 + 2024-04-14T23:51:18+00:00 https://ioccc-src.github.io/temp-test-ioccc/1993/dgibson/Makefile @@ -3778,7 +3778,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1993/ejb/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:01+00:00 https://ioccc-src.github.io/temp-test-ioccc/1993/ejb/.gitignore @@ -3786,7 +3786,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1993/ejb/hanoi.html - 2024-04-14T00:18:58+00:00 + 2024-04-14T22:47:39+00:00 https://ioccc-src.github.io/temp-test-ioccc/1993/ejb/hanoi.md @@ -3794,7 +3794,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1993/ejb/index.html - 2024-04-14T00:59:54+00:00 + 2024-04-14T23:51:19+00:00 https://ioccc-src.github.io/temp-test-ioccc/1993/ejb/Makefile @@ -3806,7 +3806,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1993/ejb/patience.html - 2024-04-14T00:18:58+00:00 + 2024-04-14T22:47:39+00:00 https://ioccc-src.github.io/temp-test-ioccc/1993/ejb/patience.md @@ -3834,7 +3834,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1993/index.html - 2024-04-14T00:18:43+00:00 + 2024-04-14T22:47:24+00:00 https://ioccc-src.github.io/temp-test-ioccc/1993/jonth/1993_jonth.tar.bz2 @@ -3842,7 +3842,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1993/jonth/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:01+00:00 https://ioccc-src.github.io/temp-test-ioccc/1993/jonth/.gitignore @@ -3850,7 +3850,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1993/jonth/index.html - 2024-04-14T00:59:55+00:00 + 2024-04-14T23:51:19+00:00 https://ioccc-src.github.io/temp-test-ioccc/1993/jonth/jonth.c @@ -3878,7 +3878,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1993/leo/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:01+00:00 https://ioccc-src.github.io/temp-test-ioccc/1993/leo/.gitignore @@ -3886,7 +3886,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1993/leo/index.html - 2024-04-14T00:59:56+00:00 + 2024-04-14T23:51:20+00:00 https://ioccc-src.github.io/temp-test-ioccc/1993/leo/leo.c @@ -3914,7 +3914,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1993/lmfjyh/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:01+00:00 https://ioccc-src.github.io/temp-test-ioccc/1993/lmfjyh/.gitignore @@ -3922,7 +3922,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1993/lmfjyh/index.html - 2024-04-14T00:59:56+00:00 + 2024-04-14T23:51:20+00:00 https://ioccc-src.github.io/temp-test-ioccc/1993/lmfjyh/lmfjyh.alt.c @@ -3962,7 +3962,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1993/plummer/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:01+00:00 https://ioccc-src.github.io/temp-test-ioccc/1993/plummer/.gitignore @@ -3970,7 +3970,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1993/plummer/index.html - 2024-04-14T00:59:57+00:00 + 2024-04-14T23:51:21+00:00 https://ioccc-src.github.io/temp-test-ioccc/1993/plummer/Makefile @@ -4014,7 +4014,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1993/rince/design.html - 2024-04-14T00:18:59+00:00 + 2024-04-14T22:47:39+00:00 https://ioccc-src.github.io/temp-test-ioccc/1993/rince/design.md @@ -4022,7 +4022,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1993/rince/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:01+00:00 https://ioccc-src.github.io/temp-test-ioccc/1993/rince/.gitignore @@ -4030,7 +4030,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1993/rince/index.html - 2024-04-14T00:59:58+00:00 + 2024-04-14T23:51:21+00:00 https://ioccc-src.github.io/temp-test-ioccc/1993/rince/Makefile @@ -4086,7 +4086,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1993/schnitzi/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:01+00:00 https://ioccc-src.github.io/temp-test-ioccc/1993/schnitzi/.gitignore @@ -4094,7 +4094,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1993/schnitzi/index.html - 2024-04-14T00:59:59+00:00 + 2024-04-14T23:51:22+00:00 https://ioccc-src.github.io/temp-test-ioccc/1993/schnitzi/Makefile @@ -4126,7 +4126,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1993/vanb/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:01+00:00 https://ioccc-src.github.io/temp-test-ioccc/1993/vanb/.gitignore @@ -4134,7 +4134,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1993/vanb/index.html - 2024-04-14T01:00:00+00:00 + 2024-04-14T23:51:22+00:00 https://ioccc-src.github.io/temp-test-ioccc/1993/vanb/Makefile @@ -4186,7 +4186,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1994/dodsond1/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:01+00:00 https://ioccc-src.github.io/temp-test-ioccc/1994/dodsond1/.gitignore @@ -4194,7 +4194,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1994/dodsond1/index.html - 2024-04-14T01:00:00+00:00 + 2024-04-14T23:51:23+00:00 https://ioccc-src.github.io/temp-test-ioccc/1994/dodsond1/Makefile @@ -4230,7 +4230,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1994/dodsond2/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:01+00:00 https://ioccc-src.github.io/temp-test-ioccc/1994/dodsond2/.gitignore @@ -4238,7 +4238,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1994/dodsond2/index.html - 2024-04-14T01:00:01+00:00 + 2024-04-14T23:51:23+00:00 https://ioccc-src.github.io/temp-test-ioccc/1994/dodsond2/Makefile @@ -4270,7 +4270,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1994/horton/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:01+00:00 https://ioccc-src.github.io/temp-test-ioccc/1994/horton/.gitignore @@ -4298,7 +4298,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1994/horton/index.html - 2024-04-14T01:00:02+00:00 + 2024-04-14T23:51:24+00:00 https://ioccc-src.github.io/temp-test-ioccc/1994/horton/login_sept92-pp28-31.pdf @@ -4330,7 +4330,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1994/imc/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:01+00:00 https://ioccc-src.github.io/temp-test-ioccc/1994/imc/.gitignore @@ -4346,7 +4346,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1994/imc/index.html - 2024-04-14T01:00:03+00:00 + 2024-04-14T23:51:24+00:00 https://ioccc-src.github.io/temp-test-ioccc/1994/imc/Makefile @@ -4366,7 +4366,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1994/index.html - 2024-04-14T00:18:43+00:00 + 2024-04-14T22:47:24+00:00 https://ioccc-src.github.io/temp-test-ioccc/1994/ldb/1994_ldb.tar.bz2 @@ -4374,7 +4374,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1994/ldb/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:01+00:00 https://ioccc-src.github.io/temp-test-ioccc/1994/ldb/.gitignore @@ -4382,7 +4382,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1994/ldb/index.html - 2024-04-14T01:00:03+00:00 + 2024-04-14T23:51:25+00:00 https://ioccc-src.github.io/temp-test-ioccc/1994/ldb/ldb.c @@ -4430,7 +4430,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1994/schnitzi/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:02+00:00 https://ioccc-src.github.io/temp-test-ioccc/1994/schnitzi/.gitignore @@ -4438,7 +4438,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1994/schnitzi/index.html - 2024-04-14T01:00:04+00:00 + 2024-04-14T23:51:25+00:00 https://ioccc-src.github.io/temp-test-ioccc/1994/schnitzi/Makefile @@ -4486,7 +4486,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1994/shapiro/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:02+00:00 https://ioccc-src.github.io/temp-test-ioccc/1994/shapiro/.gitignore @@ -4494,7 +4494,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1994/shapiro/index.html - 2024-04-14T01:00:05+00:00 + 2024-04-14T23:51:26+00:00 https://ioccc-src.github.io/temp-test-ioccc/1994/shapiro/Makefile @@ -4514,7 +4514,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1994/shapiro/shapiro.html - 2024-04-14T00:18:59+00:00 + 2024-04-14T22:47:40+00:00 https://ioccc-src.github.io/temp-test-ioccc/1994/shapiro/shapiro.md @@ -4530,7 +4530,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1994/smr/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:02+00:00 https://ioccc-src.github.io/temp-test-ioccc/1994/smr/.gitignore @@ -4538,7 +4538,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1994/smr/index.html - 2024-04-14T01:00:06+00:00 + 2024-04-14T23:51:26+00:00 https://ioccc-src.github.io/temp-test-ioccc/1994/smr/Makefile @@ -4570,7 +4570,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1994/tvr/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:02+00:00 https://ioccc-src.github.io/temp-test-ioccc/1994/tvr/.gitignore @@ -4578,7 +4578,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1994/tvr/index.html - 2024-04-14T01:00:06+00:00 + 2024-04-14T23:51:27+00:00 https://ioccc-src.github.io/temp-test-ioccc/1994/tvr/Makefile @@ -4634,7 +4634,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1994/weisberg/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:02+00:00 https://ioccc-src.github.io/temp-test-ioccc/1994/weisberg/.gitignore @@ -4642,7 +4642,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1994/weisberg/index.html - 2024-04-14T01:00:07+00:00 + 2024-04-14T23:51:27+00:00 https://ioccc-src.github.io/temp-test-ioccc/1994/weisberg/Makefile @@ -4678,7 +4678,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1994/westley/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:02+00:00 https://ioccc-src.github.io/temp-test-ioccc/1994/westley/.gitignore @@ -4686,7 +4686,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1994/westley/index.html - 2024-04-14T01:00:08+00:00 + 2024-04-14T23:51:28+00:00 https://ioccc-src.github.io/temp-test-ioccc/1994/westley/Makefile @@ -4746,7 +4746,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1995/cdua/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:02+00:00 https://ioccc-src.github.io/temp-test-ioccc/1995/cdua/.gitignore @@ -4754,7 +4754,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1995/cdua/index.html - 2024-04-14T01:00:09+00:00 + 2024-04-14T23:51:28+00:00 https://ioccc-src.github.io/temp-test-ioccc/1995/cdua/Makefile @@ -4782,7 +4782,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1995/dodsond1/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:02+00:00 https://ioccc-src.github.io/temp-test-ioccc/1995/dodsond1/.gitignore @@ -4790,7 +4790,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1995/dodsond1/index.html - 2024-04-14T01:00:09+00:00 + 2024-04-14T23:51:29+00:00 https://ioccc-src.github.io/temp-test-ioccc/1995/dodsond1/Makefile @@ -4826,7 +4826,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1995/dodsond2/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:02+00:00 https://ioccc-src.github.io/temp-test-ioccc/1995/dodsond2/.gitignore @@ -4834,7 +4834,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1995/dodsond2/index.html - 2024-04-14T01:00:10+00:00 + 2024-04-14T23:51:29+00:00 https://ioccc-src.github.io/temp-test-ioccc/1995/dodsond2/Makefile @@ -4854,7 +4854,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1995/esde/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:02+00:00 https://ioccc-src.github.io/temp-test-ioccc/1995/esde/esde.c @@ -4878,7 +4878,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1995/esde/index.html - 2024-04-14T01:00:11+00:00 + 2024-04-14T23:51:30+00:00 https://ioccc-src.github.io/temp-test-ioccc/1995/esde/Makefile @@ -4906,7 +4906,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1995/garry/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:02+00:00 https://ioccc-src.github.io/temp-test-ioccc/1995/garry/garry.alt.c @@ -4934,7 +4934,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1995/garry/index.html - 2024-04-14T01:00:12+00:00 + 2024-04-14T23:51:30+00:00 https://ioccc-src.github.io/temp-test-ioccc/1995/garry/Makefile @@ -4970,7 +4970,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1995/heathbar/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:02+00:00 https://ioccc-src.github.io/temp-test-ioccc/1995/heathbar/.gitignore @@ -4986,7 +4986,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1995/heathbar/index.html - 2024-04-14T01:00:13+00:00 + 2024-04-14T23:51:31+00:00 https://ioccc-src.github.io/temp-test-ioccc/1995/heathbar/Makefile @@ -5006,7 +5006,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1995/index.html - 2024-04-14T00:18:44+00:00 + 2024-04-14T22:47:25+00:00 https://ioccc-src.github.io/temp-test-ioccc/1995/leo/1995_leo.tar.bz2 @@ -5014,7 +5014,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1995/leo/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:02+00:00 https://ioccc-src.github.io/temp-test-ioccc/1995/leo/.gitignore @@ -5022,7 +5022,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1995/leo/index.html - 2024-04-14T01:00:13+00:00 + 2024-04-14T23:51:31+00:00 https://ioccc-src.github.io/temp-test-ioccc/1995/leo/leo.c @@ -5046,7 +5046,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1995/leo/spoiler1.html - 2024-04-14T00:18:59+00:00 + 2024-04-14T22:47:40+00:00 https://ioccc-src.github.io/temp-test-ioccc/1995/leo/spoiler1.md @@ -5062,7 +5062,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1995/makarios/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:02+00:00 https://ioccc-src.github.io/temp-test-ioccc/1995/makarios/.gitignore @@ -5070,7 +5070,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1995/makarios/index.html - 2024-04-14T01:00:14+00:00 + 2024-04-14T23:51:32+00:00 https://ioccc-src.github.io/temp-test-ioccc/1995/makarios/makarios.c @@ -5114,7 +5114,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1995/savastio/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:02+00:00 https://ioccc-src.github.io/temp-test-ioccc/1995/savastio/.gitignore @@ -5122,7 +5122,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1995/savastio/index.html - 2024-04-14T01:00:15+00:00 + 2024-04-14T23:51:32+00:00 https://ioccc-src.github.io/temp-test-ioccc/1995/savastio/Makefile @@ -5154,7 +5154,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1995/schnitzi/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:02+00:00 https://ioccc-src.github.io/temp-test-ioccc/1995/schnitzi/.gitignore @@ -5162,7 +5162,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1995/schnitzi/index.html - 2024-04-14T01:00:16+00:00 + 2024-04-14T23:51:33+00:00 https://ioccc-src.github.io/temp-test-ioccc/1995/schnitzi/Makefile @@ -5194,7 +5194,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1995/spinellis/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:02+00:00 https://ioccc-src.github.io/temp-test-ioccc/1995/spinellis/.gitignore @@ -5202,7 +5202,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1995/spinellis/index.html - 2024-04-14T01:00:16+00:00 + 2024-04-14T23:51:33+00:00 https://ioccc-src.github.io/temp-test-ioccc/1995/spinellis/Makefile @@ -5230,7 +5230,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1995/vanschnitz/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:02+00:00 https://ioccc-src.github.io/temp-test-ioccc/1995/vanschnitz/.gitignore @@ -5238,7 +5238,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1995/vanschnitz/index.html - 2024-04-14T01:00:17+00:00 + 2024-04-14T23:51:34+00:00 https://ioccc-src.github.io/temp-test-ioccc/1995/vanschnitz/Makefile @@ -5290,7 +5290,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1996/august/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:02+00:00 https://ioccc-src.github.io/temp-test-ioccc/1996/august/fac.oc @@ -5302,7 +5302,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1996/august/index.html - 2024-04-14T01:00:18+00:00 + 2024-04-14T23:51:34+00:00 https://ioccc-src.github.io/temp-test-ioccc/1996/august/Makefile @@ -5342,7 +5342,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1996/dalbec/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:02+00:00 https://ioccc-src.github.io/temp-test-ioccc/1996/dalbec/.gitignore @@ -5350,7 +5350,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1996/dalbec/index.html - 2024-04-14T01:00:19+00:00 + 2024-04-14T23:51:35+00:00 https://ioccc-src.github.io/temp-test-ioccc/1996/dalbec/Makefile @@ -5386,7 +5386,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1996/eldby/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:02+00:00 https://ioccc-src.github.io/temp-test-ioccc/1996/eldby/.gitignore @@ -5394,7 +5394,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1996/eldby/index.html - 2024-04-14T01:00:19+00:00 + 2024-04-14T23:51:36+00:00 https://ioccc-src.github.io/temp-test-ioccc/1996/eldby/Makefile @@ -5418,7 +5418,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1996/gandalf/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:02+00:00 https://ioccc-src.github.io/temp-test-ioccc/1996/gandalf/gandalf.c @@ -5434,7 +5434,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1996/gandalf/index.html - 2024-04-14T01:00:20+00:00 + 2024-04-14T23:51:36+00:00 https://ioccc-src.github.io/temp-test-ioccc/1996/gandalf/Makefile @@ -5466,7 +5466,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1996/huffman/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:02+00:00 https://ioccc-src.github.io/temp-test-ioccc/1996/huffman/.gitignore @@ -5482,7 +5482,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1996/huffman/index.html - 2024-04-14T01:00:21+00:00 + 2024-04-14T23:51:37+00:00 https://ioccc-src.github.io/temp-test-ioccc/1996/huffman/Makefile @@ -5502,7 +5502,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1996/index.html - 2024-04-14T00:18:44+00:00 + 2024-04-14T22:47:25+00:00 https://ioccc-src.github.io/temp-test-ioccc/1996/jonth/1996_jonth.tar.bz2 @@ -5510,7 +5510,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1996/jonth/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/1996/jonth/.gitignore @@ -5518,7 +5518,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1996/jonth/index.html - 2024-04-14T01:00:22+00:00 + 2024-04-14T23:51:37+00:00 https://ioccc-src.github.io/temp-test-ioccc/1996/jonth/jonth.c @@ -5554,7 +5554,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1996/rcm/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/1996/rcm/.gitignore @@ -5562,7 +5562,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1996/rcm/index.html - 2024-04-14T01:00:23+00:00 + 2024-04-14T23:51:38+00:00 https://ioccc-src.github.io/temp-test-ioccc/1996/rcm/Makefile @@ -5610,7 +5610,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1996/schweikh1/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/1996/schweikh1/errno.h @@ -5622,7 +5622,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1996/schweikh1/index.html - 2024-04-14T01:00:23+00:00 + 2024-04-14T23:51:38+00:00 https://ioccc-src.github.io/temp-test-ioccc/1996/schweikh1/Makefile @@ -5654,7 +5654,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1996/schweikh2/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/1996/schweikh2/.gitignore @@ -5670,7 +5670,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1996/schweikh2/index.html - 2024-04-14T01:00:24+00:00 + 2024-04-14T23:51:39+00:00 https://ioccc-src.github.io/temp-test-ioccc/1996/schweikh2/Makefile @@ -5702,7 +5702,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1996/schweikh3/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/1996/schweikh3/.gitignore @@ -5710,7 +5710,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1996/schweikh3/index.html - 2024-04-14T01:00:25+00:00 + 2024-04-14T23:51:39+00:00 https://ioccc-src.github.io/temp-test-ioccc/1996/schweikh3/Makefile @@ -5754,7 +5754,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1996/westley/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/1996/westley/.gitignore @@ -5762,7 +5762,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1996/westley/index.html - 2024-04-14T01:00:26+00:00 + 2024-04-14T23:51:40+00:00 https://ioccc-src.github.io/temp-test-ioccc/1996/westley/Makefile @@ -5822,7 +5822,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1998/banks/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/1998/banks/.gitignore @@ -5834,7 +5834,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1998/banks/index.html - 2024-04-14T01:00:26+00:00 + 2024-04-14T23:51:40+00:00 https://ioccc-src.github.io/temp-test-ioccc/1998/banks/keysym.h @@ -5886,7 +5886,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1998/bas1/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/1998/bas1/.gitignore @@ -5894,7 +5894,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1998/bas1/index.html - 2024-04-14T01:00:27+00:00 + 2024-04-14T23:51:41+00:00 https://ioccc-src.github.io/temp-test-ioccc/1998/bas1/Makefile @@ -5922,7 +5922,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1998/bas2/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/1998/bas2/.gitignore @@ -5930,7 +5930,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1998/bas2/index.html - 2024-04-14T01:00:28+00:00 + 2024-04-14T23:51:41+00:00 https://ioccc-src.github.io/temp-test-ioccc/1998/bas2/Makefile @@ -5970,7 +5970,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1998/chaos/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/1998/chaos/.gitignore @@ -5978,7 +5978,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1998/chaos/index.html - 2024-04-14T01:00:29+00:00 + 2024-04-14T23:51:42+00:00 https://ioccc-src.github.io/temp-test-ioccc/1998/chaos/ioccc.data @@ -6022,7 +6022,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1998/df/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/1998/df/.gitignore @@ -6030,7 +6030,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1998/df/index.html - 2024-04-14T01:00:29+00:00 + 2024-04-14T23:51:42+00:00 https://ioccc-src.github.io/temp-test-ioccc/1998/df/Makefile @@ -6066,7 +6066,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1998/dlowe/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/1998/dlowe/.gitignore @@ -6074,7 +6074,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1998/dlowe/index.html - 2024-04-14T01:00:30+00:00 + 2024-04-14T23:51:43+00:00 https://ioccc-src.github.io/temp-test-ioccc/1998/dlowe/Makefile @@ -6098,7 +6098,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1998/dloweneil/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/1998/dloweneil/.gitignore @@ -6106,7 +6106,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1998/dloweneil/index.html - 2024-04-14T01:00:31+00:00 + 2024-04-14T23:51:44+00:00 https://ioccc-src.github.io/temp-test-ioccc/1998/dloweneil/Makefile @@ -6154,7 +6154,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1998/dorssel/dorssel.html - 2024-04-14T00:19:00+00:00 + 2024-04-14T23:50:32+00:00 https://ioccc-src.github.io/temp-test-ioccc/1998/dorssel/dorssel.md @@ -6166,7 +6166,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1998/dorssel/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/1998/dorssel/.gitignore @@ -6174,7 +6174,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1998/dorssel/index.html - 2024-04-14T01:00:32+00:00 + 2024-04-14T23:51:44+00:00 https://ioccc-src.github.io/temp-test-ioccc/1998/dorssel/Makefile @@ -6198,7 +6198,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1998/fanf/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/1998/fanf/fanf.c @@ -6218,7 +6218,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1998/fanf/index.html - 2024-04-14T01:00:33+00:00 + 2024-04-14T23:51:45+00:00 https://ioccc-src.github.io/temp-test-ioccc/1998/fanf/Makefile @@ -6250,7 +6250,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1998/index.html - 2024-04-14T00:18:45+00:00 + 2024-04-14T22:47:25+00:00 https://ioccc-src.github.io/temp-test-ioccc/1998/Makefile @@ -6274,7 +6274,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1998/schnitzi/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/1998/schnitzi/.gitignore @@ -6282,7 +6282,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1998/schnitzi/index.html - 2024-04-14T01:00:33+00:00 + 2024-04-14T23:51:45+00:00 https://ioccc-src.github.io/temp-test-ioccc/1998/schnitzi/Makefile @@ -6318,7 +6318,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1998/schweikh1/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/1998/schweikh1/.gitignore @@ -6326,7 +6326,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1998/schweikh1/index.html - 2024-04-14T01:00:34+00:00 + 2024-04-14T23:51:46+00:00 https://ioccc-src.github.io/temp-test-ioccc/1998/schweikh1/info @@ -6334,7 +6334,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1998/schweikh1/macos.html - 2024-04-14T00:19:00+00:00 + 2024-04-14T23:50:32+00:00 https://ioccc-src.github.io/temp-test-ioccc/1998/schweikh1/macos.md @@ -6370,7 +6370,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1998/schweikh2/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/1998/schweikh2/.gitignore @@ -6378,7 +6378,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1998/schweikh2/index.html - 2024-04-14T01:00:35+00:00 + 2024-04-14T23:51:46+00:00 https://ioccc-src.github.io/temp-test-ioccc/1998/schweikh2/Makefile @@ -6410,7 +6410,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1998/schweikh3/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/1998/schweikh3/.gitignore @@ -6418,7 +6418,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1998/schweikh3/index.html - 2024-04-14T01:00:36+00:00 + 2024-04-14T23:51:47+00:00 https://ioccc-src.github.io/temp-test-ioccc/1998/schweikh3/Makefile @@ -6466,7 +6466,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1998/tomtorfs/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/1998/tomtorfs/.gitignore @@ -6474,7 +6474,7 @@ https://ioccc-src.github.io/temp-test-ioccc/1998/tomtorfs/index.html - 2024-04-14T01:00:37+00:00 + 2024-04-14T23:51:47+00:00 https://ioccc-src.github.io/temp-test-ioccc/1998/tomtorfs/Makefile @@ -6522,7 +6522,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2000/anderson/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/2000/anderson/.gitignore @@ -6530,7 +6530,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2000/anderson/index.html - 2024-04-14T01:00:37+00:00 + 2024-04-14T23:51:48+00:00 https://ioccc-src.github.io/temp-test-ioccc/2000/anderson/Makefile @@ -6562,7 +6562,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2000/bellard/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/2000/bellard/.gitignore @@ -6570,7 +6570,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2000/bellard/index.html - 2024-04-14T01:00:38+00:00 + 2024-04-14T23:51:48+00:00 https://ioccc-src.github.io/temp-test-ioccc/2000/bellard/Makefile @@ -6598,7 +6598,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2000/bmeyer/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:04+00:00 https://ioccc-src.github.io/temp-test-ioccc/2000/bmeyer/.gitignore @@ -6606,7 +6606,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2000/bmeyer/index.html - 2024-04-14T01:00:39+00:00 + 2024-04-14T23:51:49+00:00 https://ioccc-src.github.io/temp-test-ioccc/2000/bmeyer/lavabus.pgm @@ -6650,7 +6650,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2000/briddlebane/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:04+00:00 https://ioccc-src.github.io/temp-test-ioccc/2000/briddlebane/.gitignore @@ -6658,7 +6658,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2000/briddlebane/index.html - 2024-04-14T01:00:40+00:00 + 2024-04-14T23:51:49+00:00 https://ioccc-src.github.io/temp-test-ioccc/2000/briddlebane/Makefile @@ -6690,7 +6690,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2000/dhyang/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:04+00:00 https://ioccc-src.github.io/temp-test-ioccc/2000/dhyang/.gitignore @@ -6698,7 +6698,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2000/dhyang/index.html - 2024-04-14T01:00:40+00:00 + 2024-04-14T23:51:50+00:00 https://ioccc-src.github.io/temp-test-ioccc/2000/dhyang/Makefile @@ -6730,7 +6730,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2000/dlowe/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:04+00:00 https://ioccc-src.github.io/temp-test-ioccc/2000/dlowe/.gitignore @@ -6738,7 +6738,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2000/dlowe/index.html - 2024-04-14T01:00:41+00:00 + 2024-04-14T23:51:50+00:00 https://ioccc-src.github.io/temp-test-ioccc/2000/dlowe/Makefile @@ -6770,7 +6770,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2000/index.html - 2024-04-14T00:18:45+00:00 + 2024-04-14T22:47:26+00:00 https://ioccc-src.github.io/temp-test-ioccc/2000/jarijyrki/2000_jarijyrki.tar.bz2 @@ -6778,7 +6778,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2000/jarijyrki/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:04+00:00 https://ioccc-src.github.io/temp-test-ioccc/2000/jarijyrki/finance.sheet @@ -6790,7 +6790,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2000/jarijyrki/index.html - 2024-04-14T01:00:42+00:00 + 2024-04-14T23:51:51+00:00 https://ioccc-src.github.io/temp-test-ioccc/2000/jarijyrki/jarijyrki.c @@ -6826,7 +6826,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2000/natori/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:04+00:00 https://ioccc-src.github.io/temp-test-ioccc/2000/natori/.gitignore @@ -6834,7 +6834,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2000/natori/index.html - 2024-04-14T01:00:43+00:00 + 2024-04-14T23:51:51+00:00 https://ioccc-src.github.io/temp-test-ioccc/2000/natori/Makefile @@ -6874,7 +6874,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2000/primenum/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:04+00:00 https://ioccc-src.github.io/temp-test-ioccc/2000/primenum/.gitignore @@ -6882,7 +6882,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2000/primenum/index.html - 2024-04-14T01:00:44+00:00 + 2024-04-14T23:51:52+00:00 https://ioccc-src.github.io/temp-test-ioccc/2000/primenum/Makefile @@ -6922,7 +6922,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2000/rince/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:04+00:00 https://ioccc-src.github.io/temp-test-ioccc/2000/rince/.gitignore @@ -6930,7 +6930,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2000/rince/index.html - 2024-04-14T01:00:44+00:00 + 2024-04-14T23:51:52+00:00 https://ioccc-src.github.io/temp-test-ioccc/2000/rince/Makefile @@ -6962,7 +6962,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2000/robison/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:04+00:00 https://ioccc-src.github.io/temp-test-ioccc/2000/robison/.gitignore @@ -6970,7 +6970,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2000/robison/index.html - 2024-04-14T01:00:45+00:00 + 2024-04-14T23:51:53+00:00 https://ioccc-src.github.io/temp-test-ioccc/2000/robison/Makefile @@ -7002,7 +7002,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2000/schneiderwent/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:04+00:00 https://ioccc-src.github.io/temp-test-ioccc/2000/schneiderwent/.gitignore @@ -7010,7 +7010,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2000/schneiderwent/index.html - 2024-04-14T01:00:46+00:00 + 2024-04-14T23:51:54+00:00 https://ioccc-src.github.io/temp-test-ioccc/2000/schneiderwent/Makefile @@ -7046,7 +7046,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2000/thadgavin/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:04+00:00 https://ioccc-src.github.io/temp-test-ioccc/2000/thadgavin/.gitignore @@ -7054,7 +7054,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2000/thadgavin/index.html - 2024-04-14T01:00:47+00:00 + 2024-04-14T23:51:54+00:00 https://ioccc-src.github.io/temp-test-ioccc/2000/thadgavin/Makefile @@ -7086,7 +7086,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2000/tomx/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:04+00:00 https://ioccc-src.github.io/temp-test-ioccc/2000/tomx/.gitignore @@ -7094,7 +7094,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2000/tomx/index.html - 2024-04-14T01:00:48+00:00 + 2024-04-14T23:51:55+00:00 https://ioccc-src.github.io/temp-test-ioccc/2000/tomx/Makefile @@ -7162,7 +7162,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2001/anonymous/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:04+00:00 https://ioccc-src.github.io/temp-test-ioccc/2001/anonymous/.gitignore @@ -7170,7 +7170,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2001/anonymous/index.html - 2024-04-14T01:00:48+00:00 + 2024-04-14T23:51:55+00:00 https://ioccc-src.github.io/temp-test-ioccc/2001/anonymous/Makefile @@ -7206,7 +7206,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2001/bellard/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:04+00:00 https://ioccc-src.github.io/temp-test-ioccc/2001/bellard/.gitignore @@ -7214,7 +7214,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2001/bellard/index.html - 2024-04-14T01:00:49+00:00 + 2024-04-14T23:51:56+00:00 https://ioccc-src.github.io/temp-test-ioccc/2001/bellard/Makefile @@ -7246,7 +7246,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2001/cheong/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:04+00:00 https://ioccc-src.github.io/temp-test-ioccc/2001/cheong/.gitignore @@ -7254,7 +7254,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2001/cheong/index.html - 2024-04-14T01:00:50+00:00 + 2024-04-14T23:51:56+00:00 https://ioccc-src.github.io/temp-test-ioccc/2001/cheong/Makefile @@ -7286,7 +7286,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2001/coupard/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:04+00:00 https://ioccc-src.github.io/temp-test-ioccc/2001/coupard/.gitignore @@ -7294,7 +7294,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2001/coupard/index.html - 2024-04-14T01:00:51+00:00 + 2024-04-14T23:51:57+00:00 https://ioccc-src.github.io/temp-test-ioccc/2001/coupard/Makefile @@ -7330,7 +7330,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2001/ctk/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:04+00:00 https://ioccc-src.github.io/temp-test-ioccc/2001/ctk/.gitignore @@ -7338,7 +7338,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2001/ctk/index.html - 2024-04-14T01:00:51+00:00 + 2024-04-14T23:51:57+00:00 https://ioccc-src.github.io/temp-test-ioccc/2001/ctk/Makefile @@ -7370,7 +7370,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2001/dgbeards/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:04+00:00 https://ioccc-src.github.io/temp-test-ioccc/2001/dgbeards/.gitignore @@ -7378,7 +7378,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2001/dgbeards/index.html - 2024-04-14T01:00:52+00:00 + 2024-04-14T23:51:58+00:00 https://ioccc-src.github.io/temp-test-ioccc/2001/dgbeards/Makefile @@ -7410,7 +7410,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2001/herrmann1/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:04+00:00 https://ioccc-src.github.io/temp-test-ioccc/2001/herrmann1/.gitignore @@ -7438,7 +7438,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2001/herrmann1/index.html - 2024-04-14T01:00:53+00:00 + 2024-04-14T23:51:58+00:00 https://ioccc-src.github.io/temp-test-ioccc/2001/herrmann1/Makefile @@ -7466,7 +7466,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2001/herrmann2/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:04+00:00 https://ioccc-src.github.io/temp-test-ioccc/2001/herrmann2/.gitignore @@ -7494,7 +7494,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2001/herrmann2/index.html - 2024-04-14T01:00:54+00:00 + 2024-04-14T23:51:59+00:00 https://ioccc-src.github.io/temp-test-ioccc/2001/herrmann2/Makefile @@ -7514,7 +7514,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2001/index.html - 2024-04-14T00:18:46+00:00 + 2024-04-14T22:47:26+00:00 https://ioccc-src.github.io/temp-test-ioccc/2001/jason/2001_jason.tar.bz2 @@ -7522,7 +7522,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2001/jason/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:04+00:00 https://ioccc-src.github.io/temp-test-ioccc/2001/jason/.gitignore @@ -7530,7 +7530,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2001/jason/index.html - 2024-04-14T01:00:55+00:00 + 2024-04-14T23:51:59+00:00 https://ioccc-src.github.io/temp-test-ioccc/2001/jason/jason.c @@ -7558,7 +7558,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2001/kev/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:04+00:00 https://ioccc-src.github.io/temp-test-ioccc/2001/kev/.gitignore @@ -7566,7 +7566,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2001/kev/index.html - 2024-04-14T01:00:55+00:00 + 2024-04-14T23:52:00+00:00 https://ioccc-src.github.io/temp-test-ioccc/2001/kev/kev.alt.c @@ -7606,7 +7606,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2001/ollinger/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:05+00:00 https://ioccc-src.github.io/temp-test-ioccc/2001/ollinger/.gitignore @@ -7614,7 +7614,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2001/ollinger/index.html - 2024-04-14T01:00:56+00:00 + 2024-04-14T23:52:00+00:00 https://ioccc-src.github.io/temp-test-ioccc/2001/ollinger/Makefile @@ -7650,7 +7650,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2001/rosten/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:05+00:00 https://ioccc-src.github.io/temp-test-ioccc/2001/rosten/.gitignore @@ -7658,7 +7658,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2001/rosten/index.html - 2024-04-14T01:00:57+00:00 + 2024-04-14T23:52:01+00:00 https://ioccc-src.github.io/temp-test-ioccc/2001/rosten/Makefile @@ -7690,7 +7690,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2001/schweikh/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:05+00:00 https://ioccc-src.github.io/temp-test-ioccc/2001/schweikh/.gitignore @@ -7698,7 +7698,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2001/schweikh/index.html - 2024-04-14T01:00:58+00:00 + 2024-04-14T23:52:01+00:00 https://ioccc-src.github.io/temp-test-ioccc/2001/schweikh/Makefile @@ -7730,7 +7730,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2001/westley/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:05+00:00 https://ioccc-src.github.io/temp-test-ioccc/2001/westley/.gitignore @@ -7738,7 +7738,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2001/westley/index.html - 2024-04-14T01:00:59+00:00 + 2024-04-14T23:52:02+00:00 https://ioccc-src.github.io/temp-test-ioccc/2001/westley/Makefile @@ -7774,7 +7774,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2001/williams/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:05+00:00 https://ioccc-src.github.io/temp-test-ioccc/2001/williams/.gitignore @@ -7782,7 +7782,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2001/williams/index.html - 2024-04-14T01:00:59+00:00 + 2024-04-14T23:52:02+00:00 https://ioccc-src.github.io/temp-test-ioccc/2001/williams/Makefile @@ -7826,7 +7826,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2004/anonymous/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:05+00:00 https://ioccc-src.github.io/temp-test-ioccc/2004/anonymous/.gitignore @@ -7834,7 +7834,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2004/anonymous/index.html - 2024-04-14T01:01:00+00:00 + 2024-04-14T23:52:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/2004/anonymous/Makefile @@ -7874,7 +7874,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2004/arachnid/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:05+00:00 https://ioccc-src.github.io/temp-test-ioccc/2004/arachnid/.gitignore @@ -7882,7 +7882,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2004/arachnid/index.html - 2024-04-14T01:01:01+00:00 + 2024-04-14T23:52:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/2004/arachnid/Makefile @@ -7910,7 +7910,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2004/burley/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:05+00:00 https://ioccc-src.github.io/temp-test-ioccc/2004/burley/.gitignore @@ -7918,7 +7918,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2004/burley/index.html - 2024-04-14T01:01:02+00:00 + 2024-04-14T23:52:04+00:00 https://ioccc-src.github.io/temp-test-ioccc/2004/burley/Makefile @@ -7942,7 +7942,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2004/gavare/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:05+00:00 https://ioccc-src.github.io/temp-test-ioccc/2004/gavare/gavare.alt2.c @@ -7970,7 +7970,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2004/gavare/index.html - 2024-04-14T01:01:02+00:00 + 2024-04-14T23:52:04+00:00 https://ioccc-src.github.io/temp-test-ioccc/2004/gavare/Makefile @@ -7994,7 +7994,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2004/gavin/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:05+00:00 https://ioccc-src.github.io/temp-test-ioccc/2004/gavin/gavin.alt.c @@ -8006,7 +8006,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2004/gavin/gavin.html - 2024-04-14T00:19:00+00:00 + 2024-04-14T22:47:41+00:00 https://ioccc-src.github.io/temp-test-ioccc/2004/gavin/gavin.md @@ -8030,7 +8030,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2004/gavin/index.html - 2024-04-14T01:01:03+00:00 + 2024-04-14T23:52:05+00:00 https://ioccc-src.github.io/temp-test-ioccc/2004/gavin/lilo.conf @@ -8066,7 +8066,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2004/hibachi/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:05+00:00 https://ioccc-src.github.io/temp-test-ioccc/2004/hibachi/.gitignore @@ -8082,7 +8082,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2004/hibachi/index.html - 2024-04-14T01:01:04+00:00 + 2024-04-14T23:52:05+00:00 https://ioccc-src.github.io/temp-test-ioccc/2004/hibachi/Makefile @@ -8254,7 +8254,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2004/hoyle/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:05+00:00 https://ioccc-src.github.io/temp-test-ioccc/2004/hoyle/.gitignore @@ -8270,7 +8270,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2004/hoyle/index.html - 2024-04-14T01:01:05+00:00 + 2024-04-14T23:52:06+00:00 https://ioccc-src.github.io/temp-test-ioccc/2004/hoyle/Makefile @@ -8290,7 +8290,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2004/index.html - 2024-04-14T00:18:46+00:00 + 2024-04-14T22:47:27+00:00 https://ioccc-src.github.io/temp-test-ioccc/2004/jdalbec/2004_jdalbec.tar.bz2 @@ -8298,7 +8298,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2004/jdalbec/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:05+00:00 https://ioccc-src.github.io/temp-test-ioccc/2004/jdalbec/.gitignore @@ -8306,7 +8306,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2004/jdalbec/index.html - 2024-04-14T01:01:06+00:00 + 2024-04-14T23:52:06+00:00 https://ioccc-src.github.io/temp-test-ioccc/2004/jdalbec/jdalbec.alt.c @@ -8346,7 +8346,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2004/kopczynski/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:05+00:00 https://ioccc-src.github.io/temp-test-ioccc/2004/kopczynski/.gitignore @@ -8354,7 +8354,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2004/kopczynski/index.html - 2024-04-14T01:01:06+00:00 + 2024-04-14T23:52:07+00:00 https://ioccc-src.github.io/temp-test-ioccc/2004/kopczynski/kopczynski-10 @@ -8454,7 +8454,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2004/newbern/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:05+00:00 https://ioccc-src.github.io/temp-test-ioccc/2004/newbern/.gitignore @@ -8462,7 +8462,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2004/newbern/index.html - 2024-04-14T01:01:07+00:00 + 2024-04-14T23:52:07+00:00 https://ioccc-src.github.io/temp-test-ioccc/2004/newbern/Makefile @@ -8498,7 +8498,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2004/omoikane/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:05+00:00 https://ioccc-src.github.io/temp-test-ioccc/2004/omoikane/.gitignore @@ -8506,7 +8506,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2004/omoikane/index.html - 2024-04-14T01:01:08+00:00 + 2024-04-14T23:52:08+00:00 https://ioccc-src.github.io/temp-test-ioccc/2004/omoikane/Makefile @@ -8550,7 +8550,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2004/schnitzi/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:05+00:00 https://ioccc-src.github.io/temp-test-ioccc/2004/schnitzi/.gitignore @@ -8558,7 +8558,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2004/schnitzi/index.html - 2024-04-14T01:01:09+00:00 + 2024-04-14T23:52:08+00:00 https://ioccc-src.github.io/temp-test-ioccc/2004/schnitzi/Makefile @@ -8598,7 +8598,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2004/sds/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:05+00:00 https://ioccc-src.github.io/temp-test-ioccc/2004/sds/.gitignore @@ -8606,7 +8606,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2004/sds/index.html - 2024-04-14T01:01:09+00:00 + 2024-04-14T23:52:09+00:00 https://ioccc-src.github.io/temp-test-ioccc/2004/sds/Makefile @@ -8642,7 +8642,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2004/vik1/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:05+00:00 https://ioccc-src.github.io/temp-test-ioccc/2004/vik1/.gitignore @@ -8650,7 +8650,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2004/vik1/index.html - 2024-04-14T01:01:10+00:00 + 2024-04-14T23:52:09+00:00 https://ioccc-src.github.io/temp-test-ioccc/2004/vik1/Makefile @@ -8678,7 +8678,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2004/vik2/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:05+00:00 https://ioccc-src.github.io/temp-test-ioccc/2004/vik2/.gitignore @@ -8686,7 +8686,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2004/vik2/index.html - 2024-04-14T01:01:11+00:00 + 2024-04-14T23:52:10+00:00 https://ioccc-src.github.io/temp-test-ioccc/2004/vik2/Makefile @@ -8746,7 +8746,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2005/aidan/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:06+00:00 https://ioccc-src.github.io/temp-test-ioccc/2005/aidan/.gitignore @@ -8754,7 +8754,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2005/aidan/index.html - 2024-04-14T01:01:12+00:00 + 2024-04-14T23:52:10+00:00 https://ioccc-src.github.io/temp-test-ioccc/2005/aidan/insane1.sudoku @@ -8826,7 +8826,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2005/anon/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:06+00:00 https://ioccc-src.github.io/temp-test-ioccc/2005/anon/.gitignore @@ -8834,7 +8834,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2005/anon/index.html - 2024-04-14T01:01:13+00:00 + 2024-04-14T23:52:11+00:00 https://ioccc-src.github.io/temp-test-ioccc/2005/anon/Makefile @@ -8862,7 +8862,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2005/boutines/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:06+00:00 https://ioccc-src.github.io/temp-test-ioccc/2005/boutines/eqn.png @@ -8874,7 +8874,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2005/boutines/index.html - 2024-04-14T01:01:13+00:00 + 2024-04-14T23:52:12+00:00 https://ioccc-src.github.io/temp-test-ioccc/2005/boutines/input.txt @@ -8914,7 +8914,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2005/chia/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:06+00:00 https://ioccc-src.github.io/temp-test-ioccc/2005/chia/.gitignore @@ -8922,7 +8922,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2005/chia/index.html - 2024-04-14T01:01:14+00:00 + 2024-04-14T23:52:12+00:00 https://ioccc-src.github.io/temp-test-ioccc/2005/chia/Makefile @@ -8946,7 +8946,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2005/giljade/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:06+00:00 https://ioccc-src.github.io/temp-test-ioccc/2005/giljade/giljade.c @@ -8962,7 +8962,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2005/giljade/index.html - 2024-04-14T01:01:15+00:00 + 2024-04-14T23:52:13+00:00 https://ioccc-src.github.io/temp-test-ioccc/2005/giljade/Makefile @@ -8990,7 +8990,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2005/index.html - 2024-04-14T00:18:47+00:00 + 2024-04-14T22:47:27+00:00 https://ioccc-src.github.io/temp-test-ioccc/2005/jetro/2005_jetro.tar.bz2 @@ -8998,7 +8998,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2005/jetro/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:06+00:00 https://ioccc-src.github.io/temp-test-ioccc/2005/jetro/.gitignore @@ -9006,7 +9006,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2005/jetro/index.html - 2024-04-14T01:01:16+00:00 + 2024-04-14T23:52:13+00:00 https://ioccc-src.github.io/temp-test-ioccc/2005/jetro/jetro.c @@ -9034,7 +9034,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2005/klausler/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:06+00:00 https://ioccc-src.github.io/temp-test-ioccc/2005/klausler/.gitignore @@ -9042,7 +9042,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2005/klausler/index.html - 2024-04-14T01:01:16+00:00 + 2024-04-14T23:52:14+00:00 https://ioccc-src.github.io/temp-test-ioccc/2005/klausler/klausler.c @@ -9078,7 +9078,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2005/mikeash/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:06+00:00 https://ioccc-src.github.io/temp-test-ioccc/2005/mikeash/.gitignore @@ -9086,7 +9086,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2005/mikeash/index.html - 2024-04-14T01:01:17+00:00 + 2024-04-14T23:52:14+00:00 https://ioccc-src.github.io/temp-test-ioccc/2005/mikeash/Makefile @@ -9122,7 +9122,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2005/mynx/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:06+00:00 https://ioccc-src.github.io/temp-test-ioccc/2005/mynx/.gitignore @@ -9130,7 +9130,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2005/mynx/index.html - 2024-04-14T01:01:18+00:00 + 2024-04-14T23:52:15+00:00 https://ioccc-src.github.io/temp-test-ioccc/2005/mynx/Makefile @@ -9182,7 +9182,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2005/persano/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:06+00:00 https://ioccc-src.github.io/temp-test-ioccc/2005/persano/.gitignore @@ -9190,7 +9190,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2005/persano/index.html - 2024-04-14T01:01:19+00:00 + 2024-04-14T23:52:15+00:00 https://ioccc-src.github.io/temp-test-ioccc/2005/persano/Makefile @@ -9258,7 +9258,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2005/sykes/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:06+00:00 https://ioccc-src.github.io/temp-test-ioccc/2005/sykes/.gitignore @@ -9266,7 +9266,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2005/sykes/index.html - 2024-04-14T01:01:20+00:00 + 2024-04-14T23:52:16+00:00 https://ioccc-src.github.io/temp-test-ioccc/2005/sykes/kernel-2.901465-03.bin @@ -9314,7 +9314,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2005/timwi/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:06+00:00 https://ioccc-src.github.io/temp-test-ioccc/2005/timwi/.gitignore @@ -9322,7 +9322,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2005/timwi/index.html - 2024-04-14T01:01:20+00:00 + 2024-04-14T23:52:16+00:00 https://ioccc-src.github.io/temp-test-ioccc/2005/timwi/Makefile @@ -9354,7 +9354,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2005/toledo/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:06+00:00 https://ioccc-src.github.io/temp-test-ioccc/2005/toledo/.gitignore @@ -9362,7 +9362,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2005/toledo/index.html - 2024-04-14T01:01:21+00:00 + 2024-04-14T23:52:17+00:00 https://ioccc-src.github.io/temp-test-ioccc/2005/toledo/Makefile @@ -9410,7 +9410,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2005/vik/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:06+00:00 https://ioccc-src.github.io/temp-test-ioccc/2005/vik/.gitignore @@ -9418,7 +9418,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2005/vik/index.html - 2024-04-14T01:01:22+00:00 + 2024-04-14T23:52:17+00:00 https://ioccc-src.github.io/temp-test-ioccc/2005/vik/Makefile @@ -9450,7 +9450,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2005/vince/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:06+00:00 https://ioccc-src.github.io/temp-test-ioccc/2005/vince/.gitignore @@ -9458,7 +9458,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2005/vince/index.html - 2024-04-14T01:01:23+00:00 + 2024-04-14T23:52:18+00:00 https://ioccc-src.github.io/temp-test-ioccc/2005/vince/Makefile @@ -9526,7 +9526,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2006/birken/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:06+00:00 https://ioccc-src.github.io/temp-test-ioccc/2006/birken/.gitignore @@ -9534,7 +9534,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2006/birken/index.html - 2024-04-14T01:01:23+00:00 + 2024-04-14T23:52:18+00:00 https://ioccc-src.github.io/temp-test-ioccc/2006/birken/info.pdf @@ -9602,7 +9602,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2006/borsanyi/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:06+00:00 https://ioccc-src.github.io/temp-test-ioccc/2006/borsanyi/.gitignore @@ -9610,7 +9610,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2006/borsanyi/index.html - 2024-04-14T01:01:24+00:00 + 2024-04-14T23:52:19+00:00 https://ioccc-src.github.io/temp-test-ioccc/2006/borsanyi/Makefile @@ -9642,7 +9642,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2006/grothe/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:06+00:00 https://ioccc-src.github.io/temp-test-ioccc/2006/grothe/.gitignore @@ -9658,7 +9658,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2006/grothe/index.html - 2024-04-14T01:01:25+00:00 + 2024-04-14T23:52:19+00:00 https://ioccc-src.github.io/temp-test-ioccc/2006/grothe/Makefile @@ -9698,7 +9698,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2006/hamre/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:06+00:00 https://ioccc-src.github.io/temp-test-ioccc/2006/hamre/.gitignore @@ -9714,7 +9714,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2006/hamre/index.html - 2024-04-14T01:01:26+00:00 + 2024-04-14T23:52:20+00:00 https://ioccc-src.github.io/temp-test-ioccc/2006/hamre/Makefile @@ -9734,7 +9734,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2006/index.html - 2024-04-14T00:18:47+00:00 + 2024-04-14T22:47:28+00:00 https://ioccc-src.github.io/temp-test-ioccc/2006/Makefile @@ -9746,7 +9746,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2006/meyer/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:06+00:00 https://ioccc-src.github.io/temp-test-ioccc/2006/meyer/.gitignore @@ -9754,7 +9754,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2006/meyer/index.html - 2024-04-14T01:01:26+00:00 + 2024-04-14T23:52:20+00:00 https://ioccc-src.github.io/temp-test-ioccc/2006/meyer/Makefile @@ -9782,7 +9782,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2006/monge/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:06+00:00 https://ioccc-src.github.io/temp-test-ioccc/2006/monge/.gitignore @@ -9790,7 +9790,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2006/monge/index.html - 2024-04-14T01:01:27+00:00 + 2024-04-14T23:52:21+00:00 https://ioccc-src.github.io/temp-test-ioccc/2006/monge/Makefile @@ -9830,7 +9830,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2006/night/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:07+00:00 https://ioccc-src.github.io/temp-test-ioccc/2006/night/.gitignore @@ -9838,7 +9838,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2006/night/index.html - 2024-04-14T01:01:28+00:00 + 2024-04-14T23:52:21+00:00 https://ioccc-src.github.io/temp-test-ioccc/2006/night/Makefile @@ -9878,7 +9878,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2006/sloane/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:07+00:00 https://ioccc-src.github.io/temp-test-ioccc/2006/sloane/.gitignore @@ -9886,7 +9886,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2006/sloane/index.html - 2024-04-14T01:01:29+00:00 + 2024-04-14T23:52:22+00:00 https://ioccc-src.github.io/temp-test-ioccc/2006/sloane/Makefile @@ -9986,7 +9986,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2006/stewart/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:07+00:00 https://ioccc-src.github.io/temp-test-ioccc/2006/stewart/fern @@ -10010,7 +10010,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2006/stewart/index.html - 2024-04-14T01:01:30+00:00 + 2024-04-14T23:52:22+00:00 https://ioccc-src.github.io/temp-test-ioccc/2006/stewart/ioccc @@ -10122,7 +10122,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2006/sykes1/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:07+00:00 https://ioccc-src.github.io/temp-test-ioccc/2006/sykes1/.gitignore @@ -10130,7 +10130,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2006/sykes1/index.html - 2024-04-14T01:01:30+00:00 + 2024-04-14T23:52:23+00:00 https://ioccc-src.github.io/temp-test-ioccc/2006/sykes1/Makefile @@ -10170,7 +10170,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2006/sykes2/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:07+00:00 https://ioccc-src.github.io/temp-test-ioccc/2006/sykes2/.gitignore @@ -10178,7 +10178,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2006/sykes2/index.html - 2024-04-14T01:01:31+00:00 + 2024-04-14T23:52:23+00:00 https://ioccc-src.github.io/temp-test-ioccc/2006/sykes2/Makefile @@ -10210,7 +10210,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2006/toledo1/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:07+00:00 https://ioccc-src.github.io/temp-test-ioccc/2006/toledo1/.gitignore @@ -10218,7 +10218,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2006/toledo1/index.html - 2024-04-14T01:01:32+00:00 + 2024-04-14T23:52:24+00:00 https://ioccc-src.github.io/temp-test-ioccc/2006/toledo1/Makefile @@ -10266,7 +10266,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2006/toledo2/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:07+00:00 https://ioccc-src.github.io/temp-test-ioccc/2006/toledo2/.gitignore @@ -10274,7 +10274,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2006/toledo2/index.html - 2024-04-14T01:01:33+00:00 + 2024-04-14T23:52:24+00:00 https://ioccc-src.github.io/temp-test-ioccc/2006/toledo2/KAYPROII.ZIP @@ -10310,7 +10310,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2006/toledo3/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:07+00:00 https://ioccc-src.github.io/temp-test-ioccc/2006/toledo3/.gitignore @@ -10318,7 +10318,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2006/toledo3/index.html - 2024-04-14T01:01:34+00:00 + 2024-04-14T23:52:25+00:00 https://ioccc-src.github.io/temp-test-ioccc/2006/toledo3/layer.c @@ -10378,7 +10378,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2011/akari/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:07+00:00 https://ioccc-src.github.io/temp-test-ioccc/2011/akari/example.ppm @@ -10390,7 +10390,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2011/akari/index.html - 2024-04-14T01:01:34+00:00 + 2024-04-14T23:52:25+00:00 https://ioccc-src.github.io/temp-test-ioccc/2011/akari/Makefile @@ -10426,7 +10426,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2011/blakely/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:07+00:00 https://ioccc-src.github.io/temp-test-ioccc/2011/blakely/evolve_to_3.dat @@ -10438,7 +10438,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2011/blakely/index.html - 2024-04-14T01:01:35+00:00 + 2024-04-14T23:52:26+00:00 https://ioccc-src.github.io/temp-test-ioccc/2011/blakely/Makefile @@ -10486,7 +10486,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2011/borsanyi/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:07+00:00 https://ioccc-src.github.io/temp-test-ioccc/2011/borsanyi/.gitignore @@ -10494,7 +10494,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2011/borsanyi/index.html - 2024-04-14T01:01:36+00:00 + 2024-04-14T23:52:26+00:00 https://ioccc-src.github.io/temp-test-ioccc/2011/borsanyi/Makefile @@ -10718,7 +10718,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2011/dlowe/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:07+00:00 https://ioccc-src.github.io/temp-test-ioccc/2011/dlowe/.gitignore @@ -10726,7 +10726,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2011/dlowe/index.html - 2024-04-14T01:01:37+00:00 + 2024-04-14T23:52:27+00:00 https://ioccc-src.github.io/temp-test-ioccc/2011/dlowe/Makefile @@ -10762,7 +10762,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2011/eastman/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:07+00:00 https://ioccc-src.github.io/temp-test-ioccc/2011/eastman/.gitignore @@ -10770,7 +10770,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2011/eastman/index.html - 2024-04-14T01:01:38+00:00 + 2024-04-14T23:52:27+00:00 https://ioccc-src.github.io/temp-test-ioccc/2011/eastman/Makefile @@ -10794,7 +10794,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2011/fredriksson/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:07+00:00 https://ioccc-src.github.io/temp-test-ioccc/2011/fredriksson/fredriksson.c @@ -10810,7 +10810,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2011/fredriksson/index.html - 2024-04-14T01:01:38+00:00 + 2024-04-14T23:52:28+00:00 https://ioccc-src.github.io/temp-test-ioccc/2011/fredriksson/Makefile @@ -10834,7 +10834,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2011/goren/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:07+00:00 https://ioccc-src.github.io/temp-test-ioccc/2011/goren/.gitignore @@ -10850,7 +10850,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2011/goren/index.html - 2024-04-14T01:01:39+00:00 + 2024-04-14T23:52:29+00:00 https://ioccc-src.github.io/temp-test-ioccc/2011/goren/MagrittePipe.jpg @@ -10898,7 +10898,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2011/hamaji/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:07+00:00 https://ioccc-src.github.io/temp-test-ioccc/2011/hamaji/face.nono @@ -10918,7 +10918,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2011/hamaji/index.html - 2024-04-14T01:01:40+00:00 + 2024-04-14T23:52:29+00:00 https://ioccc-src.github.io/temp-test-ioccc/2011/hamaji/Makefile @@ -10974,7 +10974,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2011/hou/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:07+00:00 https://ioccc-src.github.io/temp-test-ioccc/2011/hou/.gitignore @@ -10990,7 +10990,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2011/hou/index.html - 2024-04-14T01:01:41+00:00 + 2024-04-14T23:52:30+00:00 https://ioccc-src.github.io/temp-test-ioccc/2011/hou/Makefile @@ -11010,7 +11010,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2011/index.html - 2024-04-14T00:18:47+00:00 + 2024-04-14T22:47:28+00:00 https://ioccc-src.github.io/temp-test-ioccc/2011/konno/2011_konno.tar.bz2 @@ -11018,7 +11018,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2011/konno/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:07+00:00 https://ioccc-src.github.io/temp-test-ioccc/2011/konno/.gitignore @@ -11026,7 +11026,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2011/konno/index.html - 2024-04-14T01:01:41+00:00 + 2024-04-14T23:52:30+00:00 https://ioccc-src.github.io/temp-test-ioccc/2011/konno/konno.c @@ -11066,7 +11066,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2011/richards/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:08+00:00 https://ioccc-src.github.io/temp-test-ioccc/2011/richards/.gitignore @@ -11074,7 +11074,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2011/richards/index.html - 2024-04-14T01:01:42+00:00 + 2024-04-14T23:52:31+00:00 https://ioccc-src.github.io/temp-test-ioccc/2011/richards/Makefile @@ -11118,7 +11118,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2011/toledo/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:08+00:00 https://ioccc-src.github.io/temp-test-ioccc/2011/toledo/.gitignore @@ -11126,7 +11126,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2011/toledo/index.html - 2024-04-14T01:01:43+00:00 + 2024-04-14T23:52:31+00:00 https://ioccc-src.github.io/temp-test-ioccc/2011/toledo/keysym.h @@ -11170,7 +11170,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2011/vik/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:08+00:00 https://ioccc-src.github.io/temp-test-ioccc/2011/vik/.gitignore @@ -11178,7 +11178,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2011/vik/index.html - 2024-04-14T01:01:44+00:00 + 2024-04-14T23:52:32+00:00 https://ioccc-src.github.io/temp-test-ioccc/2011/vik/mad_world.mod @@ -11230,7 +11230,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2011/zucker/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:08+00:00 https://ioccc-src.github.io/temp-test-ioccc/2011/zucker/.gitignore @@ -11238,7 +11238,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2011/zucker/index.html - 2024-04-14T01:01:45+00:00 + 2024-04-14T23:52:32+00:00 https://ioccc-src.github.io/temp-test-ioccc/2011/zucker/Makefile @@ -11290,7 +11290,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2012/blakely/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:08+00:00 https://ioccc-src.github.io/temp-test-ioccc/2012/blakely/.gitignore @@ -11298,7 +11298,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2012/blakely/index.html - 2024-04-14T01:01:45+00:00 + 2024-04-14T23:52:33+00:00 https://ioccc-src.github.io/temp-test-ioccc/2012/blakely/Makefile @@ -11326,7 +11326,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2012/deckmyn/deckmyn.html - 2024-04-14T00:19:01+00:00 + 2024-04-14T23:50:32+00:00 https://ioccc-src.github.io/temp-test-ioccc/2012/deckmyn/deckmyn.md @@ -11338,7 +11338,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2012/deckmyn/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:08+00:00 https://ioccc-src.github.io/temp-test-ioccc/2012/deckmyn/example_beethoven @@ -11354,7 +11354,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2012/deckmyn/index.html - 2024-04-14T01:01:46+00:00 + 2024-04-14T23:52:33+00:00 https://ioccc-src.github.io/temp-test-ioccc/2012/deckmyn/Makefile @@ -11390,7 +11390,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2012/dlowe/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:08+00:00 https://ioccc-src.github.io/temp-test-ioccc/2012/dlowe/.gitignore @@ -11398,7 +11398,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2012/dlowe/index.html - 2024-04-14T01:01:47+00:00 + 2024-04-14T23:52:34+00:00 https://ioccc-src.github.io/temp-test-ioccc/2012/dlowe/Makefile @@ -11474,7 +11474,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2012/endoh1/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:08+00:00 https://ioccc-src.github.io/temp-test-ioccc/2012/endoh1/evaporation.txt @@ -11510,7 +11510,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2012/endoh1/index.html - 2024-04-14T01:01:48+00:00 + 2024-04-14T23:52:34+00:00 https://ioccc-src.github.io/temp-test-ioccc/2012/endoh1/leidenfrost.txt @@ -11570,7 +11570,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2012/endoh2/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:08+00:00 https://ioccc-src.github.io/temp-test-ioccc/2012/endoh2/find-font-table.rb @@ -11582,7 +11582,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2012/endoh2/index.html - 2024-04-14T01:01:48+00:00 + 2024-04-14T23:52:35+00:00 https://ioccc-src.github.io/temp-test-ioccc/2012/endoh2/Makefile @@ -11634,7 +11634,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2012/grothe/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:08+00:00 https://ioccc-src.github.io/temp-test-ioccc/2012/grothe/.gitignore @@ -11650,7 +11650,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2012/grothe/index.html - 2024-04-14T01:01:49+00:00 + 2024-04-14T23:52:35+00:00 https://ioccc-src.github.io/temp-test-ioccc/2012/grothe/Makefile @@ -11678,7 +11678,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2012/hamano/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:08+00:00 https://ioccc-src.github.io/temp-test-ioccc/2012/hamano/.gitignore @@ -11694,7 +11694,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2012/hamano/index.html - 2024-04-14T01:01:50+00:00 + 2024-04-14T23:52:36+00:00 https://ioccc-src.github.io/temp-test-ioccc/2012/hamano/Makefile @@ -11726,7 +11726,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2012/hou/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:08+00:00 https://ioccc-src.github.io/temp-test-ioccc/2012/hou/.gitignore @@ -11738,7 +11738,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2012/hou/hint.html - 2024-04-14T00:19:01+00:00 + 2024-04-14T23:50:33+00:00 https://ioccc-src.github.io/temp-test-ioccc/2012/hou/hint.md @@ -11758,7 +11758,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2012/hou/index.html - 2024-04-14T01:01:51+00:00 + 2024-04-14T23:52:36+00:00 https://ioccc-src.github.io/temp-test-ioccc/2012/hou/Makefile @@ -11790,7 +11790,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2012/index.html - 2024-04-14T00:18:48+00:00 + 2024-04-14T22:47:28+00:00 https://ioccc-src.github.io/temp-test-ioccc/2012/kang/2012_kang.tar.bz2 @@ -11814,7 +11814,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2012/kang/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:08+00:00 https://ioccc-src.github.io/temp-test-ioccc/2012/kang/.gitignore @@ -11822,7 +11822,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2012/kang/index.html - 2024-04-14T01:01:52+00:00 + 2024-04-14T23:52:37+00:00 https://ioccc-src.github.io/temp-test-ioccc/2012/kang/kang.alt.c @@ -11862,7 +11862,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2012/konno/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:08+00:00 https://ioccc-src.github.io/temp-test-ioccc/2012/konno/.gitignore @@ -11870,7 +11870,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2012/konno/index.html - 2024-04-14T01:01:52+00:00 + 2024-04-14T23:52:37+00:00 https://ioccc-src.github.io/temp-test-ioccc/2012/konno/konno.alt.c @@ -11910,7 +11910,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2012/omoikane/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:08+00:00 https://ioccc-src.github.io/temp-test-ioccc/2012/omoikane/.gitignore @@ -11918,7 +11918,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2012/omoikane/index.html - 2024-04-14T01:01:53+00:00 + 2024-04-14T23:52:38+00:00 https://ioccc-src.github.io/temp-test-ioccc/2012/omoikane/Makefile @@ -11982,7 +11982,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2012/tromp/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:08+00:00 https://ioccc-src.github.io/temp-test-ioccc/2012/tromp/.gitignore @@ -11994,7 +11994,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2012/tromp/how.html - 2024-04-14T00:19:02+00:00 + 2024-04-14T22:47:42+00:00 https://ioccc-src.github.io/temp-test-ioccc/2012/tromp/how.md @@ -12006,7 +12006,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2012/tromp/index.html - 2024-04-14T01:01:54+00:00 + 2024-04-14T23:52:38+00:00 https://ioccc-src.github.io/temp-test-ioccc/2012/tromp/inflate.Blc @@ -12074,7 +12074,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2012/vik/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:08+00:00 https://ioccc-src.github.io/temp-test-ioccc/2012/vik/.gitignore @@ -12082,7 +12082,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2012/vik/index.html - 2024-04-14T01:01:55+00:00 + 2024-04-14T23:52:39+00:00 https://ioccc-src.github.io/temp-test-ioccc/2012/vik/ioccc.png @@ -12138,7 +12138,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2012/zeitak/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:08+00:00 https://ioccc-src.github.io/temp-test-ioccc/2012/zeitak/.gitignore @@ -12182,7 +12182,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2012/zeitak/index.html - 2024-04-14T01:01:55+00:00 + 2024-04-14T23:52:39+00:00 https://ioccc-src.github.io/temp-test-ioccc/2012/zeitak/Makefile @@ -12258,7 +12258,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2013/birken/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:09+00:00 https://ioccc-src.github.io/temp-test-ioccc/2013/birken/format.txt @@ -12286,7 +12286,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2013/birken/index.html - 2024-04-14T01:01:56+00:00 + 2024-04-14T23:52:40+00:00 https://ioccc-src.github.io/temp-test-ioccc/2013/birken/ioccc.txt @@ -12458,7 +12458,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2013/cable1/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:09+00:00 https://ioccc-src.github.io/temp-test-ioccc/2013/cable1/.gitignore @@ -12466,7 +12466,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2013/cable1/index.html - 2024-04-14T01:01:57+00:00 + 2024-04-14T23:52:40+00:00 https://ioccc-src.github.io/temp-test-ioccc/2013/cable1/Makefile @@ -12506,7 +12506,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2013/cable2/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:09+00:00 https://ioccc-src.github.io/temp-test-ioccc/2013/cable2/.gitignore @@ -12518,7 +12518,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2013/cable2/index.html - 2024-04-14T01:01:58+00:00 + 2024-04-14T23:52:41+00:00 https://ioccc-src.github.io/temp-test-ioccc/2013/cable2/Makefile @@ -12578,7 +12578,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2013/cable3/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:09+00:00 https://ioccc-src.github.io/temp-test-ioccc/2013/cable3/fd.img @@ -12594,7 +12594,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2013/cable3/index.html - 2024-04-14T01:01:59+00:00 + 2024-04-14T23:52:42+00:00 https://ioccc-src.github.io/temp-test-ioccc/2013/cable3/Makefile @@ -12654,7 +12654,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2013/dlowe/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:09+00:00 https://ioccc-src.github.io/temp-test-ioccc/2013/dlowe/fun.c @@ -12666,7 +12666,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2013/dlowe/index.html - 2024-04-14T01:01:59+00:00 + 2024-04-14T23:52:42+00:00 https://ioccc-src.github.io/temp-test-ioccc/2013/dlowe/Makefile @@ -12706,7 +12706,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2013/endoh1/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:09+00:00 https://ioccc-src.github.io/temp-test-ioccc/2013/endoh1/.gitignore @@ -12718,7 +12718,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2013/endoh1/index.html - 2024-04-14T01:02:00+00:00 + 2024-04-14T23:52:43+00:00 https://ioccc-src.github.io/temp-test-ioccc/2013/endoh1/Makefile @@ -12758,7 +12758,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2013/endoh2/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:09+00:00 https://ioccc-src.github.io/temp-test-ioccc/2013/endoh2/.gitignore @@ -12766,7 +12766,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2013/endoh2/index.html - 2024-04-14T01:02:01+00:00 + 2024-04-14T23:52:43+00:00 https://ioccc-src.github.io/temp-test-ioccc/2013/endoh2/Makefile @@ -12798,7 +12798,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2013/endoh3/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:09+00:00 https://ioccc-src.github.io/temp-test-ioccc/2013/endoh3/flea-waltz.abc @@ -12810,7 +12810,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2013/endoh3/index.html - 2024-04-14T01:02:02+00:00 + 2024-04-14T23:52:44+00:00 https://ioccc-src.github.io/temp-test-ioccc/2013/endoh3/Makefile @@ -12870,7 +12870,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2013/endoh4/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:09+00:00 https://ioccc-src.github.io/temp-test-ioccc/2013/endoh4/.gitignore @@ -12878,7 +12878,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2013/endoh4/index.html - 2024-04-14T01:02:03+00:00 + 2024-04-14T23:52:44+00:00 https://ioccc-src.github.io/temp-test-ioccc/2013/endoh4/Makefile @@ -13510,7 +13510,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2013/hou/doc/example.html - 2024-04-14T00:19:02+00:00 + 2024-04-14T22:47:42+00:00 https://ioccc-src.github.io/temp-test-ioccc/2013/hou/doc/example.md @@ -13518,7 +13518,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2013/hou/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:09+00:00 https://ioccc-src.github.io/temp-test-ioccc/2013/hou/.gitignore @@ -13534,7 +13534,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2013/hou/index.html - 2024-04-14T01:02:04+00:00 + 2024-04-14T23:52:45+00:00 https://ioccc-src.github.io/temp-test-ioccc/2013/hou/luna.jpg @@ -13574,7 +13574,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2013/index.html - 2024-04-14T00:18:49+00:00 + 2024-04-14T23:50:22+00:00 https://ioccc-src.github.io/temp-test-ioccc/2013/iocccsize.c @@ -13594,7 +13594,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2013/mills/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:09+00:00 https://ioccc-src.github.io/temp-test-ioccc/2013/mills/.gitignore @@ -13602,7 +13602,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2013/mills/index.html - 2024-04-14T01:02:04+00:00 + 2024-04-14T23:52:45+00:00 https://ioccc-src.github.io/temp-test-ioccc/2013/mills/Makefile @@ -13634,7 +13634,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2013/misaka/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:09+00:00 https://ioccc-src.github.io/temp-test-ioccc/2013/misaka/.gitignore @@ -13642,11 +13642,11 @@ https://ioccc-src.github.io/temp-test-ioccc/2013/misaka/index.html - 2024-04-14T01:02:05+00:00 + 2024-04-14T23:52:46+00:00 https://ioccc-src.github.io/temp-test-ioccc/2013/misaka/Makefile - 2024-03-23T07:10:57+00:00 + 2024-04-14T18:11:41+00:00 https://ioccc-src.github.io/temp-test-ioccc/2013/misaka/misaka.c @@ -13678,7 +13678,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2013/morgan1/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:10+00:00 https://ioccc-src.github.io/temp-test-ioccc/2013/morgan1/.gitignore @@ -13686,7 +13686,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2013/morgan1/index.html - 2024-04-14T01:02:06+00:00 + 2024-04-14T23:52:46+00:00 https://ioccc-src.github.io/temp-test-ioccc/2013/morgan1/Makefile @@ -13718,7 +13718,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2013/morgan2/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:10+00:00 https://ioccc-src.github.io/temp-test-ioccc/2013/morgan2/.gitignore @@ -13726,7 +13726,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2013/morgan2/index.html - 2024-04-14T01:02:07+00:00 + 2024-04-14T23:52:47+00:00 https://ioccc-src.github.io/temp-test-ioccc/2013/morgan2/Makefile @@ -13758,7 +13758,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2013/robison/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:10+00:00 https://ioccc-src.github.io/temp-test-ioccc/2013/robison/.gitignore @@ -13766,7 +13766,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2013/robison/index.html - 2024-04-14T01:02:07+00:00 + 2024-04-14T23:52:47+00:00 https://ioccc-src.github.io/temp-test-ioccc/2013/robison/Makefile @@ -13810,7 +13810,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2014/birken/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:10+00:00 https://ioccc-src.github.io/temp-test-ioccc/2014/birken/.gitignore @@ -13818,7 +13818,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2014/birken/index.html - 2024-04-14T01:02:08+00:00 + 2024-04-14T23:52:48+00:00 https://ioccc-src.github.io/temp-test-ioccc/2014/birken/Makefile @@ -13850,7 +13850,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2014/deak/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:10+00:00 https://ioccc-src.github.io/temp-test-ioccc/2014/deak/.gitignore @@ -13858,7 +13858,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2014/deak/index.html - 2024-04-14T01:02:09+00:00 + 2024-04-14T23:52:48+00:00 https://ioccc-src.github.io/temp-test-ioccc/2014/deak/Makefile @@ -13906,7 +13906,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2014/endoh1/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:10+00:00 https://ioccc-src.github.io/temp-test-ioccc/2014/endoh1/gen-prog.rb @@ -13922,7 +13922,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2014/endoh1/index.html - 2024-04-14T01:02:10+00:00 + 2024-04-14T23:52:49+00:00 https://ioccc-src.github.io/temp-test-ioccc/2014/endoh1/link.rb @@ -13978,7 +13978,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2014/endoh1/spoilers.html - 2024-04-14T00:19:02+00:00 + 2024-04-14T23:50:33+00:00 https://ioccc-src.github.io/temp-test-ioccc/2014/endoh1/spoilers.md @@ -14006,7 +14006,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2014/endoh2/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:10+00:00 https://ioccc-src.github.io/temp-test-ioccc/2014/endoh2/.gitignore @@ -14014,7 +14014,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2014/endoh2/index.html - 2024-04-14T01:02:11+00:00 + 2024-04-14T23:52:49+00:00 https://ioccc-src.github.io/temp-test-ioccc/2014/endoh2/Makefile @@ -14054,7 +14054,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2014/index.html - 2024-04-14T00:18:49+00:00 + 2024-04-14T22:47:30+00:00 https://ioccc-src.github.io/temp-test-ioccc/2014/iocccsize.c @@ -14070,7 +14070,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2014/maffiodo1/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:10+00:00 https://ioccc-src.github.io/temp-test-ioccc/2014/maffiodo1/giana8.wav @@ -14094,7 +14094,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2014/maffiodo1/index.html - 2024-04-14T01:02:11+00:00 + 2024-04-14T23:52:50+00:00 https://ioccc-src.github.io/temp-test-ioccc/2014/maffiodo1/Makefile @@ -14146,7 +14146,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2014/maffiodo2/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:10+00:00 https://ioccc-src.github.io/temp-test-ioccc/2014/maffiodo2/.gitignore @@ -14158,7 +14158,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2014/maffiodo2/index.html - 2024-04-14T01:02:12+00:00 + 2024-04-14T23:52:50+00:00 https://ioccc-src.github.io/temp-test-ioccc/2014/maffiodo2/Makefile @@ -14198,7 +14198,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2014/morgan/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:10+00:00 https://ioccc-src.github.io/temp-test-ioccc/2014/morgan/.gitignore @@ -14206,7 +14206,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2014/morgan/index.html - 2024-04-14T01:02:13+00:00 + 2024-04-14T23:52:51+00:00 https://ioccc-src.github.io/temp-test-ioccc/2014/morgan/Makefile @@ -14246,7 +14246,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2014/sinon/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:10+00:00 https://ioccc-src.github.io/temp-test-ioccc/2014/sinon/.gitignore @@ -14262,7 +14262,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2014/sinon/index.html - 2024-04-14T01:02:14+00:00 + 2024-04-14T23:52:51+00:00 https://ioccc-src.github.io/temp-test-ioccc/2014/sinon/Makefile @@ -14298,7 +14298,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2014/skeggs/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:10+00:00 https://ioccc-src.github.io/temp-test-ioccc/2014/skeggs/.gitignore @@ -14306,7 +14306,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2014/skeggs/index.html - 2024-04-14T01:02:14+00:00 + 2024-04-14T23:52:52+00:00 https://ioccc-src.github.io/temp-test-ioccc/2014/skeggs/Makefile @@ -14334,7 +14334,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2014/vik/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:10+00:00 https://ioccc-src.github.io/temp-test-ioccc/2014/vik/.gitignore @@ -14342,7 +14342,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2014/vik/index.html - 2024-04-14T01:02:15+00:00 + 2024-04-14T23:52:52+00:00 https://ioccc-src.github.io/temp-test-ioccc/2014/vik/Makefile @@ -14378,7 +14378,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2014/wiedijk/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:10+00:00 https://ioccc-src.github.io/temp-test-ioccc/2014/wiedijk/.gitignore @@ -14386,7 +14386,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2014/wiedijk/index.html - 2024-04-14T01:02:16+00:00 + 2024-04-14T23:52:53+00:00 https://ioccc-src.github.io/temp-test-ioccc/2014/wiedijk/Makefile @@ -14430,7 +14430,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2015/burton/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:10+00:00 https://ioccc-src.github.io/temp-test-ioccc/2015/burton/.gitignore @@ -14438,7 +14438,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2015/burton/index.html - 2024-04-14T01:02:17+00:00 + 2024-04-14T23:52:53+00:00 https://ioccc-src.github.io/temp-test-ioccc/2015/burton/Makefile @@ -14466,7 +14466,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2015/burton/road.to.obscurity.html - 2024-04-14T00:19:03+00:00 + 2024-04-14T22:47:43+00:00 https://ioccc-src.github.io/temp-test-ioccc/2015/burton/road.to.obscurity.md @@ -14478,7 +14478,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2015/burton/spoilers.html - 2024-04-14T00:19:03+00:00 + 2024-04-14T22:47:43+00:00 https://ioccc-src.github.io/temp-test-ioccc/2015/burton/spoilers.md @@ -14514,7 +14514,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2015/dogon/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:10+00:00 https://ioccc-src.github.io/temp-test-ioccc/2015/dogon/.gitignore @@ -14522,7 +14522,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2015/dogon/index.html - 2024-04-14T01:02:17+00:00 + 2024-04-14T23:52:54+00:00 https://ioccc-src.github.io/temp-test-ioccc/2015/dogon/Makefile @@ -14558,7 +14558,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2015/duble/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:10+00:00 https://ioccc-src.github.io/temp-test-ioccc/2015/duble/.gitignore @@ -14566,7 +14566,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2015/duble/index.html - 2024-04-14T01:02:18+00:00 + 2024-04-14T23:52:54+00:00 https://ioccc-src.github.io/temp-test-ioccc/2015/duble/lorem-ipsum.txt @@ -14610,7 +14610,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2015/endoh1/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:10+00:00 https://ioccc-src.github.io/temp-test-ioccc/2015/endoh1/.gitignore @@ -14618,7 +14618,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2015/endoh1/index.html - 2024-04-14T01:02:19+00:00 + 2024-04-14T23:52:55+00:00 https://ioccc-src.github.io/temp-test-ioccc/2015/endoh1/ioccc.txt @@ -14654,7 +14654,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2015/endoh2/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:10+00:00 https://ioccc-src.github.io/temp-test-ioccc/2015/endoh2/.gitignore @@ -14662,7 +14662,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2015/endoh2/index.html - 2024-04-14T01:02:20+00:00 + 2024-04-14T23:52:55+00:00 https://ioccc-src.github.io/temp-test-ioccc/2015/endoh2/Makefile @@ -14694,7 +14694,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2015/endoh3/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:10+00:00 https://ioccc-src.github.io/temp-test-ioccc/2015/endoh3/.gitignore @@ -14702,7 +14702,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2015/endoh3/index.html - 2024-04-14T01:02:21+00:00 + 2024-04-14T23:52:56+00:00 https://ioccc-src.github.io/temp-test-ioccc/2015/endoh3/ioccc.c @@ -14742,7 +14742,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2015/endoh4/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:10+00:00 https://ioccc-src.github.io/temp-test-ioccc/2015/endoh4/.gitignore @@ -14750,7 +14750,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2015/endoh4/index.html - 2024-04-14T01:02:21+00:00 + 2024-04-14T23:52:56+00:00 https://ioccc-src.github.io/temp-test-ioccc/2015/endoh4/Makefile @@ -14798,7 +14798,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2015/hou/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:11+00:00 https://ioccc-src.github.io/temp-test-ioccc/2015/hou/.gitignore @@ -14806,7 +14806,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2015/hou/index.html - 2024-04-14T01:02:22+00:00 + 2024-04-14T23:52:57+00:00 https://ioccc-src.github.io/temp-test-ioccc/2015/hou/large @@ -14854,7 +14854,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2015/howe/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:11+00:00 https://ioccc-src.github.io/temp-test-ioccc/2015/howe/.gitignore @@ -14862,7 +14862,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2015/howe/index.html - 2024-04-14T01:02:23+00:00 + 2024-04-14T23:52:57+00:00 https://ioccc-src.github.io/temp-test-ioccc/2015/howe/Makefile @@ -14918,7 +14918,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2015/index.html - 2024-04-14T00:18:50+00:00 + 2024-04-14T22:47:30+00:00 https://ioccc-src.github.io/temp-test-ioccc/2015/iocccsize.c @@ -14938,7 +14938,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2015/mills1/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:11+00:00 https://ioccc-src.github.io/temp-test-ioccc/2015/mills1/.gitignore @@ -14946,7 +14946,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2015/mills1/index.html - 2024-04-14T01:02:24+00:00 + 2024-04-14T23:52:58+00:00 https://ioccc-src.github.io/temp-test-ioccc/2015/mills1/Makefile @@ -14978,7 +14978,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2015/mills2/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:11+00:00 https://ioccc-src.github.io/temp-test-ioccc/2015/mills2/.gitignore @@ -14986,7 +14986,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2015/mills2/index.html - 2024-04-14T01:02:24+00:00 + 2024-04-14T23:52:59+00:00 https://ioccc-src.github.io/temp-test-ioccc/2015/mills2/ioccc_guidelines.txt.Z @@ -15026,7 +15026,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2015/muth/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:11+00:00 https://ioccc-src.github.io/temp-test-ioccc/2015/muth/.gitignore @@ -15034,7 +15034,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2015/muth/index.html - 2024-04-14T01:02:25+00:00 + 2024-04-14T23:52:59+00:00 https://ioccc-src.github.io/temp-test-ioccc/2015/muth/machine_beaver_4_2.h @@ -15134,7 +15134,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2015/schweikhardt/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:11+00:00 https://ioccc-src.github.io/temp-test-ioccc/2015/schweikhardt/.gitignore @@ -15142,7 +15142,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2015/schweikhardt/index.html - 2024-04-14T01:02:26+00:00 + 2024-04-14T23:53:00+00:00 https://ioccc-src.github.io/temp-test-ioccc/2015/schweikhardt/Makefile @@ -15174,7 +15174,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2015/yang/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:11+00:00 https://ioccc-src.github.io/temp-test-ioccc/2015/yang/.gitignore @@ -15182,7 +15182,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2015/yang/index.html - 2024-04-14T01:02:27+00:00 + 2024-04-14T23:53:00+00:00 https://ioccc-src.github.io/temp-test-ioccc/2015/yang/Makefile @@ -15226,7 +15226,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2018/algmyr/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:11+00:00 https://ioccc-src.github.io/temp-test-ioccc/2018/algmyr/.gitignore @@ -15234,7 +15234,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2018/algmyr/index.html - 2024-04-14T01:02:28+00:00 + 2024-04-14T23:53:01+00:00 https://ioccc-src.github.io/temp-test-ioccc/2018/algmyr/Makefile @@ -15270,7 +15270,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2018/anderson/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:11+00:00 https://ioccc-src.github.io/temp-test-ioccc/2018/anderson/.gitignore @@ -15278,7 +15278,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2018/anderson/index.html - 2024-04-14T01:02:28+00:00 + 2024-04-14T23:53:01+00:00 https://ioccc-src.github.io/temp-test-ioccc/2018/anderson/Makefile @@ -15318,7 +15318,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2018/bellard/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:11+00:00 https://ioccc-src.github.io/temp-test-ioccc/2018/bellard/fruits.bin @@ -15330,7 +15330,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2018/bellard/index.html - 2024-04-14T01:02:29+00:00 + 2024-04-14T23:53:02+00:00 https://ioccc-src.github.io/temp-test-ioccc/2018/bellard/lena512.bin @@ -15378,7 +15378,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2018/burton1/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:11+00:00 https://ioccc-src.github.io/temp-test-ioccc/2018/burton1/.gitignore @@ -15386,7 +15386,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2018/burton1/index.html - 2024-04-14T01:02:30+00:00 + 2024-04-14T23:53:02+00:00 https://ioccc-src.github.io/temp-test-ioccc/2018/burton1/Makefile @@ -15454,7 +15454,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2018/burton2/discrepancies.html - 2024-04-14T00:19:03+00:00 + 2024-04-14T22:47:44+00:00 https://ioccc-src.github.io/temp-test-ioccc/2018/burton2/discrepancies.md @@ -15462,7 +15462,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2018/burton2/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:11+00:00 https://ioccc-src.github.io/temp-test-ioccc/2018/burton2/fixed_iocccsize.c @@ -15478,7 +15478,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2018/burton2/index.html - 2024-04-14T01:02:31+00:00 + 2024-04-14T23:53:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/2018/burton2/iocccbug01.c @@ -15670,7 +15670,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2018/ciura/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:11+00:00 https://ioccc-src.github.io/temp-test-ioccc/2018/ciura/.gitignore @@ -15678,7 +15678,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2018/ciura/index.html - 2024-04-14T01:02:32+00:00 + 2024-04-14T23:53:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/2018/ciura/lexicon.pdf @@ -15722,7 +15722,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2018/endoh1/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:11+00:00 https://ioccc-src.github.io/temp-test-ioccc/2018/endoh1/.gitignore @@ -15734,7 +15734,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2018/endoh1/index.html - 2024-04-14T01:02:32+00:00 + 2024-04-14T23:53:04+00:00 https://ioccc-src.github.io/temp-test-ioccc/2018/endoh1/invisible.txt @@ -15774,7 +15774,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2018/endoh2/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:11+00:00 https://ioccc-src.github.io/temp-test-ioccc/2018/endoh2/.gitignore @@ -15782,7 +15782,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2018/endoh2/index.html - 2024-04-14T01:02:33+00:00 + 2024-04-14T23:53:04+00:00 https://ioccc-src.github.io/temp-test-ioccc/2018/endoh2/Makefile @@ -15826,7 +15826,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2018/ferguson/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:11+00:00 https://ioccc-src.github.io/temp-test-ioccc/2018/ferguson/FILES @@ -15850,7 +15850,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2018/ferguson/index.html - 2024-04-14T01:02:34+00:00 + 2024-04-14T23:53:05+00:00 https://ioccc-src.github.io/temp-test-ioccc/2018/ferguson/Makefile @@ -15886,7 +15886,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2018/ferguson/rpm.html - 2024-04-14T00:19:03+00:00 + 2024-04-14T22:47:44+00:00 https://ioccc-src.github.io/temp-test-ioccc/2018/ferguson/rpm.md @@ -15926,7 +15926,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2018/giles/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:11+00:00 https://ioccc-src.github.io/temp-test-ioccc/2018/giles/.gitignore @@ -15934,7 +15934,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2018/giles/index.html - 2024-04-14T01:02:35+00:00 + 2024-04-14T23:53:05+00:00 https://ioccc-src.github.io/temp-test-ioccc/2018/giles/ioccc.txt @@ -15982,7 +15982,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2018/hou/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:12+00:00 https://ioccc-src.github.io/temp-test-ioccc/2018/hou/.gitignore @@ -15990,7 +15990,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2018/hou/index.html - 2024-04-14T01:02:35+00:00 + 2024-04-14T23:53:06+00:00 https://ioccc-src.github.io/temp-test-ioccc/2018/hou/input.json @@ -16022,7 +16022,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2018/index.html - 2024-04-14T00:18:50+00:00 + 2024-04-14T22:47:30+00:00 https://ioccc-src.github.io/temp-test-ioccc/2018/iocccsize.c @@ -16050,7 +16050,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2018/mills/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:12+00:00 https://ioccc-src.github.io/temp-test-ioccc/2018/mills/.gitignore @@ -16058,7 +16058,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2018/mills/index.html - 2024-04-14T01:02:36+00:00 + 2024-04-14T23:53:06+00:00 https://ioccc-src.github.io/temp-test-ioccc/2018/mills/Makefile @@ -16094,7 +16094,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2018/poikola/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:12+00:00 https://ioccc-src.github.io/temp-test-ioccc/2018/poikola/.gitignore @@ -16102,7 +16102,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2018/poikola/index.html - 2024-04-14T01:02:37+00:00 + 2024-04-14T23:53:07+00:00 https://ioccc-src.github.io/temp-test-ioccc/2018/poikola/Makefile @@ -16150,7 +16150,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2018/vokes/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:12+00:00 https://ioccc-src.github.io/temp-test-ioccc/2018/vokes/example-1.txt @@ -16170,7 +16170,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2018/vokes/index.html - 2024-04-14T01:02:38+00:00 + 2024-04-14T23:53:07+00:00 https://ioccc-src.github.io/temp-test-ioccc/2018/vokes/ioccc.txt @@ -16206,7 +16206,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2018/yang/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:12+00:00 https://ioccc-src.github.io/temp-test-ioccc/2018/yang/.gitignore @@ -16214,7 +16214,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2018/yang/index.html - 2024-04-14T01:02:39+00:00 + 2024-04-14T23:53:08+00:00 https://ioccc-src.github.io/temp-test-ioccc/2018/yang/Makefile @@ -16266,7 +16266,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2019/adamovsky/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:12+00:00 https://ioccc-src.github.io/temp-test-ioccc/2019/adamovsky/.gitignore @@ -16274,7 +16274,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2019/adamovsky/index.html - 2024-04-14T01:02:39+00:00 + 2024-04-14T23:53:08+00:00 https://ioccc-src.github.io/temp-test-ioccc/2019/adamovsky/iocccsize_2018.c @@ -16334,7 +16334,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2019/burton/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:12+00:00 https://ioccc-src.github.io/temp-test-ioccc/2019/burton/.gitignore @@ -16342,7 +16342,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2019/burton/index.html - 2024-04-14T01:02:40+00:00 + 2024-04-14T23:53:09+00:00 https://ioccc-src.github.io/temp-test-ioccc/2019/burton/Makefile @@ -16402,7 +16402,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2019/ciura/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:12+00:00 https://ioccc-src.github.io/temp-test-ioccc/2019/ciura/fasc5c.pdf @@ -16426,7 +16426,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2019/ciura/index.html - 2024-04-14T01:02:41+00:00 + 2024-04-14T23:53:09+00:00 https://ioccc-src.github.io/temp-test-ioccc/2019/ciura/it.alt.sh @@ -16494,7 +16494,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2019/diels-grabsch1/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:12+00:00 https://ioccc-src.github.io/temp-test-ioccc/2019/diels-grabsch1/.gitignore @@ -16506,7 +16506,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2019/diels-grabsch1/index.html - 2024-04-14T01:02:42+00:00 + 2024-04-14T23:53:10+00:00 https://ioccc-src.github.io/temp-test-ioccc/2019/diels-grabsch1/Makefile @@ -16542,7 +16542,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2019/diels-grabsch2/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:12+00:00 https://ioccc-src.github.io/temp-test-ioccc/2019/diels-grabsch2/.gitignore @@ -16550,7 +16550,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2019/diels-grabsch2/index.html - 2024-04-14T01:02:42+00:00 + 2024-04-14T23:53:10+00:00 https://ioccc-src.github.io/temp-test-ioccc/2019/diels-grabsch2/Makefile @@ -16586,7 +16586,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2019/dogon/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:12+00:00 https://ioccc-src.github.io/temp-test-ioccc/2019/dogon/.gitignore @@ -16602,7 +16602,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2019/dogon/index.html - 2024-04-14T01:02:43+00:00 + 2024-04-14T23:53:11+00:00 https://ioccc-src.github.io/temp-test-ioccc/2019/dogon/infinite_10cell.mc @@ -16678,7 +16678,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2019/duble/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:12+00:00 https://ioccc-src.github.io/temp-test-ioccc/2019/duble/fullscreen.sh @@ -16690,7 +16690,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2019/duble/index.html - 2024-04-14T01:02:44+00:00 + 2024-04-14T23:53:11+00:00 https://ioccc-src.github.io/temp-test-ioccc/2019/duble/Makefile @@ -16726,7 +16726,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2019/endoh/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:12+00:00 https://ioccc-src.github.io/temp-test-ioccc/2019/endoh/.gitignore @@ -16734,7 +16734,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2019/endoh/index.html - 2024-04-14T01:02:45+00:00 + 2024-04-14T23:53:12+00:00 https://ioccc-src.github.io/temp-test-ioccc/2019/endoh/Makefile @@ -16774,7 +16774,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2019/giles/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:12+00:00 https://ioccc-src.github.io/temp-test-ioccc/2019/giles/.gitignore @@ -16782,7 +16782,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2019/giles/index.html - 2024-04-14T01:02:45+00:00 + 2024-04-14T23:53:13+00:00 https://ioccc-src.github.io/temp-test-ioccc/2019/giles/Makefile @@ -16822,7 +16822,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2019/index.html - 2024-04-14T00:18:51+00:00 + 2024-04-14T22:47:31+00:00 https://ioccc-src.github.io/temp-test-ioccc/2019/iocccsize.c @@ -16838,7 +16838,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2019/karns/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:12+00:00 https://ioccc-src.github.io/temp-test-ioccc/2019/karns/.gitignore @@ -16846,7 +16846,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2019/karns/index.html - 2024-04-14T01:02:46+00:00 + 2024-04-14T23:53:13+00:00 https://ioccc-src.github.io/temp-test-ioccc/2019/karns/Makefile @@ -16882,7 +16882,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2019/lynn/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:12+00:00 https://ioccc-src.github.io/temp-test-ioccc/2019/lynn/example-1.txt @@ -16918,7 +16918,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2019/lynn/index.html - 2024-04-14T01:02:47+00:00 + 2024-04-14T23:53:14+00:00 https://ioccc-src.github.io/temp-test-ioccc/2019/lynn/lol.hs @@ -16962,7 +16962,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2019/mills/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:12+00:00 https://ioccc-src.github.io/temp-test-ioccc/2019/mills/Eugene_Onegin.cp11_1.188 @@ -16978,7 +16978,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2019/mills/index.html - 2024-04-14T01:02:48+00:00 + 2024-04-14T23:53:14+00:00 https://ioccc-src.github.io/temp-test-ioccc/2019/mills/IOCCC-hints.cp09_1.809 @@ -17034,7 +17034,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2019/poikola/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:12+00:00 https://ioccc-src.github.io/temp-test-ioccc/2019/poikola/.gitignore @@ -17042,7 +17042,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2019/poikola/index.html - 2024-04-14T01:02:49+00:00 + 2024-04-14T23:53:15+00:00 https://ioccc-src.github.io/temp-test-ioccc/2019/poikola/Makefile @@ -17094,7 +17094,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2019/yang/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:12+00:00 https://ioccc-src.github.io/temp-test-ioccc/2019/yang/.gitignore @@ -17102,7 +17102,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2019/yang/index.html - 2024-04-14T01:02:49+00:00 + 2024-04-14T23:53:15+00:00 https://ioccc-src.github.io/temp-test-ioccc/2019/yang/ioccc.txt @@ -17170,7 +17170,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/burton/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:12+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/burton/.gitignore @@ -17178,7 +17178,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/burton/index.html - 2024-04-14T01:02:50+00:00 + 2024-04-14T23:53:16+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/burton/Makefile @@ -17210,7 +17210,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/carlini/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:13+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/carlini/.gitignore @@ -17218,7 +17218,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/carlini/index.html - 2024-04-14T01:02:51+00:00 + 2024-04-14T23:53:16+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/carlini/Makefile @@ -17250,7 +17250,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/endoh1/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:13+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/endoh1/.gitignore @@ -17274,7 +17274,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/endoh1/index.html - 2024-04-14T01:02:52+00:00 + 2024-04-14T23:53:17+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/endoh1/ioccc.txt @@ -17322,7 +17322,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/endoh2/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:13+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/endoh2/.gitignore @@ -17334,7 +17334,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/endoh2/index.html - 2024-04-14T01:02:53+00:00 + 2024-04-14T23:53:17+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/endoh2/Makefile @@ -17374,7 +17374,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/endoh2/spoiler/spoiler.html - 2024-04-14T00:19:04+00:00 + 2024-04-14T22:47:44+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/endoh2/spoiler/spoiler.md @@ -17398,7 +17398,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/endoh3/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:13+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/endoh3/.gitignore @@ -17406,7 +17406,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/endoh3/index.html - 2024-04-14T01:02:53+00:00 + 2024-04-14T23:53:18+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/endoh3/Makefile @@ -17446,7 +17446,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson1/bugs.html - 2024-04-14T00:19:05+00:00 + 2024-04-14T23:50:35+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson1/bugs.md @@ -17458,7 +17458,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson1/cannibalism.log.html - 2024-04-14T00:19:06+00:00 + 2024-04-14T23:50:36+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson1/cannibalism.log.md @@ -17466,7 +17466,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson1/chocolate-cake.html - 2024-04-14T00:19:05+00:00 + 2024-04-14T22:47:46+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson1/chocolate-cake.md @@ -17474,7 +17474,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson1/COMPILING.html - 2024-04-14T00:19:07+00:00 + 2024-04-14T23:50:36+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson1/COMPILING.md @@ -17482,7 +17482,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson1/crazy.log.html - 2024-04-14T00:19:08+00:00 + 2024-04-14T23:50:37+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson1/crazy.log.md @@ -17490,11 +17490,11 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson1/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:13+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson1/gameplay.html - 2024-04-14T00:19:04+00:00 + 2024-04-14T23:50:35+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson1/gameplay.md @@ -17506,7 +17506,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson1/HACKING.html - 2024-04-14T00:19:07+00:00 + 2024-04-14T23:50:37+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson1/HACKING.md @@ -17518,7 +17518,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson1/index.html - 2024-04-14T01:02:54+00:00 + 2024-04-14T23:53:18+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson1/ioccc-cake.jpg @@ -17574,7 +17574,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson1/spoilers.html - 2024-04-14T00:19:06+00:00 + 2024-04-14T23:50:36+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson1/spoilers.md @@ -17586,7 +17586,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson1/terminals.html - 2024-04-14T00:19:08+00:00 + 2024-04-14T23:50:37+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson1/terminals.md @@ -17594,7 +17594,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson1/troubleshooting.html - 2024-04-14T00:19:05+00:00 + 2024-04-14T23:50:35+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson1/troubleshooting.md @@ -17614,7 +17614,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson2/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:13+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson2/.gitignore @@ -17622,7 +17622,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson2/index.html - 2024-04-14T01:02:55+00:00 + 2024-04-14T23:53:19+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson2/input.txt @@ -17638,7 +17638,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson2/obfuscation.html - 2024-04-14T00:19:09+00:00 + 2024-04-14T23:50:38+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson2/obfuscation.key @@ -17682,7 +17682,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson2/recode.html - 2024-04-14T00:19:09+00:00 + 2024-04-14T23:50:37+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/ferguson2/recode.md @@ -17714,7 +17714,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/giles/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:13+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/giles/.gitignore @@ -17722,7 +17722,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/giles/index.html - 2024-04-14T01:02:56+00:00 + 2024-04-14T23:53:19+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/giles/Makefile @@ -17762,7 +17762,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/index.html - 2024-04-14T00:18:51+00:00 + 2024-04-14T22:47:31+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/iocccsize.c @@ -17782,7 +17782,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/kurdyukov1/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:13+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/kurdyukov1/.gitignore @@ -17790,7 +17790,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/kurdyukov1/index.html - 2024-04-14T01:02:57+00:00 + 2024-04-14T23:53:20+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/kurdyukov1/Makefile @@ -17838,7 +17838,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/kurdyukov2/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:13+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/kurdyukov2/.gitignore @@ -17846,7 +17846,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/kurdyukov2/index.html - 2024-04-14T01:02:58+00:00 + 2024-04-14T23:53:20+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/kurdyukov2/Makefile @@ -17894,7 +17894,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/kurdyukov3/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:13+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/kurdyukov3/.gitignore @@ -17902,7 +17902,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/kurdyukov3/index.html - 2024-04-14T01:02:58+00:00 + 2024-04-14T23:53:21+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/kurdyukov3/input.txt @@ -17946,7 +17946,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/kurdyukov4/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:13+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/kurdyukov4/Eugene_Onegin.txt @@ -17958,7 +17958,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/kurdyukov4/index.html - 2024-04-14T01:02:59+00:00 + 2024-04-14T23:53:21+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/kurdyukov4/Makefile @@ -18010,7 +18010,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/otterness/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:13+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/otterness/.gitignore @@ -18018,7 +18018,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/otterness/index.html - 2024-04-14T01:03:00+00:00 + 2024-04-14T23:53:22+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/otterness/Makefile @@ -18058,7 +18058,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/tsoj/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:13+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/tsoj/.gitignore @@ -18066,7 +18066,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/tsoj/index.html - 2024-04-14T01:03:01+00:00 + 2024-04-14T23:53:22+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/tsoj/Makefile @@ -18102,7 +18102,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/yang/.entry.json - 2024-04-11T19:34:56+00:00 + 2024-04-14T22:14:13+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/yang/.gitignore @@ -18110,7 +18110,7 @@ https://ioccc-src.github.io/temp-test-ioccc/2020/yang/index.html - 2024-04-14T01:03:01+00:00 + 2024-04-14T23:53:23+00:00 https://ioccc-src.github.io/temp-test-ioccc/2020/yang/Makefile @@ -18258,7 +18258,7 @@ https://ioccc-src.github.io/temp-test-ioccc/archive/historic/index.html - 2024-04-14T00:18:52+00:00 + 2024-04-14T23:50:25+00:00 https://ioccc-src.github.io/temp-test-ioccc/archive/historic/README.md @@ -18946,7 +18946,7 @@ https://ioccc-src.github.io/temp-test-ioccc/authors.html - 2024-04-14T00:18:35+00:00 + 2024-04-14T22:47:16+00:00 https://ioccc-src.github.io/temp-test-ioccc/author/Sjoerd_Mullender.json @@ -19062,15 +19062,15 @@ https://ioccc-src.github.io/temp-test-ioccc/bin/all-run.sh - 2024-04-14T00:43:00+00:00 + 2024-04-14T01:22:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/all-years.sh - 2024-04-14T00:43:12+00:00 + 2024-04-14T01:22:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/chk-entry.sh - 2024-04-14T00:43:23+00:00 + 2024-04-14T01:22:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/filelist.entry.json.awk @@ -19078,71 +19078,71 @@ https://ioccc-src.github.io/temp-test-ioccc/bin/gen-authors.sh - 2024-04-14T00:43:32+00:00 + 2024-04-14T01:22:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/gen-location.sh - 2024-04-14T00:43:43+00:00 + 2024-04-14T01:22:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/gen-other-html.sh - 2024-04-14T00:43:54+00:00 + 2024-04-14T01:22:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/gen-sitemap.sh - 2024-04-14T00:44:07+00:00 + 2024-04-14T01:22:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/gen-status.sh - 2024-04-14T00:44:18+00:00 + 2024-04-14T01:22:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/gen-top-html.sh - 2024-04-14T00:44:28+00:00 + 2024-04-14T22:45:19+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/gen-year-index.sh - 2024-04-14T00:44:43+00:00 + 2024-04-14T01:22:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/gen-years.sh - 2024-04-14T00:45:48+00:00 + 2024-04-14T01:22:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/index.html - 2024-04-14T00:18:53+00:00 + 2024-04-14T23:50:26+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/manifest.entry.json.awk - 2024-04-14T00:57:26+00:00 + 2024-04-14T01:22:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/md2html.sh - 2024-04-14T00:45:57+00:00 + 2024-04-14T23:48:49+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/output-index-author.sh - 2024-04-14T00:46:07+00:00 + 2024-04-14T01:22:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/output-index-inventory.sh - 2024-04-14T00:46:46+00:00 + 2024-04-14T01:22:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/output-year-index.sh - 2024-04-14T00:46:55+00:00 + 2024-04-14T01:22:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/pandoc-wrapper.sh - 2024-04-14T00:47:04+00:00 + 2024-04-14T01:22:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/quick-readme2index.sh - 2024-04-14T00:47:12+00:00 + 2024-04-14T01:22:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/readme2index.sh - 2024-04-14T00:47:21+00:00 + 2024-04-14T01:22:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/README.md @@ -19154,19 +19154,19 @@ https://ioccc-src.github.io/temp-test-ioccc/bin/sort.gitignore.sh - 2024-04-14T00:47:30+00:00 + 2024-04-14T01:22:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/status2html.sh - 2024-04-14T00:47:42+00:00 + 2024-04-14T01:22:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/subst.default.sh - 2024-04-14T00:47:52+00:00 + 2024-04-14T01:22:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/subst.entry-index.sh - 2024-04-14T00:48:00+00:00 + 2024-04-14T01:22:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/subst.entry-navbar.awk @@ -19174,7 +19174,7 @@ https://ioccc-src.github.io/temp-test-ioccc/bin/subst.year-index.sh - 2024-04-14T00:48:10+00:00 + 2024-04-14T01:22:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/subst.year-navbar.awk @@ -19182,23 +19182,23 @@ https://ioccc-src.github.io/temp-test-ioccc/bin/tar-entry.sh - 2024-04-14T00:48:22+00:00 + 2024-04-14T01:22:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/tar-year.sh - 2024-04-14T00:48:33+00:00 + 2024-04-14T01:22:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/untar-entry.sh - 2024-04-14T00:48:44+00:00 + 2024-04-14T01:22:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/bin/untar-year.sh - 2024-04-14T00:48:54+00:00 + 2024-04-14T01:22:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/bugs.html - 2024-04-14T00:18:53+00:00 + 2024-04-14T23:50:26+00:00 https://ioccc-src.github.io/temp-test-ioccc/bugs.md @@ -19206,7 +19206,7 @@ https://ioccc-src.github.io/temp-test-ioccc/CODE_OF_CONDUCT.html - 2024-04-14T00:18:51+00:00 + 2024-04-14T22:41:58+00:00 https://ioccc-src.github.io/temp-test-ioccc/CODE_OF_CONDUCT.md @@ -19214,7 +19214,7 @@ https://ioccc-src.github.io/temp-test-ioccc/contact.html - 2024-04-14T00:18:54+00:00 + 2024-04-14T22:42:00+00:00 https://ioccc-src.github.io/temp-test-ioccc/contact.md @@ -19222,11 +19222,11 @@ https://ioccc-src.github.io/temp-test-ioccc/faq.html - 2024-04-14T00:18:54+00:00 + 2024-04-14T23:50:27+00:00 https://ioccc-src.github.io/temp-test-ioccc/faq.md - 2024-04-13T22:03:09+00:00 + 2024-04-14T18:11:41+00:00 https://ioccc-src.github.io/temp-test-ioccc/.gitignore @@ -19274,7 +19274,7 @@ https://ioccc-src.github.io/temp-test-ioccc/inc/footer.default.html - 2024-04-14T00:17:50+00:00 + 2024-04-14T01:22:03+00:00 https://ioccc-src.github.io/temp-test-ioccc/inc/guidelines.closed.hdr @@ -19306,11 +19306,11 @@ https://ioccc-src.github.io/temp-test-ioccc/inc/index.html - 2024-04-14T00:18:55+00:00 + 2024-04-14T22:42:01+00:00 https://ioccc-src.github.io/temp-test-ioccc/inc/md2html.cfg - 2024-04-13T00:59:40+00:00 + 2024-04-14T22:25:14+00:00 https://ioccc-src.github.io/temp-test-ioccc/inc/README.md @@ -19338,7 +19338,7 @@ https://ioccc-src.github.io/temp-test-ioccc/inc/sidenav.default.html - 2024-03-10T17:00:18+00:00 + 2024-04-14T22:41:48+00:00 https://ioccc-src.github.io/temp-test-ioccc/inc/top.default.html @@ -19382,7 +19382,7 @@ https://ioccc-src.github.io/temp-test-ioccc/index.html - 2024-04-14T00:18:55+00:00 + 2024-04-14T22:42:01+00:00 https://ioccc-src.github.io/temp-test-ioccc/index.md @@ -19394,7 +19394,7 @@ https://ioccc-src.github.io/temp-test-ioccc/judges.html - 2024-04-14T00:18:55+00:00 + 2024-04-14T22:42:01+00:00 https://ioccc-src.github.io/temp-test-ioccc/judges.md @@ -19406,15 +19406,15 @@ https://ioccc-src.github.io/temp-test-ioccc/location.html - 2024-04-14T00:18:37+00:00 + 2024-04-14T22:47:18+00:00 https://ioccc-src.github.io/temp-test-ioccc/Makefile - 2024-03-30T20:45:30+00:00 + 2024-04-14T23:47:54+00:00 https://ioccc-src.github.io/temp-test-ioccc/news.html - 2024-04-14T00:18:56+00:00 + 2024-04-14T23:50:28+00:00 https://ioccc-src.github.io/temp-test-ioccc/news.md @@ -19422,7 +19422,7 @@ https://ioccc-src.github.io/temp-test-ioccc/README.html - 2024-04-14T00:18:52+00:00 + 2024-04-14T23:50:25+00:00 https://ioccc-src.github.io/temp-test-ioccc/README.md @@ -19438,7 +19438,7 @@ https://ioccc-src.github.io/temp-test-ioccc/thanks-for-help.html - 2024-04-14T00:18:57+00:00 + 2024-04-14T23:50:29+00:00 https://ioccc-src.github.io/temp-test-ioccc/thanks-for-help.md @@ -19458,6 +19458,6 @@ https://ioccc-src.github.io/temp-test-ioccc/years.html - 2024-04-14T00:18:38+00:00 + 2024-04-14T22:47:19+00:00 diff --git a/status.html b/status.html index 4ed54e603..75038ab7b 100644 --- a/status.html +++ b/status.html @@ -83,6 +83,7 @@ @@ -147,7 +148,7 @@

        This is a mandatory comment for which we offer no comment other than this comment. :-)

        The JSON member value must be the following JSON quoted string:

        -
            "mandatory comment: because comments were removed from the original JSON spec"
        +
            "mandatory comment: because comments were removed from the original JSON spec"

        IOCCC_status_version

        This is the version of format of the status.json file.

        The JSON member value of is a JSON quoted string the form “version YYYY-MM-DD”.

        @@ -197,7 +198,7 @@ mastodon feed for information about future IOCCC openings.

        This shows the latest modification date for the IOCCC news page.

        The JSON member value is a JSON quoted string obtained from the date field of the following ls(1) command:

        -
            TZ=UTC ls -D '%FT%T+00:00' -ld news.html
        +
            TZ=UTC ls -D '%FT%T+00:00' -ld news.html

        NOTE: The date and time are given with respect to UTC timezone.

        Sorry: It is possible that for some reason, the IOCCC news page was modified without the content being changed. While we will try to minimize @@ -206,7 +207,7 @@ the cases where this happen, we apologize in advance (Sorry tm Canada 🇨🇦)

        This shows the latest modification date status.json file.

        The JSON member value is a JSON quoted string obtained from the date field of the following ls(1) command:

        -
            TZ=UTC ls -D '%FT%T+00:00' -ld status.json
        +
            TZ=UTC ls -D '%FT%T+00:00' -ld status.json

        NOTE: The date and time are given with respect to UTC timezone.

        Sorry: It is possible that for some reason, the status.json file was modified without the content being changed. While we will try to minimize diff --git a/thanks-for-help.html b/thanks-for-help.html index 49e43021a..bca64ea5c 100644 --- a/thanks-for-help.html +++ b/thanks-for-help.html @@ -83,6 +83,7 @@

        @@ -186,7 +187,7 @@ bringing back an extern declaration (slightly changing it to match the symbol that it is i.e. extern double floor(double); instead of extern int floor;) and also bringing back double (x1, y1) b; and even this funny code that could be kept in:

        -
            #define char k['a']
        +
            #define char k['a']
             char x {sizeof(
                  double(%s,%D)(*)())

        This does mean that there cannot be a second arg to main() @@ -210,7 +211,7 @@ seem possible) it is easy to fix but it is hoped that this won’t happen.

        Originally Yusuke supplied a patch so that this entry would compile with gcc - but not clang - or at least some versions.

        To see the difference from start to fixed:

        -
            cd 1984/decot ; make diff_orig_prog
        +
            cd 1984/decot ; make diff_orig_prog

        1984/laman (index.html)

        Cody added the try.sh script.

        Cody also fixed this to not crash when no arg is specified. Note that if the arg @@ -295,7 +296,7 @@ as close to the original as one can get without causing compiler errors.

        To get this to all work the following changes were made. If you really want to understand this Cody provides the following. First run the following command from the directory:

        -
            make diff_orig_prog
        +
            make diff_orig_prog

        and then read the following (you might also wish to look at the code in an editor with syntax highlighting):

          @@ -303,7 +304,7 @@ editor with syntax highlighting):

          were actually not what they appear: the only arg that existed in main() was Manual. Thus it now looks like:
        -
            main(
        +
            main(
             /*  C program. (If you don't
              *  understand it look it
              *  up.) (In the C*/ Manual)
        @@ -325,11 +326,11 @@ in case the first does not. Originally the macros were kept the same and the
         case as c.

      • The code:

      -
          C="Lint says "argument Manual isn't used."  What's that
      +
          C="Lint says "argument Manual isn't used."  What's that
           mean?"; while (write((read(C_C('"'-'/*"'/*"*/))?__:__-_+
           '\b'b'\b'|((_-52)%('\b'b'\b'+C_C_('\t'b'\n'))+1),1),&_,1));

      had to be changed to:

      -
          C="Lint says \"argument Manual isn't used.\" What's that\
      +
          C="Lint says \"argument Manual isn't used.\" What's that\
           mean?"; while (write((read(('"'-'/*"'))?__:__-_+
           '\b'b'\b'|((_-52)%('\b'b'\b'+C_C_('\t'b'\n'))+1),1),&_,1));

      because of the missing " at the end of the line and because _|_ is not a @@ -347,10 +348,10 @@ rename to c.

      • The code in main() is where there are significant changes, changing from:
      -
          while (read(0,&__,1) & write((_=(_=C_C_(__),C)),
      +
          while (read(0,&__,1) & write((_=(_=C_C_(__),C)),
           _C_,1)) _=C-V+subr(&V);

      to:

      -
          while (read(0,&__,1) & write((_=(_=C_C_(__),
      +
          while (read(0,&__,1) & write((_=(_=C_C_(__),
           V))?__:__-_+'\b'b'\b'|((_-52)%('\b'b'\b'+~
           ' '&'\t'b'\n')+1),1),&_,1))_=c-v+subr(&v));

      Note how numerous of the macros (though two changed in case) can still be @@ -406,14 +407,14 @@ for entertainment!

      Cody changed the alt code (which was not the same as the original - see above for details or try make diff_orig_alt in the directory) slightly so that it was possible to silence it. In particular:

      -
            P  (    a  )   char a   ;  {    a  ;   while(    a  >      "  B   "
      +
            P  (    a  )   char a   ;  {    a  ;   while(    a  >      "  B   "

      which gave:

          marshall.alt.c:13:55: warning: ordered comparison between pointer and integer ('char' and 'char *')
             P  (    a  )   char a   ;  {    a  ;   while(    a  >      "  B   "
                                                              ~  ^      ~~~~~~~~
           1 warning generated.

      was changed to:

      -
            P  (    a  )   char a   ;  {    a  ;   while((char *)a  >   "  B   "
      +
            P  (    a  )   char a   ;  {    a  ;   while((char *)a  >   "  B   "

      which gave:

          marshall.alt.c:13:48: warning: cast to 'char *' from smaller integer type 'char' [-Wint-to-pointer-cast]
             P  (    a  )   char a   ;  {    a  ;   while((char *)a  >   "  B   "
      @@ -442,35 +443,35 @@ below.

      work with gcc but it still required -traditional-cpp.

      If you’d like to see the difference between the version that requires -traditional-cpp and the fixed version, try:

      -
          cd 1986/wall ; make diff_orig_prog
      +
          cd 1986/wall ; make diff_orig_prog

      Some of the changes required:

      • Instead of using the c_, defined as c_(cc)c cc=, like:
      -
          c_(+)o
      +
          c_(+)o
       
           /* ... */
       
           :c_(+)' '-1;
           }}c_(&)'z'+5;

      use:

      -
          :c +=o[c&__LINE__-007];
      +
          :c +=o[c&__LINE__-007];
       
           /* ... */
       
           :c+=' '-1;
           }}c&='z'+5;

      Observe however that this macro is still used in the code like:

      -
          main(;c_(=(*cc);*cc++)c,for);
      +
          main(;c_(=(*cc);*cc++)c,for);
      • Instead of code like:
      -
          main(0xb+(c>>5),C_(s))
      +
          main(0xb+(c>>5),C_(s))
           _'\v'
           :__ _'\f':
           main(c,C_(s));

      use instead:

      -
          main(;c_(=(*cc);*cc++)c,for);
      +
          main(;c_(=(*cc);*cc++)c,for);
           #define _O(s)s
           switch(0xb+(c>>5)){
           _'\v'
      @@ -479,17 +480,17 @@ work with gcc but it still required -traditional-cpp.

      • The macro:
      -
          #define C_(sand)_O(sand)witch
      +
          #define C_(sand)_O(sand)witch

      could not be used like:

      -
          C_(s));_
      +
          C_(s));_

      to create:

      -
          switch);_
      +
          switch);_

      and neither could the macro:

      -
          #define O_(O)_O(O)stem(ccc(
      +
          #define O_(O)_O(O)stem(ccc(

      be used like:

      -
          :O_(sy)";kkt -oa, dijszdijs QQ"))_C
      +
          :O_(sy)";kkt -oa, dijszdijs QQ"))_C

      to create:

      -
          :system(ccc(";kkt -oa, dijszdijs QQ"));return
      +
          :system(ccc(";kkt -oa, dijszdijs QQ"));return
      • And of course as noted two strings had to be strdup()d.
      @@ -569,7 +570,7 @@ as well, however.

      First of all, as noted above, the entry required -traditional-cpp (which not all compilers support clang does not support). It needed that option in modern systems because of two things it did:

      -
          #define a(x)get/***/x/***/id())
      +
          #define a(x)get/***/x/***/id())
       
           /* ... */
       
      @@ -582,7 +583,7 @@ that option in modern systems because of two things it did:

      this no longer works. The code still uses the macro a to form the names but it’s done differently, using the C token paste operator ##. It’s done like thus:

      -
          --- i/1988/dale/dale.c
      +
          --- i/1988/dale/dale.c
           +++ w/1988/dale/dale.c
           @@ -9,18 +9,18 @@
            #define L if
      @@ -593,18 +594,18 @@ thus:

      -#define a(x)get/***/x/***/id()) +#define a(x)get##x##id())

      The second is that

      -
          for/*/(;;);/*/k()){O/*/*/c);
      +
          for/*/(;;);/*/k()){O/*/*/c);

      cannot form fork()) in modern C compilers. Since it was not done through a macro it was simply changed to be fork(), rather than adding a new macro.

      The other problem that could not be resolved by the -traditional-cpp was that modern compilers do not allow directives like:

      -
          #define _ define
      +
          #define _ define
           #_ P char
           #_ p int
           #_ O close(
           /* ... */

      so Cody changed the lines to be in the form of:

      -
          #define P char
      +
          #define P char
           #define p int
           #define O close(
           /* ... */
      @@ -665,7 +666,7 @@ not strictly necessary but nonetheless more correct, even if not warned against. fubar.sh.

      A strange problem occurred where if one made modifications to the C file it might end up failing to work even after changing it back. This was resolved by:

      -
          --- i/1989/fubar/fubar.sh
      +
          --- i/1989/fubar/fubar.sh
           +++ w/1989/fubar/fubar.sh
           @@ -7,13 +7,12 @@ if [[ $# -ne 1 ]]; then
                exit 1
      @@ -699,7 +700,7 @@ entry and the alt code) anyway, it works out well.

      1989/jar.2 (index.html)

      Cody fixed this to work with modern compilers. Modern compilers do not allow code like:

      -
          #define D define
      +
          #define D define
           #define a include
       
           #D foo bar
      @@ -746,7 +747,7 @@ index.html for details.

      1989/robison (index.html)

      Yusuke Endoh fixed this to compile under modern systems. To see the changes made, try:

      -
          cd 1989/robison ; make diff_orig_prog
      +
          cd 1989/robison ; make diff_orig_prog

      (It adds the C token pasting operator ## instead of /**/.)

      Cody also added the try.sh script.

      1989/tromp (index.html)

      @@ -855,7 +856,7 @@ operator itself.

      1990/dg (index.html)

      Cody fixed this for modern systems. There were two problems to be resolved.

      One can no longer do:

      -
          #define d define
      +
          #define d define
       
           #d b12(x) 12 x
       
      @@ -911,7 +912,7 @@ again (since it did not work anyway a segfault prevention was added here). He
       also fixed some array addressing (some of which might not be strictly necessary
       but as he was testing the fibonacci.c bug he ended up changing it anyway).

      BTW: why can’t the fix:

      -
          if (a[1]==NULL||a[2]==NULL||a[3]==NULL||a[4]==NULL||a[5]==NULL) return 1;
      +
          if (a[1]==NULL||a[2]==NULL||a[3]==NULL||a[4]==NULL||a[5]==NULL) return 1;

      be changed to just test the value of A when a is argv and A is argc?

      Cody also changed the code to use fgets(3).

      Since this program is so incredible the extra fixes were deemed worth having and @@ -1000,21 +1001,21 @@ making the generated code return a value from main() rather than ju changed from char*s to char s[]):

          !.Xop.fssps!.Xop.sfuvso.uzqf!.Xop.jnqmjdju.gvodujpo.efdmbsbujpo

      and then the call to system() had to be changed to:

      -
          system(q-69);
      +
          system(q-69);

      An important point is that the placement of this string in the s array does matter. This is because of the code:

      -
          *o=fopen(q-3,"w");
      +
          *o=fopen(q-3,"w");

      which means the file name that translates to a.c has to be at the end of the string. Thus the end of the string actually looks like:

          !.Xop.fssps!.Xop.sfuvso.uzqf!.Xop.jnqmjdju.gvodujpo.efdmbsbujpo!b/d

      But then there is the matter of getting the C to use fgets(3). As can be seen above it’s not as simple as changing gets(3) to fgets(3). This was more magic characters that had to be updated and some added. The C code:

      -
          atoi(gets(b))
      +
          atoi(gets(b))

      is in the string:

          bupj)hfut)c**

      which was changed to be (in C):

      -
          atoi(fgets(b,99,stdin))
      +
          atoi(fgets(b,99,stdin))

      which in the program is:

          bupj)ghfut)c-::-tuejo**

      That’s fine and well but since the code does not include stdio.h there @@ -1031,7 +1032,7 @@ the system(q-86) had to be changed to system(q-104).But then to prevent the need for disabling a warning and to be more correct code, the generated code was changed to return 1; rather than just return;. Thus in full the string became:

      -
          char s[]="Qjou!s\\311^-g\\311^-n\\311^-c\\::^-q-ma%mO1JBHm%BQ-aP1J[O1HB%[Q<n\
      +
          char s[]="Qjou!s\\311^-g\\311^-n\\311^-c\\::^-q-ma%mO1JBHm%BQ-aP1J[O1HB%[Q<n\
           bjo)*|gps)<<*txjudi)m*|aQdbtf!::::;sfuvso!2<aQefgbvmu;aQ<m,,a%CQ<csfbla%bQ<a\
           N2!Q\ndbtf!aP2Q;m>aP2Q<a%!D12J!JGJHJOJQJFJSJJJMHS%HD12D12N3!N4\nJUJT%UQm>aP4\
           HC%TQs\\q,,^>m,2<m>aP4HC%SD12N1\nJNQm>s\\..q^aHC%NHb%GN1!D32P3%RN1UP1D12JPQU\
      @@ -1111,15 +1112,15 @@ the change to check for a NULL file was added. Then it was noticed
       problem is that adgrep.c was an incorrect reference that never existed and it
       was never fixed in any of the files, not the code or the documentation, and thus
       was entirely incorrect code. A fun fact is that one can do:

      -
          W= fopen(wc>= 2 ? V[1] : __FILE__,"rt");if(!W)exit(1);
      +
          W= fopen(wc>= 2 ? V[1] : __FILE__,"rt");if(!W)exit(1);

      but one CANNOT do:

      -
          W= fopen(wc>= 2 ? V[1] : __FILE__,"rt");if(!W)exit(1);
      +
          W= fopen(wc>= 2 ? V[1] : __FILE__,"rt");if(!W)exit(1);
           if (W==NULL)exit(1);

      because adwc.c will be empty! The difference is it is on a newline, the check. This is an example of how a simple change in code can break it and this is also true of another change as further below.

      Cody also restored a slightly more obscure line of code that had been changed:

      -
          -   putc("}|uutsrq`_^bji`[Zkediml[PO]a_M__]ISOYIRGTNR"[i]+i-9,stderr);
      +
          -   putc("}|uutsrq`_^bji`[Zkediml[PO]a_M__]ISOYIRGTNR"[i]+i-9,stderr);
           +   putc(i["}|uutsrq`_^bji`[Zkediml[PO]a_M__]ISOYIRGTNR"]+i-9,stderr);

      though it’s questionable how much more (if at all) obscure that is :-)

      Cody also changed the location that it used gets() to be fgets(3). @@ -1140,7 +1141,7 @@ removal of the extra line (as in with a comma operator or a &&adwc.c)! Thus after the gets(3) call in the line that looks like:

      -
          while( gets(Y) ){ Y[strlen(Y)-1]='\0'; if(A(Y)) puts(Y); }
      +
          while( gets(Y) ){ Y[strlen(Y)-1]='\0'; if(A(Y)) puts(Y); }

      one must keep the Y[strlen(Y)-1]='\0'; part and keep it there.

      These fixes are complex changes due to the way the program and Makefile generate the additional tools.

      @@ -1312,7 +1313,7 @@ mentioned script on all the data files.

      Both Cody and Yusuke fixed this so that it will work with modern systems. Yusuke provided some fixes of the X code and Cody fixed the C pre-processor directives so that it would compile. It used to be that you could get away with code like:

      -
          G        int i,j
      +
          G        int i,j
           K        case

      and expect G; to equate to int i, j; (though it’s now a long) and K to mean case but that’s no longer the case so the offending lines had #define @@ -1715,7 +1716,7 @@ larger the resulting program becomes. It can be gigabytes in length if it doesn’t crash. At this point since the author stated it has no while, do...while, for, if/else, switch, ?: Cody removed the if statement by doing:

      -
          ((V[1]&&((atoi(V[1])>0&&atoi(V[1])<27))||(exit(1),1)));
      +
          ((V[1]&&((atoi(V[1])>0&&atoi(V[1])<27))||(exit(1),1)));

      Cody also added the try.sh script to help users try the commands that we recommended as well as some added by him.

      1998/schweikh1 (index.html)

      @@ -1739,7 +1740,7 @@ was changed back to the original.)

      not exist, it would dereference a NULL pointer and very likely crash or halt and catch fire :-), preventing the entry from working. Notice how H is a funny macro defined as:

      -
          %:define H(x) <st%:%:x##.h>
      +
          %:define H(x) <st%:%:x##.h>

      and yet the FILE * can be called H! This might or might not make sense to you but if it doesn’t can you figure out why?

      Another fix is that previously the program would return 1 if a file failed to @@ -1935,9 +1936,9 @@ was supposed to do; instead it reported text file busy error.

      Notice that the location of munmap() and close() followed by execv() does matter!

      To get this to compile with clang, main() had to change from:

      -
          main (char *ck, char **k)
      +
          main (char *ck, char **k)

      to:

      -
          main (int cka, char **k) { char *ck = (char *)cka; /* ... */ }
      +
          main (int cka, char **k) { char *ck = (char *)cka; /* ... */ }

      The following change was also made to be more portable, in case the constants PROT_READ and/or PROT_WRITE are not standardised or some platform does not follow it:

      @@ -1946,16 +1947,16 @@ follow it:

      macOS and Linux).

      NOTE: there might be educational value to see the progress of this fix; if you wish to see, try the following commands from the 2001/anonymous directory:

      -
          git diff d2a42f42e8f477f29e9d5ed09ce2bb349eaf7397..93aa8d79f208dcccc3c5a2370a727b5cf64e9c53 anonymous.c
      +
          git diff d2a42f42e8f477f29e9d5ed09ce2bb349eaf7397..93aa8d79f208dcccc3c5a2370a727b5cf64e9c53 anonymous.c
           git diff 93aa8d79f208dcccc3c5a2370a727b5cf64e9c53..c48629017117379a52b1a512ef8f2593ca9569c8 anonymous.c
           git diff c48629017117379a52b1a512ef8f2593ca9569c8..efdee208a2bc650256637b9357ddfd0de82d2f41 anonymous.c
           git diff efdee208a2bc650256637b9357ddfd0de82d2f41..e9a3f77ea3b209e63ac3f9c06bb84ad86e5ea706 anonymous.c
           git diff d2a42f42e8f477f29e9d5ed09ce2bb349eaf7397..2159caec4677e0f25ad704a74e04c8196fd6c343 anonymous.c
           git diff 2159caec4677e0f25ad704a74e04c8196fd6c343..4bc03de321612869aebf855850c6500df95cb6ef anonymous.c

      Finally to see from start to finish:

      -
          git diff d2a42f42e8f477f29e9d5ed09ce2bb349eaf7397..4bc03de321612869aebf855850c6500df95cb6ef anonymous.c
      +
          git diff d2a42f42e8f477f29e9d5ed09ce2bb349eaf7397..4bc03de321612869aebf855850c6500df95cb6ef anonymous.c

      or to not use git:

      -
          make diff_orig_prog
      +
          make diff_orig_prog

      Cody also added a program like anonymous.ten.c Ten Green Bottles but which sings Ten in the Bed instead.

      @@ -2008,7 +2009,7 @@ valid, BTW.

      Cody added a value to return in main() to make it more portable.

      Cody fixed this to compile with clang in Linux. The problem was C99 does not support implicit int:

      -
          coupard.c:31:10: error: parameter 'h' was not declared, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int]
      +
          coupard.c:31:10: error: parameter 'h' was not declared, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int]
           void e(n,h){
                    ^
           coupard.c:31:8: error: parameter 'n' was not declared, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int]
      @@ -2163,7 +2164,7 @@ Wayback Machine.

      Cody fixed this to compile with gcc (it worked with clang). The problem was the cpp being unable to parse the generated code (see the index.html for details) and this ended up with a number of errors like:

      -
          jdalbec.c:64:5: error: stray '##' in program
      +
          jdalbec.c:64:5: error: stray '##' in program
              64 | B N##B (I) ; \
                 |     ^~
       
      @@ -2216,7 +2217,7 @@ to the repo for the script instead.

      2004/vik2 (index.html)

      Cody fixed this to compile in Linux. Although it compiled cleanly in macOS (and BSD?) the code failed to compile at all in Linux due to:

      -
          cc -E vik2_1.c > vik2_2.c
      +
          cc -E vik2_1.c > vik2_2.c
           In file included from vik2.c:945,
                            from vik2.c:959,
                            from vik2.c:972,
      @@ -2301,7 +2302,7 @@ and 64-bit. The solution has to do with the size difference between intlong so that the long*E is now int*E. This solves a specific problem for
       Linux (32-bit, 64-bit) and macOS (arm64).

      To get the self-test feature to work it was required to remove from the code:

      -
          O-b-f-u -s-c-a-t-e;
      +
          O-b-f-u -s-c-a-t-e;

      as it caused a compilation error in some of the generated code but served no purpose, didn’t affect the output of the puzzle and since the ‘string’ is already in the code there is no problem omitting it.

      @@ -2312,14 +2313,14 @@ also not have been necessary if using different flags to cc but thi portable and caused other problems. This was a complicated fix as it’s in the comments but in a funny way; the final result to get the test feature to work is:

      -
          ;; /*echo/Line/%d;sed/-n/-e/ %d,%dp/%s/|sed*/
      +
          ;; /*echo/Line/%d;sed/-n/-e/ %d,%dp/%s/|sed*/
           /*-e/'s,intZ,int/ Z,g'>c.c;make/c;/ rm/-f/c*/
           ;;

      changed from:

      -
          ;; /*echo/Line/%d;sed/-n/-e/ %d,%dp/%s>*/
      +
          ;; /*echo/Line/%d;sed/-n/-e/ %d,%dp/%s>*/
           /*c.c;cc/c.c /-c*/;;

      or as a diff:

      -
          -(t(m),(0));; /*echo/Line/%d;sed/-n/-e/ %d,%dp/%s>*/
      +
          -(t(m),(0));; /*echo/Line/%d;sed/-n/-e/ %d,%dp/%s>*/
           -/*c.c;cc/c.c /-c*/;;char*A=0,*_,*R,*Q, D[9999],*r,l
           -[9999],T=42, M,V=32;long*E,k[9999],B[1 <<+21],*N=B+
           +(t(m),(0));; /*echo/Line/%d;sed/-n/-e/ %d,%dp/%s/|sed*/
      @@ -2342,7 +2343,7 @@ not do it implicitly (like macOS does).

      2005/mikeash (index.html)

      Cody fixed this to work in Linux. The problem was an unknown escape sequence, \N, which caused a funny compiler error:

      -
          };n b[2048];int i
      +
          };n b[2048];int i
           mikeash.c: In function 'R':
           mikeash.c:7:1: error: '\N' not followed by '{'
               7 | ;C!='\n';A()
      @@ -2377,7 +2378,7 @@ test it on.

      Cody also added the try.sh script.

      2005/sykes (index.html)

      Cody added the saved (with the SAVE command) BASIC program PET which was:

      -
          10 PRINT "2005'S IOCCC BEST EMULATOR"
      +
          10 PRINT "2005'S IOCCC BEST EMULATOR"
           20 PRINT "BY STEPHEN SYKES!"

      followed by the commands:

          SAVE "PET"
      @@ -2806,11 +2807,11 @@ might violate rule 2: the program is really just a decompressor to generate the
       real source of the program. So the source of the entry has to be compiled and
       then run, and the output has to be compiled to be hou. This allows the real
       program to be used. Thus the Makefile rule looks like:

      -
          ${PROG}: ${PROG}.c
      +
          ${PROG}: ${PROG}.c
                   ${CC} ${CFLAGS} $< -o $@ ${LDFLAGS}
               ./${PROG} | ${CC} ${CFLAGS} -xc - -o $@ ${LDFLAGS}

      which then compiles like:

      -
          cc -std=gnu11 -Wall -Wextra -pedantic -Wno-sign-compare -Wno-strict-prototypes    -O3 hou.c -o hou -lm
      +
          cc -std=gnu11 -Wall -Wextra -pedantic -Wno-sign-compare -Wno-strict-prototypes    -O3 hou.c -o hou -lm
           ./hou | cc -std=gnu11 -Wall -Wextra -pedantic -Wno-sign-compare -Wno-strict-prototypes    -O3 -xc - -o hou -lm

      The LDFLAGS were updated to have -lm as the author suggested it uses the math.h library which not all systems link in by default (Linux for instance @@ -2932,12 +2933,12 @@ output.

      Cody fixed the code so one can make use of the echo feature, where the first character of the filename starts with e. The only way it would work before that is if one did something like:

      -
          ln -sf prog eprog
      +
          ln -sf prog eprog
           PATH=$PATH:. ; eprog '...'

      since otherwise the first character would not be e but rather a dot (./eprog). This was done by adding to the Makefile -include libgen.h and adding to main() after the variable declaration (V*A;) the code:

      -
          *K=basename(*K);
      +
          *K=basename(*K);

      This was done for both the prog.c and prog.alt.c. The Makefile was also updated to build eprog and eprog.alt to make use of the feature more easily. Each is a new @@ -3248,7 +3249,7 @@ longer known.

      2020/endoh3 (index.html)

      Cody fixed the script run_clock.sh which gave a funny error when running it:

      -
          $ ./run_clock.sh
      +
          $ ./run_clock.sh
           -bash: ./run_clock.sh: cannot execute: required file not found

      If run from within vim a different error message occurred:

          /bin/bash: ./run_clock.sh: /usr/bin/end: bad interpreter: No such file or directory
      diff --git a/tmp/manifest.csv b/tmp/manifest.csv index a58690501..47e5a9ab0 100644 --- a/tmp/manifest.csv +++ b/tmp/manifest.csv @@ -4,7 +4,7 @@ 1984,anonymous,anonymous.alt.c,40,true,c,true,alternative source 1984,anonymous,anonymous.orig.c,50,false,c,true,original source 1984,anonymous,1984-anonymous-tattoo.jpg,100,true,image,false,source code tattoo -1984,anonymous,1984_anonymous.tar.bz2,100000,false,tbz2,false,download entry tarball +1984,anonymous,1984_anonymous.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1984,anonymous,index.html,2000000000,false,html,false,this web page 1984,anonymous,README.md,4294967295,true,markdown,true,markdown source for this web page 1984,anonymous,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -14,7 +14,7 @@ 1984,decot,Makefile,30,true,makefile,true,entry Makefile 1984,decot,decot.alt.c,40,true,c,true,alternative source 1984,decot,decot.orig.c,50,false,c,true,original source -1984,decot,1984_decot.tar.bz2,100000,false,tbz2,false,download entry tarball +1984,decot,1984_decot.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1984,decot,index.html,2000000000,false,html,false,this web page 1984,decot,README.md,4294967295,true,markdown,true,markdown source for this web page 1984,decot,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -24,7 +24,7 @@ 1984,laman,Makefile,30,true,makefile,true,entry Makefile 1984,laman,laman.orig.c,50,false,c,true,original source 1984,laman,try.sh,100,true,shellscript,true,how to run -1984,laman,1984_laman.tar.bz2,100000,false,tbz2,false,download entry tarball +1984,laman,1984_laman.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1984,laman,index.html,2000000000,false,html,false,this web page 1984,laman,README.md,4294967295,true,markdown,true,markdown source for this web page 1984,laman,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -36,7 +36,7 @@ 1984,mullender,mullender.orig.c,50,false,c,true,original source 1984,mullender,gentab.c,150,true,c,true,author tool to generate code 1984,mullender,a.out.h,160,true,c,true,header file for gentab.c for compatibility with 1984 systems -1984,mullender,1984_mullender.tar.bz2,100000,false,tbz2,false,download entry tarball +1984,mullender,1984_mullender.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1984,mullender,index.html,2000000000,false,html,false,this web page 1984,mullender,README.md,4294967295,true,markdown,true,markdown source for this web page 1984,mullender,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -45,7 +45,7 @@ 1985,applin,applin.c,20,true,c,true,entry source 1985,applin,Makefile,30,true,makefile,true,entry Makefile 1985,applin,applin.orig.c,50,false,c,true,original source -1985,applin,1985_applin.tar.bz2,100000,false,tbz2,false,download entry tarball +1985,applin,1985_applin.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1985,applin,index.html,2000000000,false,html,false,this web page 1985,applin,README.md,4294967295,true,markdown,true,markdown source for this web page 1985,applin,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -56,7 +56,7 @@ 1985,august,august.orig.c,50,false,c,true,original source 1985,august,primes.sh,100,true,shellscript,true,how to run if you have the primes utility 1985,august,try.sh,100,true,shellscript,true,how to run -1985,august,1985_august.tar.bz2,100000,false,tbz2,false,download entry tarball +1985,august,1985_august.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1985,august,index.html,2000000000,false,html,false,this web page 1985,august,README.md,4294967295,true,markdown,true,markdown source for this web page 1985,august,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -67,7 +67,7 @@ 1985,lycklama,lycklama.alt.c,40,true,c,true,alternative source 1985,lycklama,lycklama.orig.c,50,false,c,true,original source 1985,lycklama,try.alt.sh,100,true,shellscript,true,how to run alternative code -1985,lycklama,1985_lycklama.tar.bz2,100000,false,tbz2,false,download entry tarball +1985,lycklama,1985_lycklama.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1985,lycklama,index.html,2000000000,false,html,false,this web page 1985,lycklama,README.md,4294967295,true,markdown,true,markdown source for this web page 1985,lycklama,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -78,7 +78,7 @@ 1985,shapiro,shapiro.alt.c,40,true,c,true,alternative source 1985,shapiro,shapiro.orig.c,50,true,c,true,original source 1985,shapiro,try.alt.sh,100,true,shellscript,true,how to run alternative code -1985,shapiro,1985_shapiro.tar.bz2,100000,false,tbz2,false,download entry tarball +1985,shapiro,1985_shapiro.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1985,shapiro,index.html,2000000000,false,html,false,this web page 1985,shapiro,README.md,4294967295,true,markdown,true,markdown source for this web page 1985,shapiro,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -90,7 +90,7 @@ 1985,sicherman,sicherman.orig.c,50,true,c,true,original source 1985,sicherman,try.alt.sh,100,true,shellscript,true,how to run alternative code 1985,sicherman,try.sh,100,true,shellscript,true,how to run -1985,sicherman,1985_sicherman.tar.bz2,100000,false,tbz2,false,download entry tarball +1985,sicherman,1985_sicherman.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1985,sicherman,index.html,2000000000,false,html,false,this web page 1985,sicherman,README.md,4294967295,true,markdown,true,markdown source for this web page 1985,sicherman,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -99,7 +99,7 @@ 1986,applin,applin.c,20,true,c,true,entry source 1986,applin,Makefile,30,true,makefile,true,entry Makefile 1986,applin,applin.orig.c,50,false,c,true,original source -1986,applin,1986_applin.tar.bz2,100000,false,tbz2,false,download entry tarball +1986,applin,1986_applin.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1986,applin,index.html,2000000000,false,html,false,this web page 1986,applin,README.md,4294967295,true,markdown,true,markdown source for this web page 1986,applin,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -108,7 +108,7 @@ 1986,august,august.c,20,true,c,true,entry source 1986,august,Makefile,30,true,makefile,true,entry Makefile 1986,august,august.orig.c,50,false,c,true,original source -1986,august,1986_august.tar.bz2,100000,false,tbz2,false,download entry tarball +1986,august,1986_august.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1986,august,index.html,2000000000,false,html,false,this web page 1986,august,README.md,4294967295,true,markdown,true,markdown source for this web page 1986,august,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -118,7 +118,7 @@ 1986,bright,Makefile,30,true,makefile,true,entry Makefile 1986,bright,bright.orig.c,50,false,c,true,original source 1986,bright,try.sh,100,true,shellscript,true,how to run -1986,bright,1986_bright.tar.bz2,100000,false,tbz2,false,download entry tarball +1986,bright,1986_bright.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1986,bright,index.html,2000000000,false,html,false,this web page 1986,bright,README.md,4294967295,true,markdown,true,markdown source for this web page 1986,bright,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -129,7 +129,7 @@ 1986,hague,hague.orig.c,50,false,c,true,original source 1986,hague,input.txt,100,true,text,true,sample input 1986,hague,try.sh,100,true,shellscript,true,how to run -1986,hague,1986_hague.tar.bz2,100000,false,tbz2,false,download entry tarball +1986,hague,1986_hague.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1986,hague,index.html,2000000000,false,html,false,this web page 1986,hague,README.md,4294967295,true,markdown,true,markdown source for this web page 1986,hague,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -138,7 +138,7 @@ 1986,holloway,holloway.c,20,true,c,true,entry source 1986,holloway,Makefile,30,true,makefile,true,entry Makefile 1986,holloway,holloway.orig.c,50,false,c,true,original source -1986,holloway,1986_holloway.tar.bz2,100000,false,tbz2,false,download entry tarball +1986,holloway,1986_holloway.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1986,holloway,index.html,2000000000,false,html,false,this web page 1986,holloway,README.md,4294967295,true,markdown,true,markdown source for this web page 1986,holloway,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -149,7 +149,7 @@ 1986,marshall,marshall.alt.c,40,true,c,true,alternative source 1986,marshall,marshall.orig.c,50,false,c,true,original source 1986,marshall,compilers.html,100,false,html,false,about compilers and optimizers that broke this entry -1986,marshall,1986_marshall.tar.bz2,100000,false,tbz2,false,download entry tarball +1986,marshall,1986_marshall.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1986,marshall,index.html,2000000000,false,html,false,this web page 1986,marshall,README.md,4294967295,true,markdown,true,markdown source for this web page 1986,marshall,compilers.md,4294967295,true,markdown,true,markdown source for compilers.html @@ -159,7 +159,7 @@ 1986,pawka,pawka.c,20,true,c,true,entry source 1986,pawka,Makefile,30,true,makefile,true,entry Makefile 1986,pawka,pawka.orig.c,50,false,c,true,original source -1986,pawka,1986_pawka.tar.bz2,100000,false,tbz2,false,download entry tarball +1986,pawka,1986_pawka.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1986,pawka,index.html,2000000000,false,html,false,this web page 1986,pawka,README.md,4294967295,true,markdown,true,markdown source for this web page 1986,pawka,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -169,7 +169,7 @@ 1986,stein,Makefile,30,true,makefile,true,entry Makefile 1986,stein,stein.orig.c,50,true,c,true,original source 1986,stein,stein.sh,100,true,shellscript,true,demonstrate this IOCCC entry -1986,stein,1986_stein.tar.bz2,100000,false,tbz2,false,download entry tarball +1986,stein,1986_stein.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1986,stein,index.html,2000000000,false,html,false,this web page 1986,stein,README.md,4294967295,true,markdown,true,markdown source for this web page 1986,stein,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -178,7 +178,7 @@ 1986,wall,wall.c,20,true,c,true,entry source 1986,wall,Makefile,30,true,makefile,true,entry Makefile 1986,wall,wall.orig.c,50,true,c,true,original source -1986,wall,1986_wall.tar.bz2,100000,false,tbz2,false,download entry tarball +1986,wall,1986_wall.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1986,wall,index.html,2000000000,false,html,false,this web page 1986,wall,README.md,4294967295,true,markdown,true,markdown source for this web page 1986,wall,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -188,7 +188,7 @@ 1987,biggar,Makefile,30,true,makefile,true,entry Makefile 1987,biggar,biggar.orig.c,50,false,c,true,original source 1987,biggar,try.sh,100,true,shellscript,true,how to run -1987,biggar,1987_biggar.tar.bz2,100000,false,tbz2,false,download entry tarball +1987,biggar,1987_biggar.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1987,biggar,index.html,2000000000,false,html,false,this web page 1987,biggar,README.md,4294967295,true,markdown,true,markdown source for this web page 1987,biggar,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -198,7 +198,7 @@ 1987,heckbert,Makefile,30,true,makefile,true,entry Makefile 1987,heckbert,heckbert.orig.c,50,false,c,true,original source 1987,heckbert,try.sh,100,true,shellscript,true,how to run -1987,heckbert,1987_heckbert.tar.bz2,100000,false,tbz2,false,download entry tarball +1987,heckbert,1987_heckbert.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1987,heckbert,index.html,2000000000,false,html,false,this web page 1987,heckbert,README.md,4294967295,true,markdown,true,markdown source for this web page 1987,heckbert,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -210,7 +210,7 @@ 1987,hines,goto.c,100,true,c,true,sample source full of goto statements 1987,hines,goto.txt,100,true,text,true,a file to goto and see 1987,hines,try.sh,100,true,shellscript,true,how to run -1987,hines,1987_hines.tar.bz2,100000,false,tbz2,false,download entry tarball +1987,hines,1987_hines.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1987,hines,index.html,2000000000,false,html,false,this web page 1987,hines,README.md,4294967295,true,markdown,true,markdown source for this web page 1987,hines,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -219,7 +219,7 @@ 1987,korn,korn.c,20,true,c,true,entry source 1987,korn,Makefile,30,true,makefile,true,entry Makefile 1987,korn,korn.orig.c,50,false,c,true,original source -1987,korn,1987_korn.tar.bz2,100000,false,tbz2,false,download entry tarball +1987,korn,1987_korn.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1987,korn,index.html,2000000000,false,html,false,this web page 1987,korn,README.md,4294967295,true,markdown,true,markdown source for this web page 1987,korn,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -229,7 +229,7 @@ 1987,lievaart,Makefile,30,true,makefile,true,entry Makefile 1987,lievaart,lievaart.orig.c,50,false,c,true,original source 1987,lievaart,lievaart2.c,150,true,c,true,source without size restriction -1987,lievaart,1987_lievaart.tar.bz2,100000,false,tbz2,false,download entry tarball +1987,lievaart,1987_lievaart.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1987,lievaart,index.html,2000000000,false,html,false,this web page 1987,lievaart,README.md,4294967295,true,markdown,true,markdown source for this web page 1987,lievaart,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -239,7 +239,7 @@ 1987,wall,Makefile,30,true,makefile,true,entry Makefile 1987,wall,wall.orig.c,50,true,c,true,original source 1987,wall,try.sh,100,true,shellscript,true,how to run -1987,wall,1987_wall.tar.bz2,100000,false,tbz2,false,download entry tarball +1987,wall,1987_wall.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1987,wall,index.html,2000000000,false,html,false,this web page 1987,wall,README.md,4294967295,true,markdown,true,markdown source for this web page 1987,wall,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -248,7 +248,7 @@ 1987,westley,westley.c,20,true,c,true,entry source 1987,westley,Makefile,30,true,makefile,true,entry Makefile 1987,westley,westley.orig.c,50,true,c,true,original source -1987,westley,1987_westley.tar.bz2,100000,false,tbz2,false,download entry tarball +1987,westley,1987_westley.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1987,westley,index.html,2000000000,false,html,false,this web page 1987,westley,README.md,4294967295,true,markdown,true,markdown source for this web page 1987,westley,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -258,7 +258,7 @@ 1988,applin,Makefile,30,true,makefile,true,entry Makefile 1988,applin,applin.alt.c,40,true,c,true,alternative source 1988,applin,applin.orig.c,50,false,c,true,original source -1988,applin,1988_applin.tar.bz2,100000,false,tbz2,false,download entry tarball +1988,applin,1988_applin.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1988,applin,index.html,2000000000,false,html,false,this web page 1988,applin,README.md,4294967295,true,markdown,true,markdown source for this web page 1988,applin,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -268,7 +268,7 @@ 1988,dale,Makefile,30,true,makefile,true,entry Makefile 1988,dale,dale.orig.c,50,false,c,true,original source 1988,dale,try.sh,100,true,shellscript,true,how to run -1988,dale,1988_dale.tar.bz2,100000,false,tbz2,false,download entry tarball +1988,dale,1988_dale.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1988,dale,index.html,2000000000,false,html,false,this web page 1988,dale,README.md,4294967295,true,markdown,true,markdown source for this web page 1988,dale,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -279,7 +279,7 @@ 1988,isaak,isaak.alt.c,40,true,c,true,alternative source 1988,isaak,isaak.orig.c,50,false,c,true,original source 1988,isaak,isaak.encode,180,true,xxencode,false,uuencoded sample output -1988,isaak,1988_isaak.tar.bz2,100000,false,tbz2,false,download entry tarball +1988,isaak,1988_isaak.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1988,isaak,index.html,2000000000,false,html,false,this web page 1988,isaak,README.md,4294967295,true,markdown,true,markdown source for this web page 1988,isaak,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -289,7 +289,7 @@ 1988,litmaath,Makefile,30,true,makefile,true,entry Makefile 1988,litmaath,litmaath.alt.c,40,true,c,true,alternative source 1988,litmaath,litmaath.orig.c,50,false,c,true,original source -1988,litmaath,1988_litmaath.tar.bz2,100000,false,tbz2,false,download entry tarball +1988,litmaath,1988_litmaath.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1988,litmaath,index.html,2000000000,false,html,false,this web page 1988,litmaath,README.md,4294967295,true,markdown,true,markdown source for this web page 1988,litmaath,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -298,7 +298,7 @@ 1988,phillipps,phillipps.c,20,true,c,true,entry source 1988,phillipps,Makefile,30,true,makefile,true,entry Makefile 1988,phillipps,phillipps.orig.c,50,false,c,true,original source -1988,phillipps,1988_phillipps.tar.bz2,100000,false,tbz2,false,download entry tarball +1988,phillipps,1988_phillipps.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1988,phillipps,index.html,2000000000,false,html,false,this web page 1988,phillipps,README.md,4294967295,true,markdown,true,markdown source for this web page 1988,phillipps,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -307,7 +307,7 @@ 1988,reddy,reddy.c,20,true,c,true,entry source 1988,reddy,Makefile,30,true,makefile,true,entry Makefile 1988,reddy,reddy.orig.c,50,true,c,true,original source -1988,reddy,1988_reddy.tar.bz2,100000,false,tbz2,false,download entry tarball +1988,reddy,1988_reddy.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1988,reddy,index.html,2000000000,false,html,false,this web page 1988,reddy,README.md,4294967295,true,markdown,true,markdown source for this web page 1988,reddy,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -316,7 +316,7 @@ 1988,robison,robison.c,20,true,c,true,entry source 1988,robison,Makefile,30,true,makefile,true,entry Makefile 1988,robison,robison.orig.c,50,true,c,true,original source -1988,robison,1988_robison.tar.bz2,100000,false,tbz2,false,download entry tarball +1988,robison,1988_robison.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1988,robison,index.html,2000000000,false,html,false,this web page 1988,robison,README.md,4294967295,true,markdown,true,markdown source for this web page 1988,robison,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -328,7 +328,7 @@ 1988,spinellis,spinellis.orig.c,50,true,c,true,original source 1988,spinellis,input2.txt,150,true,text,true,example input 1988,spinellis,input.txt,150,true,text,true,example input -1988,spinellis,1988_spinellis.tar.bz2,100000,false,tbz2,false,download entry tarball +1988,spinellis,1988_spinellis.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1988,spinellis,index.html,2000000000,false,html,false,this web page 1988,spinellis,README.md,4294967295,true,markdown,true,markdown source for this web page 1988,spinellis,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -339,7 +339,7 @@ 1988,westley,westley.alt.c,40,true,c,true,alternative source 1988,westley,westley.orig.c,50,true,c,true,original source 1988,westley,try.sh,100,true,shellscript,true,how to run -1988,westley,1988_westley.tar.bz2,100000,false,tbz2,false,download entry tarball +1988,westley,1988_westley.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1988,westley,index.html,2000000000,false,html,false,this web page 1988,westley,README.md,4294967295,true,markdown,true,markdown source for this web page 1988,westley,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -350,7 +350,7 @@ 1989,fubar,fubar.orig.c,50,false,c,true,original source 1989,fubar,fubar.sh,100,true,shellscript,true,how to run fubar 1989,fubar,try.sh,100,true,shellscript,true,how to run -1989,fubar,1989_fubar.tar.bz2,100000,false,tbz2,false,download entry tarball +1989,fubar,1989_fubar.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1989,fubar,index.html,2000000000,false,html,false,this web page 1989,fubar,README.md,4294967295,true,markdown,true,markdown source for this web page 1989,fubar,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -362,7 +362,7 @@ 1989,jar.1,jar.1.orig.c,50,false,c,true,original source 1989,jar.1,jar.1.alt.sh,150,true,shellscript,true,a method to compile 1989,jar.1,jar.1.sh,150,true,shellscript,true,a method to compile the alternative source -1989,jar.1,1989_jar.1.tar.bz2,100000,false,tbz2,false,download entry tarball +1989,jar.1,1989_jar.1.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1989,jar.1,index.html,2000000000,false,html,false,this web page 1989,jar.1,README.md,4294967295,true,markdown,true,markdown source for this web page 1989,jar.1,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -375,7 +375,7 @@ 1989,jar.2,fib.lisp,100,true,lisp,true,input file 1989,jar.2,try.sh,100,true,shellscript,true,how to run 1989,jar.2,try.txt,100,true,text,true,input file -1989,jar.2,1989_jar.2.tar.bz2,100000,false,tbz2,false,download entry tarball +1989,jar.2,1989_jar.2.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1989,jar.2,index.html,2000000000,false,html,false,this web page 1989,jar.2,README.md,4294967295,true,markdown,true,markdown source for this web page 1989,jar.2,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -387,7 +387,7 @@ 1989,ovdluhe,ovdluhe.orig.c,50,false,c,true,original source 1989,ovdluhe,try.alt.sh,100,true,shellscript,true,how to run alternative code 1989,ovdluhe,try.sh,100,true,shellscript,true,how to run -1989,ovdluhe,1989_ovdluhe.tar.bz2,100000,false,tbz2,false,download entry tarball +1989,ovdluhe,1989_ovdluhe.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1989,ovdluhe,index.html,2000000000,false,html,false,this web page 1989,ovdluhe,README.md,4294967295,true,markdown,true,markdown source for this web page 1989,ovdluhe,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -397,7 +397,7 @@ 1989,paul,Makefile,30,true,makefile,true,entry Makefile 1989,paul,paul.alt.c,40,true,c,true,alternative source 1989,paul,paul.orig.c,50,false,c,true,original source -1989,paul,1989_paul.tar.bz2,100000,false,tbz2,false,download entry tarball +1989,paul,1989_paul.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1989,paul,index.html,2000000000,false,html,false,this web page 1989,paul,README.md,4294967295,true,markdown,true,markdown source for this web page 1989,paul,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -407,7 +407,7 @@ 1989,robison,Makefile,30,true,makefile,true,entry Makefile 1989,robison,robison.orig.c,50,true,c,true,original source 1989,robison,try.sh,100,true,shellscript,true,how to run -1989,robison,1989_robison.tar.bz2,100000,false,tbz2,false,download entry tarball +1989,robison,1989_robison.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1989,robison,index.html,2000000000,false,html,false,this web page 1989,robison,README.md,4294967295,true,markdown,true,markdown source for this web page 1989,robison,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -416,7 +416,7 @@ 1989,roemer,roemer.c,20,true,c,true,entry source 1989,roemer,Makefile,30,true,makefile,true,entry Makefile 1989,roemer,roemer.orig.c,50,true,c,true,original source -1989,roemer,1989_roemer.tar.bz2,100000,false,tbz2,false,download entry tarball +1989,roemer,1989_roemer.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1989,roemer,index.html,2000000000,false,html,false,this web page 1989,roemer,README.md,4294967295,true,markdown,true,markdown source for this web page 1989,roemer,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -426,7 +426,7 @@ 1989,tromp,Makefile,30,true,makefile,true,entry Makefile 1989,tromp,tromp.alt.c,40,true,c,true,alternative source 1989,tromp,tromp.orig.c,50,true,c,true,original source -1989,tromp,1989_tromp.tar.bz2,100000,false,tbz2,false,download entry tarball +1989,tromp,1989_tromp.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1989,tromp,index.html,2000000000,false,html,false,this web page 1989,tromp,README.md,4294967295,true,markdown,true,markdown source for this web page 1989,tromp,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -436,7 +436,7 @@ 1989,vanb,Makefile,30,true,makefile,true,entry Makefile 1989,vanb,vanb.orig.c,50,true,c,true,original source 1989,vanb,try.sh,100,true,shellscript,true,how to run -1989,vanb,1989_vanb.tar.bz2,100000,false,tbz2,false,download entry tarball +1989,vanb,1989_vanb.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1989,vanb,index.html,2000000000,false,html,false,this web page 1989,vanb,README.md,4294967295,true,markdown,true,markdown source for this web page 1989,vanb,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -447,7 +447,7 @@ 1989,westley,westley.orig.c,50,true,c,true,original source 1989,westley,compile.sh,100,true,shellscript,true,generate and compile versions 1989,westley,try.sh,100,true,shellscript,true,how to run -1989,westley,1989_westley.tar.bz2,100000,false,tbz2,false,download entry tarball +1989,westley,1989_westley.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1989,westley,index.html,2000000000,false,html,false,this web page 1989,westley,README.md,4294967295,true,markdown,true,markdown source for this web page 1989,westley,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -458,7 +458,7 @@ 1990,baruch,baruch.alt.c,40,true,c,true,alternative source 1990,baruch,baruch.orig.c,50,false,c,true,original source 1990,baruch,try.sh,100,true,shellscript,true,how to run -1990,baruch,1990_baruch.tar.bz2,100000,false,tbz2,false,download entry tarball +1990,baruch,1990_baruch.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1990,baruch,index.html,2000000000,false,html,false,this web page 1990,baruch,README.md,4294967295,true,markdown,true,markdown source for this web page 1990,baruch,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -467,7 +467,7 @@ 1990,cmills,cmills.c,20,true,c,true,entry source 1990,cmills,Makefile,30,true,makefile,true,entry Makefile 1990,cmills,cmills.orig.c,50,false,c,true,original source -1990,cmills,1990_cmills.tar.bz2,100000,false,tbz2,false,download entry tarball +1990,cmills,1990_cmills.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1990,cmills,index.html,2000000000,false,html,false,this web page 1990,cmills,README.md,4294967295,true,markdown,true,markdown source for this web page 1990,cmills,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -477,7 +477,7 @@ 1990,dds,Makefile,30,true,makefile,true,entry Makefile 1990,dds,dds.orig.c,50,false,c,true,original source 1990,dds,LANDER.BAS,150,true,basic,true,BASIC source code -1990,dds,1990_dds.tar.bz2,100000,false,tbz2,false,download entry tarball +1990,dds,1990_dds.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1990,dds,index.html,2000000000,false,html,false,this web page 1990,dds,README.md,4294967295,true,markdown,true,markdown source for this web page 1990,dds,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -487,7 +487,7 @@ 1990,dg,Makefile,30,true,makefile,true,entry Makefile 1990,dg,dg.orig.c,50,false,c,true,original source 1990,dg,try.sh,100,true,shellscript,true,how to run -1990,dg,1990_dg.tar.bz2,100000,false,tbz2,false,download entry tarball +1990,dg,1990_dg.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1990,dg,index.html,2000000000,false,html,false,this web page 1990,dg,README.md,4294967295,true,markdown,true,markdown source for this web page 1990,dg,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -499,7 +499,7 @@ 1990,jaw,try.sh,100,true,shellscript,true,how to run 1990,jaw,btoa,150,true,ruby,true,bota utility 1990,jaw,shark.sh,150,true,shellscript,true,shark utility with embedded source -1990,jaw,1990_jaw.tar.bz2,100000,false,tbz2,false,download entry tarball +1990,jaw,1990_jaw.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1990,jaw,index.html,2000000000,false,html,false,this web page 1990,jaw,README.md,4294967295,true,markdown,true,markdown source for this web page 1990,jaw,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -509,7 +509,7 @@ 1990,pjr,Makefile,30,true,makefile,true,entry Makefile 1990,pjr,pjr.alt.c,40,true,c,true,alternative source 1990,pjr,pjr.orig.c,50,false,c,true,original source -1990,pjr,1990_pjr.tar.bz2,100000,false,tbz2,false,download entry tarball +1990,pjr,1990_pjr.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1990,pjr,index.html,2000000000,false,html,false,this web page 1990,pjr,README.md,4294967295,true,markdown,true,markdown source for this web page 1990,pjr,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -519,7 +519,7 @@ 1990,scjones,Makefile,30,true,makefile,true,entry Makefile 1990,scjones,scjones.orig.c,50,true,c,true,original source 1990,scjones,try.sh,100,true,shellscript,true,how to run -1990,scjones,1990_scjones.tar.bz2,100000,false,tbz2,false,download entry tarball +1990,scjones,1990_scjones.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1990,scjones,index.html,2000000000,false,html,false,this web page 1990,scjones,README.md,4294967295,true,markdown,true,markdown source for this web page 1990,scjones,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -529,7 +529,7 @@ 1990,stig,Makefile,30,true,makefile,true,entry Makefile 1990,stig,stig.orig.c,50,true,c,true,original source 1990,stig,stig.sh,100,true,shellscript,true,how to compile -1990,stig,1990_stig.tar.bz2,100000,false,tbz2,false,download entry tarball +1990,stig,1990_stig.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1990,stig,index.html,2000000000,false,html,false,this web page 1990,stig,README.md,4294967295,true,markdown,true,markdown source for this web page 1990,stig,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -539,7 +539,7 @@ 1990,tbr,Makefile,30,true,makefile,true,entry Makefile 1990,tbr,tbr.alt.c,40,true,c,true,alternative source 1990,tbr,tbr.orig.c,50,true,c,true,original source -1990,tbr,1990_tbr.tar.bz2,100000,false,tbz2,false,download entry tarball +1990,tbr,1990_tbr.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1990,tbr,index.html,2000000000,false,html,false,this web page 1990,tbr,README.md,4294967295,true,markdown,true,markdown source for this web page 1990,tbr,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -549,7 +549,7 @@ 1990,theorem,Makefile,30,true,makefile,true,entry Makefile 1990,theorem,theorem.orig.c,50,true,c,true,original source 1990,theorem,try.sh,100,true,shellscript,true,how to run -1990,theorem,1990_theorem.tar.bz2,100000,false,tbz2,false,download entry tarball +1990,theorem,1990_theorem.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1990,theorem,index.html,2000000000,false,html,false,this web page 1990,theorem,README.md,4294967295,true,markdown,true,markdown source for this web page 1990,theorem,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -560,7 +560,7 @@ 1990,westley,westley.alt.c,40,true,c,true,alternative source 1990,westley,westley.orig.c,50,true,c,true,original source 1990,westley,try.sh,100,true,shellscript,true,how to run -1990,westley,1990_westley.tar.bz2,100000,false,tbz2,false,download entry tarball +1990,westley,1990_westley.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1990,westley,index.html,2000000000,false,html,false,this web page 1990,westley,README.md,4294967295,true,markdown,true,markdown source for this web page 1990,westley,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -570,7 +570,7 @@ 1991,ant,Makefile,30,true,makefile,true,entry Makefile 1991,ant,ant.alt.c,40,true,c,true,alternative source 1991,ant,ant.orig.c,50,false,c,true,original source -1991,ant,1991_ant.tar.bz2,100000,false,tbz2,false,download entry tarball +1991,ant,1991_ant.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1991,ant,index.html,2000000000,false,html,false,this web page 1991,ant,README.md,4294967295,true,markdown,true,markdown source for this web page 1991,ant,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -595,7 +595,7 @@ 1991,brnstnd,sorta.isleep,150,true,sorta,true,SORTA source 1991,brnstnd,sorta.itailrec,150,true,sorta,true,SORTA source 1991,brnstnd,sorta.iwhosort,150,true,sorta,true,SORTA source -1991,brnstnd,1991_brnstnd.tar.bz2,100000,false,tbz2,false,download entry tarball +1991,brnstnd,1991_brnstnd.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1991,brnstnd,index.html,2000000000,false,html,false,this web page 1991,brnstnd,README.md,4294967295,true,markdown,true,markdown source for this web page 1991,brnstnd,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -606,7 +606,7 @@ 1991,buzzard,Makefile,30,true,makefile,true,entry Makefile 1991,buzzard,buzzard.alt.c,40,true,c,true,alternative source 1991,buzzard,buzzard.orig.c,50,false,c,true,original source -1991,buzzard,1991_buzzard.tar.bz2,100000,false,tbz2,false,download entry tarball +1991,buzzard,1991_buzzard.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1991,buzzard,index.html,2000000000,false,html,false,this web page 1991,buzzard,README.md,4294967295,true,markdown,true,markdown source for this web page 1991,buzzard,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -615,7 +615,7 @@ 1991,cdupont,cdupont.c,20,true,c,true,entry source 1991,cdupont,Makefile,30,true,makefile,true,entry Makefile 1991,cdupont,cdupont.orig.c,50,false,c,true,original source -1991,cdupont,1991_cdupont.tar.bz2,100000,false,tbz2,false,download entry tarball +1991,cdupont,1991_cdupont.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1991,cdupont,index.html,2000000000,false,html,false,this web page 1991,cdupont,README.md,4294967295,true,markdown,true,markdown source for this web page 1991,cdupont,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -624,7 +624,7 @@ 1991,davidguy,davidguy.c,20,true,c,true,entry source 1991,davidguy,Makefile,30,true,makefile,true,entry Makefile 1991,davidguy,davidguy.orig.c,50,false,c,true,original source -1991,davidguy,1991_davidguy.tar.bz2,100000,false,tbz2,false,download entry tarball +1991,davidguy,1991_davidguy.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1991,davidguy,index.html,2000000000,false,html,false,this web page 1991,davidguy,README.md,4294967295,true,markdown,true,markdown source for this web page 1991,davidguy,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -634,7 +634,7 @@ 1991,dds,Makefile,30,true,makefile,true,entry Makefile 1991,dds,dds.orig.c,50,false,c,true,original source 1991,dds,LANDER.BAS,150,true,basic,true,BASIC source code -1991,dds,1991_dds.tar.bz2,100000,false,tbz2,false,download entry tarball +1991,dds,1991_dds.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1991,dds,index.html,2000000000,false,html,false,this web page 1991,dds,README.md,4294967295,true,markdown,true,markdown source for this web page 1991,dds,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -644,7 +644,7 @@ 1991,fine,Makefile,30,true,makefile,true,entry Makefile 1991,fine,fine.orig.c,50,false,c,true,original source 1991,fine,try.sh,100,true,shellscript,true,how to run -1991,fine,1991_fine.tar.bz2,100000,false,tbz2,false,download entry tarball +1991,fine,1991_fine.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1991,fine,index.html,2000000000,false,html,false,this web page 1991,fine,README.md,4294967295,true,markdown,true,markdown source for this web page 1991,fine,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -655,7 +655,7 @@ 1991,rince,rince.alt2.c,40,true,c,true,alternate alternative source 1991,rince,rince.alt.c,40,true,c,true,alternative source 1991,rince,rince.orig.c,50,true,c,true,original source -1991,rince,1991_rince.tar.bz2,100000,false,tbz2,false,download entry tarball +1991,rince,1991_rince.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1991,rince,index.html,2000000000,false,html,false,this web page 1991,rince,README.md,4294967295,true,markdown,true,markdown source for this web page 1991,rince,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -667,7 +667,7 @@ 1991,westley,westley.orig.c,50,true,c,true,original source 1991,westley,ttt.alt.sh,100,true,shellscript,true,how to run the alternative code 1991,westley,ttt.sh,100,true,shellscript,true,play tic-tac-toe -1991,westley,1991_westley.tar.bz2,100000,false,tbz2,false,download entry tarball +1991,westley,1991_westley.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1991,westley,index.html,2000000000,false,html,false,this web page 1991,westley,README.md,4294967295,true,markdown,true,markdown source for this web page 1991,westley,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -684,7 +684,7 @@ 1992,adrian,adrian.grep.from,100,true,agrep,true,agrep script 1992,adrian,adrian.grep.try,100,true,agrep,true,agrep script 1992,adrian,try.sh,100,true,shellscript,true,how to run -1992,adrian,1992_adrian.tar.bz2,100000,false,tbz2,false,download entry tarball +1992,adrian,1992_adrian.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1992,adrian,index.html,2000000000,false,html,false,this web page 1992,adrian,README.md,4294967295,true,markdown,true,markdown source for this web page 1992,adrian,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -696,7 +696,7 @@ 1992,albert,albert.orig.c,50,false,c,true,original source 1992,albert,try.alt.sh,100,true,shellscript,true,how to run alternative code 1992,albert,try.sh,100,true,shellscript,true,how to run -1992,albert,1992_albert.tar.bz2,100000,false,tbz2,false,download entry tarball +1992,albert,1992_albert.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1992,albert,index.html,2000000000,false,html,false,this web page 1992,albert,README.md,4294967295,true,markdown,true,markdown source for this web page 1992,albert,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -708,7 +708,7 @@ 1992,ant,try.sh,100,true,shellscript,true,how to run 1992,ant,ant.README,150,true,text,true,am man page 1992,ant,ant.test.mk,150,true,makefile,true,how to compile -1992,ant,1992_ant.tar.bz2,100000,false,tbz2,false,download entry tarball +1992,ant,1992_ant.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1992,ant,index.html,2000000000,false,html,false,this web page 1992,ant,README.md,4294967295,true,markdown,true,markdown source for this web page 1992,ant,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -718,7 +718,7 @@ 1992,buzzard.1,Makefile,30,true,makefile,true,entry Makefile 1992,buzzard.1,buzzard.1.orig.c,50,false,c,true,original source 1992,buzzard.1,try.sh,100,true,shellscript,true,how to run -1992,buzzard.1,1992_buzzard.1.tar.bz2,100000,false,tbz2,false,download entry tarball +1992,buzzard.1,1992_buzzard.1.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1992,buzzard.1,index.html,2000000000,false,html,false,this web page 1992,buzzard.1,README.md,4294967295,true,markdown,true,markdown source for this web page 1992,buzzard.1,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -741,7 +741,7 @@ 1992,buzzard.2,demo6.th,150,true,FORTH,true,FORTH source 1992,buzzard.2,help.th,150,true,FORTH,true,FORTH source 1992,buzzard.2,third,150,true,FORTH,true,the third source -1992,buzzard.2,1992_buzzard.2.tar.bz2,100000,false,tbz2,false,download entry tarball +1992,buzzard.2,1992_buzzard.2.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1992,buzzard.2,index.html,2000000000,false,html,false,this web page 1992,buzzard.2,README.md,4294967295,true,markdown,true,markdown source for this web page 1992,buzzard.2,buzzard.2.README.md,4294967295,true,markdown,true,markdown source for buzzard.2.README.html @@ -754,7 +754,7 @@ 1992,gson,gson.orig.c,50,false,c,true,original source 1992,gson,try.sh,100,true,shellscript,true,how to run 1992,gson,mkdict.sh,150,true,shellscript,true,tool to make the dictionary -1992,gson,1992_gson.tar.bz2,100000,false,tbz2,false,download entry tarball +1992,gson,1992_gson.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1992,gson,index.html,2000000000,false,html,false,this web page 1992,gson,README.md,4294967295,true,markdown,true,markdown source for this web page 1992,gson,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -764,7 +764,7 @@ 1992,imc,Makefile,30,true,makefile,true,entry Makefile 1992,imc,imc.orig.c,50,false,c,true,original source 1992,imc,try.sh,100,true,shellscript,true,how to run -1992,imc,1992_imc.tar.bz2,100000,false,tbz2,false,download entry tarball +1992,imc,1992_imc.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1992,imc,index.html,2000000000,false,html,false,this web page 1992,imc,README.md,4294967295,true,markdown,true,markdown source for this web page 1992,imc,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -774,7 +774,7 @@ 1992,kivinen,Makefile,30,true,makefile,true,entry Makefile 1992,kivinen,kivinen.alt.c,40,true,c,true,alternative source 1992,kivinen,kivinen.orig.c,50,false,c,true,original source -1992,kivinen,1992_kivinen.tar.bz2,100000,false,tbz2,false,download entry tarball +1992,kivinen,1992_kivinen.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1992,kivinen,index.html,2000000000,false,html,false,this web page 1992,kivinen,README.md,4294967295,true,markdown,true,markdown source for this web page 1992,kivinen,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -784,7 +784,7 @@ 1992,lush,Makefile,30,true,makefile,true,entry Makefile 1992,lush,lush.orig.c,50,false,c,true,original source 1992,lush,lush.sh,100,true,shellscript,true,how to run -1992,lush,1992_lush.tar.bz2,100000,false,tbz2,false,download entry tarball +1992,lush,1992_lush.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1992,lush,index.html,2000000000,false,html,false,this web page 1992,lush,README.md,4294967295,true,markdown,true,markdown source for this web page 1992,lush,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -793,7 +793,7 @@ 1992,marangon,marangon.c,20,true,c,true,entry source 1992,marangon,Makefile,30,true,makefile,true,entry Makefile 1992,marangon,marangon.orig.c,50,false,c,true,original source -1992,marangon,1992_marangon.tar.bz2,100000,false,tbz2,false,download entry tarball +1992,marangon,1992_marangon.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1992,marangon,index.html,2000000000,false,html,false,this web page 1992,marangon,README.md,4294967295,true,markdown,true,markdown source for this web page 1992,marangon,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -803,7 +803,7 @@ 1992,nathan,Makefile,30,true,makefile,true,entry Makefile 1992,nathan,nathan.orig.c,50,false,c,true,original source 1992,nathan,try.sh,100,true,shellscript,true,how to run -1992,nathan,1992_nathan.tar.bz2,100000,false,tbz2,false,download entry tarball +1992,nathan,1992_nathan.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1992,nathan,index.html,2000000000,false,html,false,this web page 1992,nathan,README.md,4294967295,true,markdown,true,markdown source for this web page 1992,nathan,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -812,7 +812,7 @@ 1992,vern,vern.c,20,true,c,true,entry source 1992,vern,Makefile,30,true,makefile,true,entry Makefile 1992,vern,vern.orig.c,50,true,c,true,original source -1992,vern,1992_vern.tar.bz2,100000,false,tbz2,false,download entry tarball +1992,vern,1992_vern.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1992,vern,index.html,2000000000,false,html,false,this web page 1992,vern,README.md,4294967295,true,markdown,true,markdown source for this web page 1992,vern,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -827,7 +827,7 @@ 1992,westley,whereami.alt.sh,100,true,shellscript,true,alternative whereami tool 1992,westley,whereami.c,100,true,c,true,tool to find your location on the map 1992,westley,whereami.sh,100,true,shellscript,true,whereami tool -1992,westley,1992_westley.tar.bz2,100000,false,tbz2,false,download entry tarball +1992,westley,1992_westley.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1992,westley,index.html,2000000000,false,html,false,this web page 1992,westley,README.md,4294967295,true,markdown,true,markdown source for this web page 1992,westley,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -840,7 +840,7 @@ 1993,ant,try.sh,100,true,shellscript,true,how to run 1993,ant,ants.txt,150,true,text,true,lots of ASCII ants 1993,ant,ant.test.mk,150,true,makefile,true,test suite -1993,ant,1993_ant.tar.bz2,100000,false,tbz2,false,download entry tarball +1993,ant,1993_ant.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1993,ant,index.html,2000000000,false,html,false,this web page 1993,ant,README.md,4294967295,true,markdown,true,markdown source for this web page 1993,ant,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -850,7 +850,7 @@ 1993,cmills,Makefile,30,true,makefile,true,entry Makefile 1993,cmills,cmills.alt.c,40,true,c,true,alternative source 1993,cmills,cmills.orig.c,50,false,c,true,original source -1993,cmills,1993_cmills.tar.bz2,100000,false,tbz2,false,download entry tarball +1993,cmills,1993_cmills.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1993,cmills,index.html,2000000000,false,html,false,this web page 1993,cmills,README.md,4294967295,true,markdown,true,markdown source for this web page 1993,cmills,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -866,7 +866,7 @@ 1993,dgibson,dgibson.data3,150,true,text,true,life cell layout 1993,dgibson,dgibson.data4,150,true,text,true,life cell layout 1993,dgibson,dgibson.data5,150,true,text,true,life cell layout -1993,dgibson,1993_dgibson.tar.bz2,100000,false,tbz2,false,download entry tarball +1993,dgibson,1993_dgibson.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1993,dgibson,index.html,2000000000,false,html,false,this web page 1993,dgibson,README.md,4294967295,true,markdown,true,markdown source for this web page 1993,dgibson,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -878,7 +878,7 @@ 1993,ejb,hanoi.html,100,false,html,false,about the Towers of Hanoi puzzle 1993,ejb,patience.html,100,false,html,false,about the Patience puzzle 1993,ejb,try.sh,100,true,shellscript,true,how to run -1993,ejb,1993_ejb.tar.bz2,100000,false,tbz2,false,download entry tarball +1993,ejb,1993_ejb.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1993,ejb,index.html,2000000000,false,html,false,this web page 1993,ejb,README.md,4294967295,true,markdown,true,markdown source for this web page 1993,ejb,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -889,7 +889,7 @@ 1993,jonth,jonth.c,20,true,c,true,entry source 1993,jonth,Makefile,30,true,makefile,true,entry Makefile 1993,jonth,jonth.orig.c,50,false,c,true,original source -1993,jonth,1993_jonth.tar.bz2,100000,false,tbz2,false,download entry tarball +1993,jonth,1993_jonth.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1993,jonth,index.html,2000000000,false,html,false,this web page 1993,jonth,README.md,4294967295,true,markdown,true,markdown source for this web page 1993,jonth,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -898,7 +898,7 @@ 1993,leo,leo.c,20,true,c,true,entry source 1993,leo,Makefile,30,true,makefile,true,entry Makefile 1993,leo,leo.orig.c,50,false,c,true,original source -1993,leo,1993_leo.tar.bz2,100000,false,tbz2,false,download entry tarball +1993,leo,1993_leo.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1993,leo,index.html,2000000000,false,html,false,this web page 1993,leo,README.md,4294967295,true,markdown,true,markdown source for this web page 1993,leo,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -908,7 +908,7 @@ 1993,lmfjyh,Makefile,30,true,makefile,true,entry Makefile 1993,lmfjyh,lmfjyh.alt.c,40,true,c,true,alternative source 1993,lmfjyh,lmfjyh.orig.c,50,false,c,true,original source -1993,lmfjyh,1993_lmfjyh.tar.bz2,100000,false,tbz2,false,download entry tarball +1993,lmfjyh,1993_lmfjyh.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1993,lmfjyh,index.html,2000000000,false,html,false,this web page 1993,lmfjyh,README.md,4294967295,true,markdown,true,markdown source for this web page 1993,lmfjyh,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -920,7 +920,7 @@ 1993,plummer,plummer.orig.c,50,false,c,true,original source 1993,plummer,try.alt.sh,100,true,shellscript,true,how to run alternative code 1993,plummer,try.sh,100,true,shellscript,true,how to run -1993,plummer,1993_plummer.tar.bz2,100000,false,tbz2,false,download entry tarball +1993,plummer,1993_plummer.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1993,plummer,index.html,2000000000,false,html,false,this web page 1993,plummer,README.md,4294967295,true,markdown,true,markdown source for this web page 1993,plummer,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -936,7 +936,7 @@ 1993,rince,rince.data2,100,true,CABBAGE,true,CABBAGE data file 1993,rince,rince.data3,100,true,CABBAGE,true,CABBAGE data file 1993,rince,rince.data4,100,true,CABBAGE,true,CABBAGE data file -1993,rince,1993_rince.tar.bz2,100000,false,tbz2,false,download entry tarball +1993,rince,1993_rince.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1993,rince,index.html,2000000000,false,html,false,this web page 1993,rince,README.md,4294967295,true,markdown,true,markdown source for this web page 1993,rince,design.md,4294967295,true,markdown,true,markdown source for design.html @@ -947,7 +947,7 @@ 1993,schnitzi,Makefile,30,true,makefile,true,entry Makefile 1993,schnitzi,schnitzi.orig.c,50,true,c,true,original source 1993,schnitzi,schnitzi.info,100,true,text,true,some interesting statements -1993,schnitzi,1993_schnitzi.tar.bz2,100000,false,tbz2,false,download entry tarball +1993,schnitzi,1993_schnitzi.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1993,schnitzi,index.html,2000000000,false,html,false,this web page 1993,schnitzi,README.md,4294967295,true,markdown,true,markdown source for this web page 1993,schnitzi,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -958,7 +958,7 @@ 1993,vanb,vanb.alt.c,40,true,c,true,alternative source 1993,vanb,vanb.orig.c,50,true,c,true,original source 1993,vanb,try.sh,100,true,shellscript,true,how to run -1993,vanb,1993_vanb.tar.bz2,100000,false,tbz2,false,download entry tarball +1993,vanb,1993_vanb.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1993,vanb,index.html,2000000000,false,html,false,this web page 1993,vanb,README.md,4294967295,true,markdown,true,markdown source for this web page 1993,vanb,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -967,7 +967,7 @@ 1994,dodsond1,dodsond1.c,20,true,c,true,entry source 1994,dodsond1,Makefile,30,true,makefile,true,entry Makefile 1994,dodsond1,dodsond1.orig.c,50,false,c,true,original source -1994,dodsond1,1994_dodsond1.tar.bz2,100000,false,tbz2,false,download entry tarball +1994,dodsond1,1994_dodsond1.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1994,dodsond1,index.html,2000000000,false,html,false,this web page 1994,dodsond1,README.md,4294967295,true,markdown,true,markdown source for this web page 1994,dodsond1,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -978,7 +978,7 @@ 1994,dodsond2,dodsond2.alt.c,40,true,c,true,alternative source 1994,dodsond2,dodsond2.orig.c,50,false,c,true,original source 1994,dodsond2,dodsond2.gz,150,true,gzip,false,original source in gzip form -1994,dodsond2,1994_dodsond2.tar.bz2,100000,false,tbz2,false,download entry tarball +1994,dodsond2,1994_dodsond2.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1994,dodsond2,index.html,2000000000,false,html,false,this web page 1994,dodsond2,README.md,4294967295,true,markdown,true,markdown source for this web page 1994,dodsond2,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -993,7 +993,7 @@ 1994,horton,try.sh,100,true,shellscript,true,how to run 1994,horton,login_sept92-pp28-31.pdf,125,true,pdf,false,login article on graphics for dumb terminals 1994,horton,gtface.data,150,true,text,true,data for gtfsace -1994,horton,1994_horton.tar.bz2,100000,false,tbz2,false,download entry tarball +1994,horton,1994_horton.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1994,horton,index.html,2000000000,false,html,false,this web page 1994,horton,README.md,4294967295,true,markdown,true,markdown source for this web page 1994,horton,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1003,7 +1003,7 @@ 1994,imc,Makefile,30,true,makefile,true,entry Makefile 1994,imc,imc.orig.c,50,false,c,true,original source 1994,imc,try.sh,100,true,shellscript,true,how to run -1994,imc,1994_imc.tar.bz2,100000,false,tbz2,false,download entry tarball +1994,imc,1994_imc.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1994,imc,index.html,2000000000,false,html,false,this web page 1994,imc,README.md,4294967295,true,markdown,true,markdown source for this web page 1994,imc,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1013,7 +1013,7 @@ 1994,ldb,Makefile,30,true,makefile,true,entry Makefile 1994,ldb,ldb.orig.c,50,false,c,true,original source 1994,ldb,try.sh,100,true,shellscript,true,how to run -1994,ldb,1994_ldb.tar.bz2,100000,false,tbz2,false,download entry tarball +1994,ldb,1994_ldb.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1994,ldb,index.html,2000000000,false,html,false,this web page 1994,ldb,README.md,4294967295,true,markdown,true,markdown source for this web page 1994,ldb,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1027,7 +1027,7 @@ 1994,schnitzi,try.alt.sh,100,true,shellscript,true,how to run alternative code 1994,schnitzi,try.sh,100,true,shellscript,true,how to run 1994,schnitzi,try.txt,100,true,text,true,input data for try.sh -1994,schnitzi,1994_schnitzi.tar.bz2,100000,false,tbz2,false,download entry tarball +1994,schnitzi,1994_schnitzi.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1994,schnitzi,index.html,2000000000,false,html,false,this web page 1994,schnitzi,README.md,4294967295,true,markdown,true,markdown source for this web page 1994,schnitzi,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1037,7 +1037,7 @@ 1994,shapiro,Makefile,30,true,makefile,true,entry Makefile 1994,shapiro,shapiro.orig.c,50,true,c,true,original source 1994,shapiro,shapiro.html,100,false,html,false,author hints -1994,shapiro,1994_shapiro.tar.bz2,100000,false,tbz2,false,download entry tarball +1994,shapiro,1994_shapiro.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1994,shapiro,index.html,2000000000,false,html,false,this web page 1994,shapiro,README.md,4294967295,true,markdown,true,markdown source for this web page 1994,shapiro,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1048,7 +1048,7 @@ 1994,smr,Makefile,30,true,makefile,true,entry Makefile 1994,smr,smr.orig.c,50,true,c,true,original source 1994,smr,try.sh,100,true,shellscript,true,how to run -1994,smr,1994_smr.tar.bz2,100000,false,tbz2,false,download entry tarball +1994,smr,1994_smr.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1994,smr,index.html,2000000000,false,html,false,this web page 1994,smr,README.md,4294967295,true,markdown,true,markdown source for this web page 1994,smr,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1064,7 +1064,7 @@ 1994,tvr,try.color.sh,100,true,shellscript,true,demonstrate alt code in colour mode 1994,tvr,tvr.bw,150,true,text,true,black and white 1994,tvr,tvr.color,150,true,text,true,RGB values -1994,tvr,1994_tvr.tar.bz2,100000,false,tbz2,false,download entry tarball +1994,tvr,1994_tvr.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1994,tvr,index.html,2000000000,false,html,false,this web page 1994,tvr,README.md,4294967295,true,markdown,true,markdown source for this web page 1994,tvr,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1075,7 +1075,7 @@ 1994,weisberg,weisberg.orig.c,50,true,c,true,original source 1994,weisberg,primes.sh,100,true,shellscript,true,feed primes to the program 1994,weisberg,try.sh,100,true,shellscript,true,how to run -1994,weisberg,1994_weisberg.tar.bz2,100000,false,tbz2,false,download entry tarball +1994,weisberg,1994_weisberg.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1994,weisberg,index.html,2000000000,false,html,false,this web page 1994,weisberg,README.md,4294967295,true,markdown,true,markdown source for this web page 1994,weisberg,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1087,7 +1087,7 @@ 1994,westley,westley.orig.c,50,true,c,true,original source 1994,westley,try.alt.sh,100,true,shellscript,true,how to run alternative code 1994,westley,try.sh,100,true,shellscript,true,how to run -1994,westley,1994_westley.tar.bz2,100000,false,tbz2,false,download entry tarball +1994,westley,1994_westley.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1994,westley,index.html,2000000000,false,html,false,this web page 1994,westley,README.md,4294967295,true,markdown,true,markdown source for this web page 1994,westley,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1097,7 +1097,7 @@ 1995,cdua,Makefile,30,true,makefile,true,entry Makefile 1995,cdua,cdua.alt.c,40,true,c,true,alternative source 1995,cdua,cdua.orig.c,50,false,c,true,original source -1995,cdua,1995_cdua.tar.bz2,100000,false,tbz2,false,download entry tarball +1995,cdua,1995_cdua.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1995,cdua,index.html,2000000000,false,html,false,this web page 1995,cdua,README.md,4294967295,true,markdown,true,markdown source for this web page 1995,cdua,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1108,7 +1108,7 @@ 1995,dodsond1,dodsond1.orig.c,50,false,c,true,original source 1995,dodsond1,try.sh,100,true,shellscript,true,how to run 1995,dodsond1,try.this.txt,100,true,text,true,sample input -1995,dodsond1,1995_dodsond1.tar.bz2,100000,false,tbz2,false,download entry tarball +1995,dodsond1,1995_dodsond1.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1995,dodsond1,index.html,2000000000,false,html,false,this web page 1995,dodsond1,README.md,4294967295,true,markdown,true,markdown source for this web page 1995,dodsond1,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1117,7 +1117,7 @@ 1995,dodsond2,dodsond2.c,20,true,c,true,entry source 1995,dodsond2,Makefile,30,true,makefile,true,entry Makefile 1995,dodsond2,dodsond2.orig.c,50,false,c,true,original source -1995,dodsond2,1995_dodsond2.tar.bz2,100000,false,tbz2,false,download entry tarball +1995,dodsond2,1995_dodsond2.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1995,dodsond2,index.html,2000000000,false,html,false,this web page 1995,dodsond2,README.md,4294967295,true,markdown,true,markdown source for this web page 1995,dodsond2,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1129,7 +1129,7 @@ 1995,esde,esde.data,100,true,text,true,example file argument 1995,esde,esde.data2,100,true,text,true,example file argument 1995,esde,try.sh,100,true,shellscript,true,how to run -1995,esde,1995_esde.tar.bz2,100000,false,tbz2,false,download entry tarball +1995,esde,1995_esde.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1995,esde,index.html,2000000000,false,html,false,this web page 1995,esde,README.md,4294967295,true,markdown,true,markdown source for this web page 1995,esde,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1143,7 +1143,7 @@ 1995,garry,try.alt.sh,100,true,shellscript,true,how to run alternative code 1995,garry,try.sh,100,true,shellscript,true,how to run 1995,garry,garry.fmt.c,150,true,c,true,defocused source code -1995,garry,1995_garry.tar.bz2,100000,false,tbz2,false,download entry tarball +1995,garry,1995_garry.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1995,garry,index.html,2000000000,false,html,false,this web page 1995,garry,README.md,4294967295,true,markdown,true,markdown source for this web page 1995,garry,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1153,7 +1153,7 @@ 1995,heathbar,Makefile,30,true,makefile,true,entry Makefile 1995,heathbar,heathbar.orig.c,50,false,c,true,original source 1995,heathbar,try.sh,100,true,shellscript,true,how to run -1995,heathbar,1995_heathbar.tar.bz2,100000,false,tbz2,false,download entry tarball +1995,heathbar,1995_heathbar.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1995,heathbar,index.html,2000000000,false,html,false,this web page 1995,heathbar,README.md,4294967295,true,markdown,true,markdown source for this web page 1995,heathbar,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1164,7 +1164,7 @@ 1995,leo,leo.orig.c,50,false,c,true,original source 1995,leo,spoiler1.html,100,false,html,false,spoiler document 1995,leo,try.sh,100,true,shell script,true,how to run -1995,leo,1995_leo.tar.bz2,100000,false,tbz2,false,download entry tarball +1995,leo,1995_leo.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1995,leo,index.html,2000000000,false,html,false,this web page 1995,leo,README.md,4294967295,true,markdown,true,markdown source for this web page 1995,leo,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1174,7 +1174,7 @@ 1995,makarios,makarios.c,20,true,c,true,entry source 1995,makarios,Makefile,30,true,makefile,true,entry Makefile 1995,makarios,makarios.orig.c,50,false,c,true,original source -1995,makarios,1995_makarios.tar.bz2,100000,false,tbz2,false,download entry tarball +1995,makarios,1995_makarios.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1995,makarios,index.html,2000000000,false,html,false,this web page 1995,makarios,README.md,4294967295,true,markdown,true,markdown source for this web page 1995,makarios,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1184,7 +1184,7 @@ 1995,savastio,Makefile,30,true,makefile,true,entry Makefile 1995,savastio,savastio.orig.c,50,true,c,true,original source 1995,savastio,try.sh,100,true,shellscript,true,how to run -1995,savastio,1995_savastio.tar.bz2,100000,false,tbz2,false,download entry tarball +1995,savastio,1995_savastio.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1995,savastio,index.html,2000000000,false,html,false,this web page 1995,savastio,README.md,4294967295,true,markdown,true,markdown source for this web page 1995,savastio,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1194,7 +1194,7 @@ 1995,schnitzi,Makefile,30,true,makefile,true,entry Makefile 1995,schnitzi,schnitzi.orig.c,50,true,c,true,original source 1995,schnitzi,try.sh,100,true,shellscript,true,how to run -1995,schnitzi,1995_schnitzi.tar.bz2,100000,false,tbz2,false,download entry tarball +1995,schnitzi,1995_schnitzi.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1995,schnitzi,index.html,2000000000,false,html,false,this web page 1995,schnitzi,README.md,4294967295,true,markdown,true,markdown source for this web page 1995,schnitzi,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1203,7 +1203,7 @@ 1995,spinellis,spinellis.c,20,true,c,true,entry source 1995,spinellis,Makefile,30,true,makefile,true,entry Makefile 1995,spinellis,spinellis.orig.c,50,true,c,true,original source -1995,spinellis,1995_spinellis.tar.bz2,100000,false,tbz2,false,download entry tarball +1995,spinellis,1995_spinellis.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1995,spinellis,index.html,2000000000,false,html,false,this web page 1995,spinellis,README.md,4294967295,true,markdown,true,markdown source for this web page 1995,spinellis,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1214,7 +1214,7 @@ 1995,vanschnitz,vanschnitz.alt.c,40,true,c,true,alternative source 1995,vanschnitz,vanschnitz.orig.c,50,true,c,true,original source 1995,vanschnitz,try.sh,100,true,shellscript,true,how to run -1995,vanschnitz,1995_vanschnitz.tar.bz2,100000,false,tbz2,false,download entry tarball +1995,vanschnitz,1995_vanschnitz.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1995,vanschnitz,index.html,2000000000,false,html,false,this web page 1995,vanschnitz,README.md,4294967295,true,markdown,true,markdown source for this web page 1995,vanschnitz,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1227,7 +1227,7 @@ 1996,august,parse.oc,100,true,oc,true,oc source 1996,august,test.oc,100,true,oc,true,oc source 1996,august,try.sh,100,true,shellscript,true,how to run -1996,august,1996_august.tar.bz2,100000,false,tbz2,false,download entry tarball +1996,august,1996_august.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1996,august,index.html,2000000000,false,html,false,this web page 1996,august,README.md,4294967295,true,markdown,true,markdown source for this web page 1996,august,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1237,7 +1237,7 @@ 1996,dalbec,Makefile,30,true,makefile,true,entry Makefile 1996,dalbec,dalbec.orig.c,50,false,c,true,original source 1996,dalbec,try.sh,100,true,shellscript,true,how to run -1996,dalbec,1996_dalbec.tar.bz2,100000,false,tbz2,false,download entry tarball +1996,dalbec,1996_dalbec.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1996,dalbec,index.html,2000000000,false,html,false,this web page 1996,dalbec,README.md,4294967295,true,markdown,true,markdown source for this web page 1996,dalbec,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1247,7 +1247,7 @@ 1996,eldby,Makefile,30,true,makefile,true,entry Makefile 1996,eldby,eldby.alt.c,40,true,c,true,alternative source 1996,eldby,eldby.orig.c,50,false,c,true,original source -1996,eldby,1996_eldby.tar.bz2,100000,false,tbz2,false,download entry tarball +1996,eldby,1996_eldby.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1996,eldby,index.html,2000000000,false,html,false,this web page 1996,eldby,README.md,4294967295,true,markdown,true,markdown source for this web page 1996,eldby,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1257,7 +1257,7 @@ 1996,gandalf,Makefile,30,true,makefile,true,entry Makefile 1996,gandalf,gandalf.orig.c,50,false,c,true,original source 1996,gandalf,try.sh,100,true,shellscript,true,how to run -1996,gandalf,1996_gandalf.tar.bz2,100000,false,tbz2,false,download entry tarball +1996,gandalf,1996_gandalf.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1996,gandalf,index.html,2000000000,false,html,false,this web page 1996,gandalf,README.md,4294967295,true,markdown,true,markdown source for this web page 1996,gandalf,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1267,7 +1267,7 @@ 1996,huffman,Makefile,30,true,makefile,true,entry Makefile 1996,huffman,huffman.orig.c,50,false,c,true,original source 1996,huffman,try.sh,100,true,shellscript,true,how to run -1996,huffman,1996_huffman.tar.bz2,100000,false,tbz2,false,download entry tarball +1996,huffman,1996_huffman.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1996,huffman,index.html,2000000000,false,html,false,this web page 1996,huffman,README.md,4294967295,true,markdown,true,markdown source for this web page 1996,huffman,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1276,7 +1276,7 @@ 1996,jonth,jonth.c,20,true,c,true,entry source 1996,jonth,Makefile,30,true,makefile,true,entry Makefile 1996,jonth,jonth.orig.c,50,false,c,true,original source -1996,jonth,1996_jonth.tar.bz2,100000,false,tbz2,false,download entry tarball +1996,jonth,1996_jonth.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1996,jonth,index.html,2000000000,false,html,false,this web page 1996,jonth,README.md,4294967295,true,markdown,true,markdown source for this web page 1996,jonth,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1286,7 +1286,7 @@ 1996,rcm,Makefile,30,true,makefile,true,entry Makefile 1996,rcm,rcm.orig.c,50,true,c,true,original source 1996,rcm,try.sh,100,true,shellscript,true,how to run -1996,rcm,1996_rcm.tar.bz2,100000,false,tbz2,false,download entry tarball +1996,rcm,1996_rcm.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1996,rcm,index.html,2000000000,false,html,false,this web page 1996,rcm,README.md,4294967295,true,markdown,true,markdown source for this web page 1996,rcm,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1299,7 +1299,7 @@ 1996,schweikh1,schweikh1.orig.c,50,true,c,true,original source 1996,schweikh1,errno.h,100,true,c,true,declare errno as an extern int 1996,schweikh1,try.sh,100,true,shellscript,true,how to run -1996,schweikh1,1996_schweikh1.tar.bz2,100000,false,tbz2,false,download entry tarball +1996,schweikh1,1996_schweikh1.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1996,schweikh1,index.html,2000000000,false,html,false,this web page 1996,schweikh1,README.md,4294967295,true,markdown,true,markdown source for this web page 1996,schweikh1,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1311,7 +1311,7 @@ 1996,schweikh2,hunni.c,100,true,c,true,original slightly obfuscated source 1996,schweikh2,hunni.pl,100,true,perl,true,perl script to obfuscate c 1996,schweikh2,try.sh,100,true,shellscript,true,how to run -1996,schweikh2,1996_schweikh2.tar.bz2,100000,false,tbz2,false,download entry tarball +1996,schweikh2,1996_schweikh2.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1996,schweikh2,index.html,2000000000,false,html,false,this web page 1996,schweikh2,README.md,4294967295,true,markdown,true,markdown source for this web page 1996,schweikh2,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1321,7 +1321,7 @@ 1996,schweikh3,Makefile,30,true,makefile,true,entry Makefile 1996,schweikh3,schweikh3.orig.c,50,true,c,true,original source 1996,schweikh3,schweikh3.info,100,true,text,true,example output from various systems -1996,schweikh3,1996_schweikh3.tar.bz2,100000,false,tbz2,false,download entry tarball +1996,schweikh3,1996_schweikh3.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1996,schweikh3,index.html,2000000000,false,html,false,this web page 1996,schweikh3,README.md,4294967295,true,markdown,true,markdown source for this web page 1996,schweikh3,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1336,7 +1336,7 @@ 1996,westley,clock3.sh,100,true,shellscript,true,how to run 1996,westley,try.alt.sh,100,true,shellscript,true,how to run alternative code 1996,westley,try.sh,100,true,shellscript,true,how to run -1996,westley,1996_westley.tar.bz2,100000,false,tbz2,false,download entry tarball +1996,westley,1996_westley.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1996,westley,index.html,2000000000,false,html,false,this web page 1996,westley,README.md,4294967295,true,markdown,true,markdown source for this web page 1996,westley,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1352,7 +1352,7 @@ 1998,banks,pittsburgh.sc,150,true,text,true,scenery file 1998,banks,pyramids.sc,150,true,text,true,scenery file 1998,banks,river.sc,150,true,text,true,scenery file -1998,banks,1998_banks.tar.bz2,100000,false,tbz2,false,download entry tarball +1998,banks,1998_banks.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1998,banks,index.html,2000000000,false,html,false,this web page 1998,banks,README.md,4294967295,true,markdown,true,markdown source for this web page 1998,banks,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1362,7 +1362,7 @@ 1998,bas1,Makefile,30,true,makefile,true,entry Makefile 1998,bas1,bas1.orig.c,50,false,c,true,original source 1998,bas1,bas1.sh,100,true,shellscript,true,how to run bas1 -1998,bas1,1998_bas1.tar.bz2,100000,false,tbz2,false,download entry tarball +1998,bas1,1998_bas1.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1998,bas1,index.html,2000000000,false,html,false,this web page 1998,bas1,README.md,4294967295,true,markdown,true,markdown source for this web page 1998,bas1,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1372,7 +1372,7 @@ 1998,bas2,Makefile,30,true,makefile,true,entry Makefile 1998,bas2,bas2.orig.c,50,false,c,true,original source 1998,bas2,try.sh,100,true,shellscript,true,how to run -1998,bas2,1998_bas2.tar.bz2,100000,false,tbz2,false,download entry tarball +1998,bas2,1998_bas2.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1998,bas2,index.html,2000000000,false,html,false,this web page 1998,bas2,README.md,4294967295,true,markdown,true,markdown source for this web page 1998,bas2,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1387,7 +1387,7 @@ 1998,chaos,ioccc.data,150,true,text,true,data file 1998,chaos,pyramid.data,150,true,text,true,data file 1998,chaos,xwing.data,150,true,text,true,data file -1998,chaos,1998_chaos.tar.bz2,100000,false,tbz2,false,download entry tarball +1998,chaos,1998_chaos.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1998,chaos,index.html,2000000000,false,html,false,this web page 1998,chaos,README.md,4294967295,true,markdown,true,markdown source for this web page 1998,chaos,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1397,7 +1397,7 @@ 1998,df,Makefile,30,true,makefile,true,entry Makefile 1998,df,df.orig.c,50,false,c,true,original source 1998,df,try.sh,100,true,shellscript,true,how to run -1998,df,1998_df.tar.bz2,100000,false,tbz2,false,download entry tarball +1998,df,1998_df.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1998,df,index.html,2000000000,false,html,false,this web page 1998,df,README.md,4294967295,true,markdown,true,markdown source for this web page 1998,df,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1411,7 +1411,7 @@ 1998,dlowe,pootify.sh,100,true,shellscript,true,pootify tool 1998,dlowe,try.alt.sh,100,true,shellscript,true,how to run alternative code 1998,dlowe,try.sh,100,true,shellscript,true,how to run -1998,dlowe,1998_dlowe.tar.bz2,100000,false,tbz2,false,download entry tarball +1998,dlowe,1998_dlowe.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1998,dlowe,index.html,2000000000,false,html,false,this web page 1998,dlowe,README.md,4294967295,true,markdown,true,markdown source for this web page 1998,dlowe,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1421,7 +1421,7 @@ 1998,dloweneil,Makefile,30,true,makefile,true,entry Makefile 1998,dloweneil,dloweneil.alt.c,40,true,c,true,alternative source 1998,dloweneil,dloweneil.orig.c,50,false,c,true,original source -1998,dloweneil,1998_dloweneil.tar.bz2,100000,false,tbz2,false,download entry tarball +1998,dloweneil,1998_dloweneil.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1998,dloweneil,index.html,2000000000,false,html,false,this web page 1998,dloweneil,README.md,4294967295,true,markdown,true,markdown source for this web page 1998,dloweneil,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1432,7 +1432,7 @@ 1998,dorssel,dorssel.orig.c,50,false,c,true,original source 1998,dorssel,dorssel.html,100,false,html,false,author description of entry 1998,dorssel,try.sh,100,true,shellscript,true,how to run -1998,dorssel,1998_dorssel.tar.bz2,100000,false,tbz2,false,download entry tarball +1998,dorssel,1998_dorssel.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1998,dorssel,index.html,2000000000,false,html,false,this web page 1998,dorssel,README.md,4294967295,true,markdown,true,markdown source for this web page 1998,dorssel,dorssel.md,4294967295,true,markdown,true,markdown source for dorssel.html @@ -1444,7 +1444,7 @@ 1998,fanf,fanf.orig.c,50,false,c,true,original source 1998,fanf,try.sh,100,true,shellscript,true,how to run 1998,fanf,fanf.lambda,150,true,text,true,lambda expressions -1998,fanf,1998_fanf.tar.bz2,100000,false,tbz2,false,download entry tarball +1998,fanf,1998_fanf.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1998,fanf,index.html,2000000000,false,html,false,this web page 1998,fanf,README.md,4294967295,true,markdown,true,markdown source for this web page 1998,fanf,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1454,7 +1454,7 @@ 1998,schnitzi,Makefile,30,true,makefile,true,entry Makefile 1998,schnitzi,schnitzi.orig.c,50,true,c,true,original source 1998,schnitzi,try.sh,100,true,shellscript,true,how to run -1998,schnitzi,1998_schnitzi.tar.bz2,100000,false,tbz2,false,download entry tarball +1998,schnitzi,1998_schnitzi.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1998,schnitzi,index.html,2000000000,false,html,false,this web page 1998,schnitzi,README.md,4294967295,true,markdown,true,markdown source for this web page 1998,schnitzi,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1467,7 +1467,7 @@ 1998,schweikh1,charcount.pl,100,true,perl,true,character counter 1998,schweikh1,macos.html,100,false,html,false,work with macOS 1998,schweikh1,info,150,true,text,true,standards compliance -1998,schweikh1,1998_schweikh1.tar.bz2,100000,false,tbz2,false,download entry tarball +1998,schweikh1,1998_schweikh1.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1998,schweikh1,index.html,2000000000,false,html,false,this web page 1998,schweikh1,README.md,4294967295,true,markdown,true,markdown source for this web page 1998,schweikh1,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1478,7 +1478,7 @@ 1998,schweikh2,Makefile,30,true,makefile,true,entry Makefile 1998,schweikh2,schweikh2.orig.c,50,true,c,true,original source 1998,schweikh2,try.sh,100,true,shellscript,true,how to run -1998,schweikh2,1998_schweikh2.tar.bz2,100000,false,tbz2,false,download entry tarball +1998,schweikh2,1998_schweikh2.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1998,schweikh2,index.html,2000000000,false,html,false,this web page 1998,schweikh2,README.md,4294967295,true,markdown,true,markdown source for this web page 1998,schweikh2,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1491,7 +1491,7 @@ 1998,schweikh3,samefile.1,100,true,man,true,samefile man page 1998,schweikh3,samefile.1.dupe,100,true,man,true,samefile man page 1998,schweikh3,try.sh,100,true,shellscript,true,how to run -1998,schweikh3,1998_schweikh3.tar.bz2,100000,false,tbz2,false,download entry tarball +1998,schweikh3,1998_schweikh3.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1998,schweikh3,index.html,2000000000,false,html,false,this web page 1998,schweikh3,README.md,4294967295,true,markdown,true,markdown source for this web page 1998,schweikh3,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1502,7 +1502,7 @@ 1998,tomtorfs,tomtorfs.orig.c,50,true,c,true,original source 1998,tomtorfs,try.sh,100,true,shellscript,true,how to run 1998,tomtorfs,crc.txt,150,true,text,true,painless guide to CRC algorithms -1998,tomtorfs,1998_tomtorfs.tar.bz2,100000,false,tbz2,false,download entry tarball +1998,tomtorfs,1998_tomtorfs.tar.bz2,1415926535,false,tbz2,false,download entry tarball 1998,tomtorfs,index.html,2000000000,false,html,false,this web page 1998,tomtorfs,README.md,4294967295,true,markdown,true,markdown source for this web page 1998,tomtorfs,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1512,7 +1512,7 @@ 2000,anderson,Makefile,30,true,makefile,true,entry Makefile 2000,anderson,anderson.orig.c,50,false,c,true,original source 2000,anderson,try.sh,100,true,shellscript,true,how to run -2000,anderson,2000_anderson.tar.bz2,100000,false,tbz2,false,download entry tarball +2000,anderson,2000_anderson.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2000,anderson,index.html,2000000000,false,html,false,this web page 2000,anderson,README.md,4294967295,true,markdown,true,markdown source for this web page 2000,anderson,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1521,7 +1521,7 @@ 2000,bellard,bellard.c,20,true,c,true,entry source 2000,bellard,Makefile,30,true,makefile,true,entry Makefile 2000,bellard,bellard.orig.c,50,false,c,true,original source -2000,bellard,2000_bellard.tar.bz2,100000,false,tbz2,false,download entry tarball +2000,bellard,2000_bellard.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2000,bellard,index.html,2000000000,false,html,false,this web page 2000,bellard,README.md,4294967295,true,markdown,true,markdown source for this web page 2000,bellard,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1534,7 +1534,7 @@ 2000,bmeyer,michael.pgm,100,true,image,false,author’s Godchild and Nephew 2000,bmeyer,try.sh,100,true,shellscript,true,how to run 2000,bmeyer,lenna.glic,150,true,binary,false,P10 scan of 1972 Playboy centerfold -2000,bmeyer,2000_bmeyer.tar.bz2,100000,false,tbz2,false,download entry tarball +2000,bmeyer,2000_bmeyer.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2000,bmeyer,index.html,2000000000,false,html,false,this web page 2000,bmeyer,README.md,4294967295,true,markdown,true,markdown source for this web page 2000,bmeyer,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1544,7 +1544,7 @@ 2000,briddlebane,Makefile,30,true,makefile,true,entry Makefile 2000,briddlebane,briddlebane.orig.c,50,false,c,true,original source 2000,briddlebane,try.sh,100,true,shellscript,true,how to run -2000,briddlebane,2000_briddlebane.tar.bz2,100000,false,tbz2,false,download entry tarball +2000,briddlebane,2000_briddlebane.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2000,briddlebane,index.html,2000000000,false,html,false,this web page 2000,briddlebane,README.md,4294967295,true,markdown,true,markdown source for this web page 2000,briddlebane,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1554,7 +1554,7 @@ 2000,dhyang,Makefile,30,true,makefile,true,entry Makefile 2000,dhyang,dhyang.orig.c,50,false,c,true,original source 2000,dhyang,try.sh,100,true,shellscript,true,how to run -2000,dhyang,2000_dhyang.tar.bz2,100000,false,tbz2,false,download entry tarball +2000,dhyang,2000_dhyang.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2000,dhyang,index.html,2000000000,false,html,false,this web page 2000,dhyang,README.md,4294967295,true,markdown,true,markdown source for this web page 2000,dhyang,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1564,7 +1564,7 @@ 2000,dlowe,Makefile,30,true,makefile,true,entry Makefile 2000,dlowe,dlowe.orig.c,50,false,c,true,original source 2000,dlowe,try.sh,100,true,shellscript,true,how to run -2000,dlowe,2000_dlowe.tar.bz2,100000,false,tbz2,false,download entry tarball +2000,dlowe,2000_dlowe.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2000,dlowe,index.html,2000000000,false,html,false,this web page 2000,dlowe,README.md,4294967295,true,markdown,true,markdown source for this web page 2000,dlowe,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1573,7 +1573,7 @@ 2000,jarijyrki,jarijyrki.c,20,true,c,true,entry source 2000,jarijyrki,Makefile,30,true,makefile,true,entry Makefile 2000,jarijyrki,jarijyrki.orig.c,50,false,c,true,original source -2000,jarijyrki,2000_jarijyrki.tar.bz2,100000,false,tbz2,false,download entry tarball +2000,jarijyrki,2000_jarijyrki.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2000,jarijyrki,index.html,2000000000,false,html,false,this web page 2000,jarijyrki,README.md,4294967295,true,markdown,true,markdown source for this web page 2000,jarijyrki,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1586,7 +1586,7 @@ 2000,natori,natori.orig.c,50,false,c,true,original source 2000,natori,try.alt.sh,100,true,shellscript,true,how to run alternative code 2000,natori,try.sh,100,true,shellscript,true,how to run -2000,natori,2000_natori.tar.bz2,100000,false,tbz2,false,download entry tarball +2000,natori,2000_natori.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2000,natori,index.html,2000000000,false,html,false,this web page 2000,natori,README.md,4294967295,true,markdown,true,markdown source for this web page 2000,natori,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1596,7 +1596,7 @@ 2000,primenum,Makefile,30,true,makefile,true,entry Makefile 2000,primenum,primenum.orig.c,50,false,c,true,original source 2000,primenum,try.sh,100,true,shellscript,true,how to run -2000,primenum,2000_primenum.tar.bz2,100000,false,tbz2,false,download entry tarball +2000,primenum,2000_primenum.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2000,primenum,index.html,2000000000,false,html,false,this web page 2000,primenum,README.md,4294967295,true,markdown,true,markdown source for this web page 2000,primenum,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1607,7 +1607,7 @@ 2000,rince,rince.orig.c,50,true,c,true,original source 2000,rince,try.sh,100,true,shellscript,true,how to run 2000,rince,dmy2jd.c,150,true,c,true,supplementary program source -2000,rince,2000_rince.tar.bz2,100000,false,tbz2,false,download entry tarball +2000,rince,2000_rince.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2000,rince,index.html,2000000000,false,html,false,this web page 2000,rince,README.md,4294967295,true,markdown,true,markdown source for this web page 2000,rince,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1616,7 +1616,7 @@ 2000,robison,robison.c,20,true,c,true,entry source 2000,robison,Makefile,30,true,makefile,true,entry Makefile 2000,robison,robison.orig.c,50,true,c,true,original source -2000,robison,2000_robison.tar.bz2,100000,false,tbz2,false,download entry tarball +2000,robison,2000_robison.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2000,robison,index.html,2000000000,false,html,false,this web page 2000,robison,README.md,4294967295,true,markdown,true,markdown source for this web page 2000,robison,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1627,7 +1627,7 @@ 2000,schneiderwent,schneiderwent.orig.c,50,true,c,true,original source 2000,schneiderwent,try.sh,100,true,shellscript,true,how to run 2000,schneiderwent,schneiderwent.data,150,true,binary,true,table lookups values -2000,schneiderwent,2000_schneiderwent.tar.bz2,100000,false,tbz2,false,download entry tarball +2000,schneiderwent,2000_schneiderwent.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2000,schneiderwent,index.html,2000000000,false,html,false,this web page 2000,schneiderwent,README.md,4294967295,true,markdown,true,markdown source for this web page 2000,schneiderwent,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1637,7 +1637,7 @@ 2000,thadgavin,Makefile,30,true,makefile,true,entry Makefile 2000,thadgavin,thadgavin.alt.c,40,true,c,true,alternative source 2000,thadgavin,thadgavin.orig.c,50,true,c,true,original source -2000,thadgavin,2000_thadgavin.tar.bz2,100000,false,tbz2,false,download entry tarball +2000,thadgavin,2000_thadgavin.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2000,thadgavin,index.html,2000000000,false,html,false,this web page 2000,thadgavin,README.md,4294967295,true,markdown,true,markdown source for this web page 2000,thadgavin,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1650,7 +1650,7 @@ 2000,tomx,try.alt.sh,100,true,shellscript,true,how to run alternative code 2000,tomx,try.sh,100,true,shellscript,true,how to run 2000,tomx,mkentry.c,150,true,c,true,IOCCC mkentry source from 1998 -2000,tomx,2000_tomx.tar.bz2,100000,false,tbz2,false,download entry tarball +2000,tomx,2000_tomx.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2000,tomx,index.html,2000000000,false,html,false,this web page 2000,tomx,README.md,4294967295,true,markdown,true,markdown source for this web page 2000,tomx,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1662,7 +1662,7 @@ 2001,anonymous,anonymous.bed.c,100,true,c,true,roll over song C source 2001,anonymous,anonymous.ten.c,100,true,c,true,green bottles song C source 2001,anonymous,try.sh,100,true,shellscript,true,how to run -2001,anonymous,2001_anonymous.tar.bz2,100000,false,tbz2,false,download entry tarball +2001,anonymous,2001_anonymous.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2001,anonymous,index.html,2000000000,false,html,false,this web page 2001,anonymous,README.md,4294967295,true,markdown,true,markdown source for this web page 2001,anonymous,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1673,7 +1673,7 @@ 2001,bellard,bellard.orig.c,50,false,c,true,original source 2001,bellard,bellard.otccex.c,100,true,c,true,example otcc source 2001,bellard,otccelf.c,100,true,c,true,another example otcc source -2001,bellard,2001_bellard.tar.bz2,100000,false,tbz2,false,download entry tarball +2001,bellard,2001_bellard.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2001,bellard,index.html,2000000000,false,html,false,this web page 2001,bellard,README.md,4294967295,true,markdown,true,markdown source for this web page 2001,bellard,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1683,7 +1683,7 @@ 2001,cheong,Makefile,30,true,makefile,true,entry Makefile 2001,cheong,cheong.orig.c,50,false,c,true,original source 2001,cheong,try.sh,100,true,shellscript,true,how to run -2001,cheong,2001_cheong.tar.bz2,100000,false,tbz2,false,download entry tarball +2001,cheong,2001_cheong.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2001,cheong,index.html,2000000000,false,html,false,this web page 2001,cheong,README.md,4294967295,true,markdown,true,markdown source for this web page 2001,cheong,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1693,7 +1693,7 @@ 2001,coupard,Makefile,30,true,makefile,true,entry Makefile 2001,coupard,coupard.orig.c,50,false,c,true,original source 2001,coupard,try.sh,100,true,shellscript,true,how to run -2001,coupard,2001_coupard.tar.bz2,100000,false,tbz2,false,download entry tarball +2001,coupard,2001_coupard.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2001,coupard,index.html,2000000000,false,html,false,this web page 2001,coupard,README.md,4294967295,true,markdown,true,markdown source for this web page 2001,coupard,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1703,7 +1703,7 @@ 2001,ctk,Makefile,30,true,makefile,true,entry Makefile 2001,ctk,ctk.alt.c,40,true,c,true,alternative source 2001,ctk,ctk.orig.c,50,false,c,true,original source -2001,ctk,2001_ctk.tar.bz2,100000,false,tbz2,false,download entry tarball +2001,ctk,2001_ctk.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2001,ctk,index.html,2000000000,false,html,false,this web page 2001,ctk,README.md,4294967295,true,markdown,true,markdown source for this web page 2001,ctk,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1713,7 +1713,7 @@ 2001,dgbeards,Makefile,30,true,makefile,true,entry Makefile 2001,dgbeards,dgbeards.alt.c,40,true,c,true,alternative source 2001,dgbeards,dgbeards.orig.c,50,false,c,true,original source -2001,dgbeards,2001_dgbeards.tar.bz2,100000,false,tbz2,false,download entry tarball +2001,dgbeards,2001_dgbeards.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2001,dgbeards,index.html,2000000000,false,html,false,this web page 2001,dgbeards,README.md,4294967295,true,markdown,true,markdown source for this web page 2001,dgbeards,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1727,7 +1727,7 @@ 2001,herrmann1,herrmann1.times2,100,true,c,true,turning program as c defines 2001,herrmann1,plus1.turing,100,true,c,true,turning program as c defines 2001,herrmann1,try.sh,100,true,shellscript,true,how to run -2001,herrmann1,2001_herrmann1.tar.bz2,100000,false,tbz2,false,download entry tarball +2001,herrmann1,2001_herrmann1.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2001,herrmann1,index.html,2000000000,false,html,false,this web page 2001,herrmann1,README.md,4294967295,true,markdown,true,markdown source for this web page 2001,herrmann1,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1740,7 +1740,7 @@ 2001,herrmann2,herrmann2.cup,100,true,text,true,sample input 2001,herrmann2,herrmann2.ioccc,100,true,text,true,sample input 2001,herrmann2,try.sh,100,true,shellscript,true,how to run -2001,herrmann2,2001_herrmann2.tar.bz2,100000,false,tbz2,false,download entry tarball +2001,herrmann2,2001_herrmann2.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2001,herrmann2,index.html,2000000000,false,html,false,this web page 2001,herrmann2,README.md,4294967295,true,markdown,true,markdown source for this web page 2001,herrmann2,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1749,7 +1749,7 @@ 2001,jason,jason.c,20,true,c,true,entry source 2001,jason,Makefile,30,true,makefile,true,entry Makefile 2001,jason,jason.orig.c,50,false,c,true,original source -2001,jason,2001_jason.tar.bz2,100000,false,tbz2,false,download entry tarball +2001,jason,2001_jason.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2001,jason,index.html,2000000000,false,html,false,this web page 2001,jason,README.md,4294967295,true,markdown,true,markdown source for this web page 2001,jason,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1759,7 +1759,7 @@ 2001,kev,Makefile,30,true,makefile,true,entry Makefile 2001,kev,kev.alt.c,40,true,c,true,alternative source 2001,kev,kev.orig.c,50,false,c,true,original source -2001,kev,2001_kev.tar.bz2,100000,false,tbz2,false,download entry tarball +2001,kev,2001_kev.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2001,kev,index.html,2000000000,false,html,false,this web page 2001,kev,README.md,4294967295,true,markdown,true,markdown source for this web page 2001,kev,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1769,7 +1769,7 @@ 2001,ollinger,Makefile,30,true,makefile,true,entry Makefile 2001,ollinger,ollinger.orig.c,50,false,c,true,original source 2001,ollinger,try.sh,100,true,shellscript,true,how to run -2001,ollinger,2001_ollinger.tar.bz2,100000,false,tbz2,false,download entry tarball +2001,ollinger,2001_ollinger.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2001,ollinger,index.html,2000000000,false,html,false,this web page 2001,ollinger,README.md,4294967295,true,markdown,true,markdown source for this web page 2001,ollinger,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1778,7 +1778,7 @@ 2001,rosten,rosten.c,20,true,c,true,entry source 2001,rosten,Makefile,30,true,makefile,true,entry Makefile 2001,rosten,rosten.orig.c,50,true,c,true,original source -2001,rosten,2001_rosten.tar.bz2,100000,false,tbz2,false,download entry tarball +2001,rosten,2001_rosten.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2001,rosten,index.html,2000000000,false,html,false,this web page 2001,rosten,README.md,4294967295,true,markdown,true,markdown source for this web page 2001,rosten,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1788,7 +1788,7 @@ 2001,schweikh,Makefile,30,true,makefile,true,entry Makefile 2001,schweikh,schweikh.orig.c,50,true,c,true,original source 2001,schweikh,try.sh,100,true,shellscript,true,how to run -2001,schweikh,2001_schweikh.tar.bz2,100000,false,tbz2,false,download entry tarball +2001,schweikh,2001_schweikh.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2001,schweikh,index.html,2000000000,false,html,false,this web page 2001,schweikh,README.md,4294967295,true,markdown,true,markdown source for this web page 2001,schweikh,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1799,7 +1799,7 @@ 2001,westley,westley.alt.c,40,true,c,true,alternative source 2001,westley,westley.orig.c,50,true,c,true,original source 2001,westley,try.sh,100,true,shellscript,true,how to run -2001,westley,2001_westley.tar.bz2,100000,false,tbz2,false,download entry tarball +2001,westley,2001_westley.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2001,westley,index.html,2000000000,false,html,false,this web page 2001,westley,README.md,4294967295,true,markdown,true,markdown source for this web page 2001,westley,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1808,7 +1808,7 @@ 2001,williams,williams.c,20,true,c,true,entry source 2001,williams,Makefile,30,true,makefile,true,entry Makefile 2001,williams,williams.orig.c,50,true,c,true,original source -2001,williams,2001_williams.tar.bz2,100000,false,tbz2,false,download entry tarball +2001,williams,2001_williams.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2001,williams,index.html,2000000000,false,html,false,this web page 2001,williams,README.md,4294967295,true,markdown,true,markdown source for this web page 2001,williams,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1818,7 +1818,7 @@ 2004,anonymous,Makefile,30,true,makefile,true,entry Makefile 2004,anonymous,anonymous.orig.c,50,false,c,true,original source 2004,anonymous,try.sh,100,true,shellscript,true,how to run -2004,anonymous,2004_anonymous.tar.bz2,100000,false,tbz2,false,download entry tarball +2004,anonymous,2004_anonymous.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2004,anonymous,index.html,2000000000,false,html,false,this web page 2004,anonymous,README.md,4294967295,true,markdown,true,markdown source for this web page 2004,anonymous,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1829,7 +1829,7 @@ 2004,arachnid,arachnid.alt.c,40,true,c,true,alternative source 2004,arachnid,arachnid.orig.c,50,false,c,true,original source 2004,arachnid,arachnid.txt,100,true,text,true,an alternate maze -2004,arachnid,2004_arachnid.tar.bz2,100000,false,tbz2,false,download entry tarball +2004,arachnid,2004_arachnid.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2004,arachnid,index.html,2000000000,false,html,false,this web page 2004,arachnid,README.md,4294967295,true,markdown,true,markdown source for this web page 2004,arachnid,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1838,7 +1838,7 @@ 2004,burley,burley.c,20,true,c,true,entry source 2004,burley,Makefile,30,true,makefile,true,entry Makefile 2004,burley,burley.orig.c,50,false,c,true,original source -2004,burley,2004_burley.tar.bz2,100000,false,tbz2,false,download entry tarball +2004,burley,2004_burley.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2004,burley,index.html,2000000000,false,html,false,this web page 2004,burley,README.md,4294967295,true,markdown,true,markdown source for this web page 2004,burley,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1850,7 +1850,7 @@ 2004,gavare,gavare.alt.c,40,true,c,true,alternative source 2004,gavare,gavare.orig.c,50,false,c,true,original source 2004,gavare,gavare.r3.c,100,true,c,true,ray tracer used during development -2004,gavare,2004_gavare.tar.bz2,100000,false,tbz2,false,download entry tarball +2004,gavare,2004_gavare.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2004,gavare,index.html,2000000000,false,html,false,this web page 2004,gavare,README.md,4294967295,true,markdown,true,markdown source for this web page 2004,gavare,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1866,7 +1866,7 @@ 2004,gavin,img/fs.tar,200,true,tarball,false,tar of root file system 2004,gavin,img/kernel,200,true,kernel,false,Linux kernel x86 boot executable zImage 2004,gavin,prim,200,true,binary,false,prime number printing program -2004,gavin,2004_gavin.tar.bz2,100000,false,tbz2,false,download entry tarball +2004,gavin,2004_gavin.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2004,gavin,index.html,2000000000,false,html,false,this web page 2004,gavin,README.md,4294967295,true,markdown,true,markdown source for this web page 2004,gavin,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1889,7 +1889,7 @@ 2004,hibachi,src/configure.in,200,true,shellscript,true,authconf declarations 2004,hibachi,src/hibachi-start.sh.in,200,true,shellscript,true,hibachi-start.sh declarations 2004,hibachi,src/localhost/CHANGES-SPOILER.TXT,200,true,text,true,Spoiler change log -2004,hibachi,2004_hibachi.tar.bz2,100000,false,tbz2,false,download entry tarball +2004,hibachi,2004_hibachi.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2004,hibachi,index.html,2000000000,false,html,false,this web page 2004,hibachi,README.md,4294967295,true,markdown,true,markdown source for this web page 2004,hibachi,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1924,7 +1924,7 @@ 2004,hoyle,Makefile,30,true,makefile,true,entry Makefile 2004,hoyle,hoyle.orig.c,50,false,c,true,original source 2004,hoyle,try.sh,100,true,shellscript,true,how to run -2004,hoyle,2004_hoyle.tar.bz2,100000,false,tbz2,false,download entry tarball +2004,hoyle,2004_hoyle.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2004,hoyle,index.html,2000000000,false,html,false,this web page 2004,hoyle,README.md,4294967295,true,markdown,true,markdown source for this web page 2004,hoyle,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1936,7 +1936,7 @@ 2004,jdalbec,jdalbec.orig.c,50,false,c,true,original source 2004,jdalbec,try.alt.sh,100,true,shellscript,true,how to run alternative code 2004,jdalbec,try.sh,100,true,shellscript,true,how to run -2004,jdalbec,2004_jdalbec.tar.bz2,100000,false,tbz2,false,download entry tarball +2004,jdalbec,2004_jdalbec.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2004,jdalbec,index.html,2000000000,false,html,false,this web page 2004,jdalbec,README.md,4294967295,true,markdown,true,markdown source for this web page 2004,jdalbec,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1961,7 +1961,7 @@ 2004,kopczynski,kopczynski-a,100,true,text,true,character to recognize 2004,kopczynski,kopczynski-a-rev,100,true,text,true,reverse character to recognize 2004,kopczynski,try.sh,100,true,shellscript,true,how to run -2004,kopczynski,2004_kopczynski.tar.bz2,100000,false,tbz2,false,download entry tarball +2004,kopczynski,2004_kopczynski.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2004,kopczynski,index.html,2000000000,false,html,false,this web page 2004,kopczynski,README.md,4294967295,true,markdown,true,markdown source for this web page 2004,kopczynski,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1972,7 +1972,7 @@ 2004,newbern,newbern.orig.c,50,false,c,true,original source 2004,newbern,newbern.dat,100,true,text,true,sample input 2004,newbern,try.sh,100,true,shellscript,true,how to run -2004,newbern,2004_newbern.tar.bz2,100000,false,tbz2,false,download entry tarball +2004,newbern,2004_newbern.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2004,newbern,index.html,2000000000,false,html,false,this web page 2004,newbern,README.md,4294967295,true,markdown,true,markdown source for this web page 2004,newbern,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1983,7 +1983,7 @@ 2004,omoikane,omoikane.orig.c,50,false,c,true,original source 2004,omoikane,omoikane.info,100,true,text,true,information about Rinia 2004,omoikane,try.sh,100,true,shellscript,true,how to run -2004,omoikane,2004_omoikane.tar.bz2,100000,false,tbz2,false,download entry tarball +2004,omoikane,2004_omoikane.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2004,omoikane,index.html,2000000000,false,html,false,this web page 2004,omoikane,README.md,4294967295,true,markdown,true,markdown source for this web page 2004,omoikane,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -1995,7 +1995,7 @@ 2004,schnitzi,schnitzi.inp0,100,true,text,true,example input 2004,schnitzi,schnitzi.inp1,100,true,text,true,example input 2004,schnitzi,try.sh,100,true,shellscript,true,how to run -2004,schnitzi,2004_schnitzi.tar.bz2,100000,false,tbz2,false,download entry tarball +2004,schnitzi,2004_schnitzi.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2004,schnitzi,index.html,2000000000,false,html,false,this web page 2004,schnitzi,README.md,4294967295,true,markdown,true,markdown source for this web page 2004,schnitzi,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2006,7 +2006,7 @@ 2004,sds,sds.orig.c,50,true,c,true,original source 2004,sds,try.sh,100,true,shellscript,true,how to run 2004,sds,README_sds.txt,200,true,test,true,sample data used by try.sh -2004,sds,2004_sds.tar.bz2,100000,false,tbz2,false,download entry tarball +2004,sds,2004_sds.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2004,sds,index.html,2000000000,false,html,false,this web page 2004,sds,README.md,4294967295,true,markdown,true,markdown source for this web page 2004,sds,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2015,7 +2015,7 @@ 2004,vik1,vik1.c,20,true,c,true,entry source 2004,vik1,Makefile,30,true,makefile,true,entry Makefile 2004,vik1,vik1.orig.c,50,true,c,true,original source -2004,vik1,2004_vik1.tar.bz2,100000,false,tbz2,false,download entry tarball +2004,vik1,2004_vik1.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2004,vik1,index.html,2000000000,false,html,false,this web page 2004,vik1,README.md,4294967295,true,markdown,true,markdown source for this web page 2004,vik1,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2026,7 +2026,7 @@ 2004,vik2,vik2.orig.c,50,true,c,true,original source 2004,vik2,vik2_1.c,100,true,c,true,include file for entry source 2004,vik2,vik2.possible.cat.death.c,100,true,c,true,include file for entry source -2004,vik2,2004_vik2.tar.bz2,100000,false,tbz2,false,download entry tarball +2004,vik2,2004_vik2.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2004,vik2,index.html,2000000000,false,html,false,this web page 2004,vik2,README.md,4294967295,true,markdown,true,markdown source for this web page 2004,vik2,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2047,7 +2047,7 @@ 2005,aidan,try.sh,100,true,shellscript,true,how to run 2005,aidan,wp.sudoku,100,true,text,true,Wikipedia sudoku puzzle 2005,aidan,test-su.perl,150,true,perl,true,test suite -2005,aidan,2005_aidan.tar.bz2,100000,false,tbz2,false,download entry tarball +2005,aidan,2005_aidan.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2005,aidan,index.html,2000000000,false,html,false,this web page 2005,aidan,README.md,4294967295,true,markdown,true,markdown source for this web page 2005,aidan,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2057,7 +2057,7 @@ 2005,anon,Makefile,30,true,makefile,true,entry Makefile 2005,anon,anon.alt.c,40,true,c,true,alternative source 2005,anon,anon.orig.c,50,false,c,true,original source -2005,anon,2005_anon.tar.bz2,100000,false,tbz2,false,download entry tarball +2005,anon,2005_anon.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2005,anon,index.html,2000000000,false,html,false,this web page 2005,anon,README.md,4294967295,true,markdown,true,markdown source for this web page 2005,anon,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2070,7 +2070,7 @@ 2005,boutines,eqn.png,100,true,image,false,equation limit for entry 2005,boutines,input.txt,100,true,text,true,sample input 2005,boutines,try.sh,100,true,shellscript,true,how to run -2005,boutines,2005_boutines.tar.bz2,100000,false,tbz2,false,download entry tarball +2005,boutines,2005_boutines.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2005,boutines,index.html,2000000000,false,html,false,this web page 2005,boutines,README.md,4294967295,true,markdown,true,markdown source for this web page 2005,boutines,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2079,7 +2079,7 @@ 2005,chia,chia.c,20,true,c,true,entry source 2005,chia,Makefile,30,true,makefile,true,entry Makefile 2005,chia,chia.orig.c,50,false,c,true,original source -2005,chia,2005_chia.tar.bz2,100000,false,tbz2,false,download entry tarball +2005,chia,2005_chia.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2005,chia,index.html,2000000000,false,html,false,this web page 2005,chia,README.md,4294967295,true,markdown,true,markdown source for this web page 2005,chia,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2090,7 +2090,7 @@ 2005,giljade,giljade.orig.c,50,false,c,true,original source 2005,giljade,test.sh,100,true,shellscript,true,test tool 2005,giljade,try.sh,100,true,shellscript,true,how to run -2005,giljade,2005_giljade.tar.bz2,100000,false,tbz2,false,download entry tarball +2005,giljade,2005_giljade.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2005,giljade,index.html,2000000000,false,html,false,this web page 2005,giljade,README.md,4294967295,true,markdown,true,markdown source for this web page 2005,giljade,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2099,7 +2099,7 @@ 2005,jetro,jetro.c,20,true,c,true,entry source 2005,jetro,Makefile,30,true,makefile,true,entry Makefile 2005,jetro,jetro.orig.c,50,false,c,true,original source -2005,jetro,2005_jetro.tar.bz2,100000,false,tbz2,false,download entry tarball +2005,jetro,2005_jetro.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2005,jetro,index.html,2000000000,false,html,false,this web page 2005,jetro,README.md,4294967295,true,markdown,true,markdown source for this web page 2005,jetro,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2109,7 +2109,7 @@ 2005,klausler,Makefile,30,true,makefile,true,entry Makefile 2005,klausler,klausler.orig.c,50,false,c,true,original source 2005,klausler,try.sh,100,true,shellscript,true,how to run -2005,klausler,2005_klausler.tar.bz2,100000,false,tbz2,false,download entry tarball +2005,klausler,2005_klausler.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2005,klausler,index.html,2000000000,false,html,false,this web page 2005,klausler,README.md,4294967295,true,markdown,true,markdown source for this web page 2005,klausler,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2119,7 +2119,7 @@ 2005,mikeash,Makefile,30,true,makefile,true,entry Makefile 2005,mikeash,mikeash.orig.c,50,false,c,true,original source 2005,mikeash,try.sh,100,true,shellscript,true,how to run -2005,mikeash,2005_mikeash.tar.bz2,100000,false,tbz2,false,download entry tarball +2005,mikeash,2005_mikeash.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2005,mikeash,index.html,2000000000,false,html,false,this web page 2005,mikeash,README.md,4294967295,true,markdown,true,markdown source for this web page 2005,mikeash,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2134,7 +2134,7 @@ 2005,mynx,source/configure,150,true,shellscript,false,pre-built configure script 2005,mynx,source/configure.in,150,true,shellscript,false,configure script description 2005,mynx,source/makefile.in,150,true,shellscript,false,makefile template -2005,mynx,2005_mynx.tar.bz2,100000,false,tbz2,false,download entry tarball +2005,mynx,2005_mynx.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2005,mynx,index.html,2000000000,false,html,false,this web page 2005,mynx,README.md,4294967295,true,markdown,true,markdown source for this web page 2005,mynx,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2146,7 +2146,7 @@ 2005,persano,persano.alt.c,40,true,c,true,alternative source 2005,persano,persano.orig.c,50,false,c,true,original source 2005,persano,try.sh,100,true,shellscript,true,how to run -2005,persano,2005_persano.tar.bz2,100000,false,tbz2,false,download entry tarball +2005,persano,2005_persano.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2005,persano,index.html,2000000000,false,html,false,this web page 2005,persano,README.md,4294967295,true,markdown,true,markdown source for this web page 2005,persano,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2157,7 +2157,7 @@ 2005,sykes,sykes.orig.c,50,true,c,true,original source 2005,sykes,test.sh,100,true,shellscript,true,test tool 2005,sykes,try.sh,100,true,shellscript,true,how to run -2005,sykes,2005_sykes.tar.bz2,100000,false,tbz2,false,download entry tarball +2005,sykes,2005_sykes.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2005,sykes,index.html,2000000000,false,html,false,this web page 2005,sykes,6502test,4294967295,true,binary,false,6502 test utility 2005,sykes,DEMO,4294967295,true,binary,false,demo for Commodore PET @@ -2176,7 +2176,7 @@ 2005,timwi,Makefile,30,true,makefile,true,entry Makefile 2005,timwi,timwi.orig.c,50,true,c,true,original source 2005,timwi,try.sh,100,true,shellscript,true,how to run -2005,timwi,2005_timwi.tar.bz2,100000,false,tbz2,false,download entry tarball +2005,timwi,2005_timwi.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2005,timwi,index.html,2000000000,false,html,false,this web page 2005,timwi,README.md,4294967295,true,markdown,true,markdown source for this web page 2005,timwi,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2187,7 +2187,7 @@ 2005,toledo,toledo.orig.c,50,true,c,true,original source 2005,toledo,toledo2.c,100,true,c,true,alternative source 2005,toledo,toledo3.c,100,true,c,true,alternative source -2005,toledo,2005_toledo.tar.bz2,100000,false,tbz2,false,download entry tarball +2005,toledo,2005_toledo.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2005,toledo,index.html,2000000000,false,html,false,this web page 2005,toledo,README.md,4294967295,true,markdown,true,markdown source for this web page 2005,toledo,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2200,7 +2200,7 @@ 2005,vik,a.bmp,120,true,image,false,texture bitmap 2005,vik,b.bmp,120,true,image,false,texture bitmap 2005,vik,c.bmp,120,true,image,false,texture bitmap -2005,vik,2005_vik.tar.bz2,100000,false,tbz2,false,download entry tarball +2005,vik,2005_vik.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2005,vik,index.html,2000000000,false,html,false,this web page 2005,vik,README.md,4294967295,true,markdown,true,markdown source for this web page 2005,vik,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2210,7 +2210,7 @@ 2005,vince,Makefile,30,true,makefile,true,entry Makefile 2005,vince,vince.alt.c,40,true,c,true,alternative source 2005,vince,vince.orig.c,50,true,c,true,original source -2005,vince,2005_vince.tar.bz2,100000,false,tbz2,false,download entry tarball +2005,vince,2005_vince.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2005,vince,index.html,2000000000,false,html,false,this web page 2005,vince,README.md,4294967295,true,markdown,true,markdown source for this web page 2005,vince,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2234,7 +2234,7 @@ 2006,birken,shift.tofu,150,true,text,true,TOFU circuit 2006,birken,zuse2.tofu,150,true,text,true,TOFU circuit 2006,birken,zuse.tofu,150,true,text,true,TOFU circuit -2006,birken,2006_birken.tar.bz2,100000,false,tbz2,false,download entry tarball +2006,birken,2006_birken.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2006,birken,index.html,2000000000,false,html,false,this web page 2006,birken,README.md,4294967295,true,markdown,true,markdown source for this web page 2006,birken,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2244,7 +2244,7 @@ 2006,borsanyi,Makefile,30,true,makefile,true,entry Makefile 2006,borsanyi,borsanyi.orig.c,50,false,c,true,original source 2006,borsanyi,try.sh,100,true,shellscript,true,how to run -2006,borsanyi,2006_borsanyi.tar.bz2,100000,false,tbz2,false,download entry tarball +2006,borsanyi,2006_borsanyi.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2006,borsanyi,index.html,2000000000,false,html,false,this web page 2006,borsanyi,README.md,4294967295,true,markdown,true,markdown source for this web page 2006,borsanyi,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2258,7 +2258,7 @@ 2006,grothe,test.txt,100,true,text,true,sample input 2006,grothe,try.sh,100,true,shellscript,true,how to run 2006,grothe,twinkle.txt,100,true,text,true,sample input -2006,grothe,2006_grothe.tar.bz2,100000,false,tbz2,false,download entry tarball +2006,grothe,2006_grothe.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2006,grothe,index.html,2000000000,false,html,false,this web page 2006,grothe,README.md,4294967295,true,markdown,true,markdown source for this web page 2006,grothe,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2268,7 +2268,7 @@ 2006,hamre,Makefile,30,true,makefile,true,entry Makefile 2006,hamre,hamre.orig.c,50,false,c,true,original source 2006,hamre,try.sh,100,true,shellscript,true,how to run -2006,hamre,2006_hamre.tar.bz2,100000,false,tbz2,false,download entry tarball +2006,hamre,2006_hamre.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2006,hamre,index.html,2000000000,false,html,false,this web page 2006,hamre,README.md,4294967295,true,markdown,true,markdown source for this web page 2006,hamre,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2277,7 +2277,7 @@ 2006,meyer,meyer.c,20,true,c,true,entry source 2006,meyer,Makefile,30,true,makefile,true,entry Makefile 2006,meyer,meyer.orig.c,50,false,c,true,original source -2006,meyer,2006_meyer.tar.bz2,100000,false,tbz2,false,download entry tarball +2006,meyer,2006_meyer.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2006,meyer,index.html,2000000000,false,html,false,this web page 2006,meyer,README.md,4294967295,true,markdown,true,markdown source for this web page 2006,meyer,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2289,7 +2289,7 @@ 2006,monge,monge.orig.c,50,false,c,true,original source 2006,monge,try.alt.sh,100,true,shellscript,true,how to run alternative code 2006,monge,try.sh,100,true,shellscript,true,how to run -2006,monge,2006_monge.tar.bz2,100000,false,tbz2,false,download entry tarball +2006,monge,2006_monge.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2006,monge,index.html,2000000000,false,html,false,this web page 2006,monge,README.md,4294967295,true,markdown,true,markdown source for this web page 2006,monge,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2299,7 +2299,7 @@ 2006,night,Makefile,30,true,makefile,true,entry Makefile 2006,night,night.alt.c,40,true,c,true,alternative source 2006,night,night.orig.c,50,false,c,true,original source -2006,night,2006_night.tar.bz2,100000,false,tbz2,false,download entry tarball +2006,night,2006_night.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2006,night,index.html,2000000000,false,html,false,this web page 2006,night,README.md,4294967295,true,markdown,true,markdown source for this web page 2006,night,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2309,7 +2309,7 @@ 2006,sloane,Makefile,30,true,makefile,true,entry Makefile 2006,sloane,sloane.alt.c,40,true,c,true,alternative source 2006,sloane,sloane.orig.c,50,true,c,true,original source -2006,sloane,2006_sloane.tar.bz2,100000,false,tbz2,false,download entry tarball +2006,sloane,2006_sloane.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2006,sloane,index.html,2000000000,false,html,false,this web page 2006,sloane,README.md,4294967295,true,markdown,true,markdown source for this web page 2006,sloane,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2359,7 +2359,7 @@ 2006,stewart,tree3,150,true,text,true,sample input 2006,stewart,tree4,150,true,text,true,sample input 2006,stewart,triangle,150,true,text,true,sample input -2006,stewart,2006_stewart.tar.bz2,100000,false,tbz2,false,download entry tarball +2006,stewart,2006_stewart.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2006,stewart,index.html,2000000000,false,html,false,this web page 2006,stewart,README.md,4294967295,true,markdown,true,markdown source for this web page 2006,stewart,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2372,7 +2372,7 @@ 2006,sykes1,bedlam-cubes.pdf,100,true,pdf,false,instructions on how to make your own cube 2006,sykes1,solving-bedlam-cube.mp4,100,true,html,false,spoiler movie showing the solution 2006,sykes1,try.sh,100,true,shellscript,true,how to run -2006,sykes1,2006_sykes1.tar.bz2,100000,false,tbz2,false,download entry tarball +2006,sykes1,2006_sykes1.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2006,sykes1,index.html,2000000000,false,html,false,this web page 2006,sykes1,README.md,4294967295,true,markdown,true,markdown source for this web page 2006,sykes1,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2382,7 +2382,7 @@ 2006,sykes2,Makefile,30,true,makefile,true,entry Makefile 2006,sykes2,sykes2.orig.c,50,true,c,true,original source 2006,sykes2,try.sh,100,true,shellscript,true,how to run -2006,sykes2,2006_sykes2.tar.bz2,100000,false,tbz2,false,download entry tarball +2006,sykes2,2006_sykes2.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2006,sykes2,index.html,2000000000,false,html,false,this web page 2006,sykes2,README.md,4294967295,true,markdown,true,markdown source for this web page 2006,sykes2,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2392,7 +2392,7 @@ 2006,toledo1,Makefile,30,true,makefile,true,entry Makefile 2006,toledo1,toledo1.orig.c,50,true,c,true,original source 2006,toledo1,try.sh,100,true,shellscript,true,how to run -2006,toledo1,2006_toledo1.tar.bz2,100000,false,tbz2,false,download entry tarball +2006,toledo1,2006_toledo1.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2006,toledo1,index.html,2000000000,false,html,false,this web page 2006,toledo1,README.md,4294967295,true,markdown,true,markdown source for this web page 2006,toledo1,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2403,7 +2403,7 @@ 2006,toledo2,toledo2.alt.c,40,true,c,true,alternative source 2006,toledo2,toledo2.orig.c,50,true,c,true,original source 2006,toledo2,KAYPROII.ZIP,200,true,zip,true,zip file of CPM related files -2006,toledo2,2006_toledo2.tar.bz2,100000,false,tbz2,false,download entry tarball +2006,toledo2,2006_toledo2.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2006,toledo2,index.html,2000000000,false,html,false,this web page 2006,toledo2,A,4294967295,true,binary,false,binary support file 2006,toledo2,B,4294967295,true,binary,false,binary support file @@ -2420,7 +2420,7 @@ 2006,toledo3,toledo3-sbar.c,100,true,c,true,source to create a status bar 2006,toledo3,toledo3-txt.c,100,true,c,true,source to make the game text 2006,toledo3,layer.c,150,true,c,true,windows portability source -2006,toledo3,2006_toledo3.tar.bz2,100000,false,tbz2,false,download entry tarball +2006,toledo3,2006_toledo3.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2006,toledo3,index.html,2000000000,false,html,false,this web page 2006,toledo3,README.md,4294967295,true,markdown,true,markdown source for this web page 2006,toledo3,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2431,7 +2431,7 @@ 2011,akari,akari.orig.c,50,false,c,true,original source 2011,akari,example.ppm,100,true,image,false,input image 2011,akari,try.sh,100,true,shellscript,true,how to run -2011,akari,2011_akari.tar.bz2,100000,false,tbz2,false,download entry tarball +2011,akari,2011_akari.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2011,akari,index.html,2000000000,false,html,false,this web page 2011,akari,README.md,4294967295,true,markdown,true,markdown source for this web page 2011,akari,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2444,7 +2444,7 @@ 2011,blakely,evolve_to_3.dat,100,true,text,true,input data 2011,blakely,t0_3.dat,100,true,text,true,input data 2011,blakely,try.sh,100,true,shellscript,true,how to run -2011,blakely,2011_blakely.tar.bz2,100000,false,tbz2,false,download entry tarball +2011,blakely,2011_blakely.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2011,blakely,index.html,2000000000,false,html,false,this web page 2011,blakely,README.md,4294967295,true,markdown,true,markdown source for this web page 2011,blakely,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2457,7 +2457,7 @@ 2011,borsanyi,data.1,150,true,text,true,sample input 2011,borsanyi,data.2,150,true,text,true,sample input 2011,borsanyi,data.3,150,true,text,true,sample input -2011,borsanyi,2011_borsanyi.tar.bz2,100000,false,tbz2,false,download entry tarball +2011,borsanyi,2011_borsanyi.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2011,borsanyi,index.html,2000000000,false,html,false,this web page 2011,borsanyi,README.md,4294967295,true,markdown,true,markdown source for this web page 2011,borsanyi,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2510,7 +2510,7 @@ 2011,dlowe,dlowe-aux-data/png-1/obfuscate4e.png,220,true,image,false,training image for neural networks 2011,dlowe,dlowe-aux-data/png-1/obfuscation-decoder.png,220,true,image,false,training image for neural networks 2011,dlowe,dlowe-aux-data/png-1/obfuscation_methods.png,220,true,image,false,training image for neural networks -2011,dlowe,2011_dlowe.tar.bz2,100000,false,tbz2,false,download entry tarball +2011,dlowe,2011_dlowe.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2011,dlowe,index.html,2000000000,false,html,false,this web page 2011,dlowe,README.md,4294967295,true,markdown,true,markdown source for this web page 2011,dlowe,dlowe-aux-data/english-trained.net,4294967295,true,binary,false,trained neural network for English text @@ -2525,7 +2525,7 @@ 2011,eastman,Makefile,30,true,makefile,true,entry Makefile 2011,eastman,eastman.orig.c,50,false,c,true,original source 2011,eastman,boing-ball.mp4,100,true,html,false,original Amiga bouncing ball demo -2011,eastman,2011_eastman.tar.bz2,100000,false,tbz2,false,download entry tarball +2011,eastman,2011_eastman.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2011,eastman,index.html,2000000000,false,html,false,this web page 2011,eastman,README.md,4294967295,true,markdown,true,markdown source for this web page 2011,eastman,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2535,7 +2535,7 @@ 2011,fredriksson,Makefile,30,true,makefile,true,entry Makefile 2011,fredriksson,fredriksson.orig.c,50,false,c,true,original source 2011,fredriksson,try.sh,100,true,shellscript,true,how to run -2011,fredriksson,2011_fredriksson.tar.bz2,100000,false,tbz2,false,download entry tarball +2011,fredriksson,2011_fredriksson.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2011,fredriksson,index.html,2000000000,false,html,false,this web page 2011,fredriksson,README.md,4294967295,true,markdown,true,markdown source for this web page 2011,fredriksson,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2546,7 +2546,7 @@ 2011,goren,goren.orig.c,50,false,c,true,original source 2011,goren,MagrittePipe.jpg,100,true,image,false,this is not a pipe 2011,goren,try.sh,100,true,shellscript,true,how to run -2011,goren,2011_goren.tar.bz2,100000,false,tbz2,false,download entry tarball +2011,goren,2011_goren.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2011,goren,index.html,2000000000,false,html,false,this web page 2011,goren,README.md,4294967295,true,markdown,true,markdown source for this web page 2011,goren,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2569,7 +2569,7 @@ 2011,hamaji,smiley.nono,100,true,text,true,nonogram input data 2011,hamaji,soccer.nono,100,true,text,true,nonogram input data 2011,hamaji,try.sh,100,true,shellscript,true,how to run -2011,hamaji,2011_hamaji.tar.bz2,100000,false,tbz2,false,download entry tarball +2011,hamaji,2011_hamaji.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2011,hamaji,index.html,2000000000,false,html,false,this web page 2011,hamaji,README.md,4294967295,true,markdown,true,markdown source for this web page 2011,hamaji,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2579,7 +2579,7 @@ 2011,hou,Makefile,30,true,makefile,true,entry Makefile 2011,hou,hou.orig.c,50,false,c,true,original source 2011,hou,try.sh,100,true,shellscript,true,how to run -2011,hou,2011_hou.tar.bz2,100000,false,tbz2,false,download entry tarball +2011,hou,2011_hou.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2011,hou,index.html,2000000000,false,html,false,this web page 2011,hou,README.md,4294967295,true,markdown,true,markdown source for this web page 2011,hou,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2589,7 +2589,7 @@ 2011,konno,Makefile,30,true,makefile,true,entry Makefile 2011,konno,konno.orig.c,50,false,c,true,original source 2011,konno,try.sh,100,true,shellscript,true,how to run -2011,konno,2011_konno.tar.bz2,100000,false,tbz2,false,download entry tarball +2011,konno,2011_konno.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2011,konno,index.html,2000000000,false,html,false,this web page 2011,konno,README.md,4294967295,true,markdown,true,markdown source for this web page 2011,konno,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2601,7 +2601,7 @@ 2011,richards,richards.orig.c,50,true,c,true,original source 2011,richards,try.alt.sh,100,true,shellscript,true,how to run alternative code 2011,richards,try.sh,100,true,shellscript,true,how to run -2011,richards,2011_richards.tar.bz2,100000,false,tbz2,false,download entry tarball +2011,richards,2011_richards.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2011,richards,index.html,2000000000,false,html,false,this web page 2011,richards,README.md,4294967295,true,markdown,true,markdown source for this web page 2011,richards,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2614,7 +2614,7 @@ 2011,toledo,toledo.orig.c,50,true,c,true,original source 2011,toledo,keysym.h,100,true,c,true,included header file 2011,toledo,layer.c,150,true,c,true,translation layer to make 3D Tanks game -2011,toledo,2011_toledo.tar.bz2,100000,false,tbz2,false,download entry tarball +2011,toledo,2011_toledo.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2011,toledo,index.html,2000000000,false,html,false,this web page 2011,toledo,README.md,4294967295,true,markdown,true,markdown source for this web page 2011,toledo,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2628,7 +2628,7 @@ 2011,vik,randowan.mod,100,true,mod,false,4-channel Protracker module sound data 2011,vik,raw2wav,100,true,perl,true,convert raw format to wav format 2011,vik,try.sh,100,true,shellscript,true,how to run -2011,vik,2011_vik.tar.bz2,100000,false,tbz2,false,download entry tarball +2011,vik,2011_vik.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2011,vik,index.html,2000000000,false,html,false,this web page 2011,vik,README.md,4294967295,true,markdown,true,markdown source for this web page 2011,vik,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2640,7 +2640,7 @@ 2011,zucker,zucker.orig.c,50,true,c,true,original source 2011,zucker,sphere-tracing.pdf,100,true,pdf,false,research paper on antialiased ray tracing 2011,zucker,try.sh,100,true,shellscript,true,how to run -2011,zucker,2011_zucker.tar.bz2,100000,false,tbz2,false,download entry tarball +2011,zucker,2011_zucker.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2011,zucker,index.html,2000000000,false,html,false,this web page 2011,zucker,README.md,4294967295,true,markdown,true,markdown source for this web page 2011,zucker,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2650,7 +2650,7 @@ 2012,blakely,Makefile,30,true,makefile,true,entry Makefile 2012,blakely,blakely.orig.c,50,false,c,true,original source 2012,blakely,try.sh,100,true,shellscript,true,how to run -2012,blakely,2012_blakely.tar.bz2,100000,false,tbz2,false,download entry tarball +2012,blakely,2012_blakely.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2012,blakely,index.html,2000000000,false,html,false,this web page 2012,blakely,README.md,4294967295,true,markdown,true,markdown source for this web page 2012,blakely,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2663,7 +2663,7 @@ 2012,deckmyn,example_beethoven,100,true,text,true,music notation 2012,deckmyn,example_greensleeves,100,true,text,true,music notation 2012,deckmyn,try.sh,100,true,shellscript,true,how to run -2012,deckmyn,2012_deckmyn.tar.bz2,100000,false,tbz2,false,download entry tarball +2012,deckmyn,2012_deckmyn.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2012,deckmyn,index.html,2000000000,false,html,false,this web page 2012,deckmyn,README.md,4294967295,true,markdown,true,markdown source for this web page 2012,deckmyn,deckmyn.md,4294967295,true,markdown,true,markdown source for deckmyn.html @@ -2673,7 +2673,7 @@ 2012,dlowe,dlowe.c,20,true,c,true,entry source 2012,dlowe,Makefile,30,true,makefile,true,entry Makefile 2012,dlowe,dlowe.orig.c,50,false,c,true,original source -2012,dlowe,2012_dlowe.tar.bz2,100000,false,tbz2,false,download entry tarball +2012,dlowe,2012_dlowe.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2012,dlowe,index.html,2000000000,false,html,false,this web page 2012,dlowe,README.md,4294967295,true,markdown,true,markdown source for this web page 2012,dlowe,dead.d,4294967295,true,binary,false,data file @@ -2710,7 +2710,7 @@ 2012,endoh1,try.bw.sh,100,true,shellscript,true,try.alt.bw.sh 2012,endoh1,try.sh,100,true,shell script,true,how to run in color 2012,endoh1,endoh1_color.c,150,true,c,true,alternative source using terminal 256 colors -2012,endoh1,2012_endoh1.tar.bz2,100000,false,tbz2,false,download entry tarball +2012,endoh1,2012_endoh1.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2012,endoh1,index.html,2000000000,false,html,false,this web page 2012,endoh1,README.md,4294967295,true,markdown,true,markdown source for this web page 2012,endoh1,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2721,7 +2721,7 @@ 2012,endoh2,endoh2.orig.c,50,false,c,true,original source 2012,endoh2,try.sh,100,true,shellscript,true,how to run 2012,endoh2,find-font-table.rb,150,true,ruby,true,tool used to find the magic string -2012,endoh2,2012_endoh2.tar.bz2,100000,false,tbz2,false,download entry tarball +2012,endoh2,2012_endoh2.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2012,endoh2,index.html,2000000000,false,html,false,this web page 2012,endoh2,README.md,4294967295,true,markdown,true,markdown source for this web page 2012,endoh2,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2732,7 +2732,7 @@ 2012,grothe,grothe.orig.c,50,false,c,true,original source 2012,grothe,cookie_recipe.txt,100,true,binary,true,cookie recipe 2012,grothe,try.sh,100,true,shellscript,true,how to run -2012,grothe,2012_grothe.tar.bz2,100000,false,tbz2,false,download entry tarball +2012,grothe,2012_grothe.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2012,grothe,index.html,2000000000,false,html,false,this web page 2012,grothe,README.md,4294967295,true,markdown,true,markdown source for this web page 2012,grothe,cookie_piece1.dat,4294967295,true,binary,false,binary support file @@ -2747,7 +2747,7 @@ 2012,hamano,Makefile,30,true,makefile,true,entry Makefile 2012,hamano,hamano.orig.c,50,false,c,true,original source 2012,hamano,try.sh,100,true,shellscript,true,how to run -2012,hamano,2012_hamano.tar.bz2,100000,false,tbz2,false,download entry tarball +2012,hamano,2012_hamano.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2012,hamano,index.html,2000000000,false,html,false,this web page 2012,hamano,README.md,4294967295,true,markdown,true,markdown source for this web page 2012,hamano,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2765,7 +2765,7 @@ 2012,hou,try.sh,100,true,shellscript,true,how to run 2012,hou,header.htm,150,true,html,false,HTML header 2012,hou,perl-notes.txt,150,true,text,true,notes about patho.pl -2012,hou,2012_hou.tar.bz2,100000,false,tbz2,false,download entry tarball +2012,hou,2012_hou.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2012,hou,index.html,2000000000,false,html,false,this web page 2012,hou,README.md,4294967295,true,markdown,true,markdown source for this web page 2012,hou,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2782,7 +2782,7 @@ 2012,kang,en.sh,100,true,shellscript,true,English words for 1 through 13 2012,kang,try.alt.sh,100,true,shellscript,true,how to run alternate code 2012,kang,try.sh,100,true,shellscript,true,how to run -2012,kang,2012_kang.tar.bz2,100000,false,tbz2,false,download entry tarball +2012,kang,2012_kang.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2012,kang,index.html,2000000000,false,html,false,this web page 2012,kang,README.md,4294967295,true,markdown,true,markdown source for this web page 2012,kang,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2793,7 +2793,7 @@ 2012,konno,konno.alt.c,40,true,c,true,alternative source 2012,konno,konno.orig.c,50,false,c,true,original source 2012,konno,try.sh,100,true,shellscript,true,how to run -2012,konno,2012_konno.tar.bz2,100000,false,tbz2,false,download entry tarball +2012,konno,2012_konno.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2012,konno,index.html,2000000000,false,html,false,this web page 2012,konno,README.md,4294967295,true,markdown,true,markdown source for this web page 2012,konno,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2807,7 +2807,7 @@ 2012,omoikane,try.alt.sh,100,true,shellscript,true,how to run alternative code 2012,omoikane,try.sh,100,true,shellscript,true,how to run 2012,omoikane,spoiler.html,200,true,html,false,SPOILER WARNING -2012,omoikane,2012_omoikane.tar.bz2,100000,false,tbz2,false,download entry tarball +2012,omoikane,2012_omoikane.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2012,omoikane,index.html,2000000000,false,html,false,this web page 2012,omoikane,README.md,4294967295,true,markdown,true,markdown source for this web page 2012,omoikane,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2820,7 +2820,7 @@ 2012,tromp,primes.pl,100,true,perl,true,post process tromp output to print primes 2012,tromp,try.sh,100,true,shellscript,true,how to run 2012,tromp,hw.bf,150,true,bf,true,bf source code -2012,tromp,2012_tromp.tar.bz2,100000,false,tbz2,false,download entry tarball +2012,tromp,2012_tromp.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2012,tromp,index.html,2000000000,false,html,false,this web page 2012,tromp,README.md,4294967295,true,markdown,true,markdown source for this web page 2012,tromp,bf.Blc,4294967295,true,binary,false,sample input @@ -2844,7 +2844,7 @@ 2012,vik,chocolate.png,100,true,image,false,encoding image 2012,vik,ioccc.png,100,true,image,false,encoding image 2012,vik,try.sh,100,true,shellscript,true,how to run -2012,vik,2012_vik.tar.bz2,100000,false,tbz2,false,download entry tarball +2012,vik,2012_vik.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2012,vik,index.html,2000000000,false,html,false,this web page 2012,vik,README.md,4294967295,true,markdown,true,markdown source for this web page 2012,vik,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2867,7 +2867,7 @@ 2012,zeitak,incorrect.quote-esc.c,150,true,c,true,example source with incorrect quote escape 2012,zeitak,incorrect.single.quote.c,150,true,c,true,example source with incorrect single quote 2012,zeitak,incorrect.txt,150,true,text,true,example source with incorrect text -2012,zeitak,2012_zeitak.tar.bz2,100000,false,tbz2,false,download entry tarball +2012,zeitak,2012_zeitak.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2012,zeitak,index.html,2000000000,false,html,false,this web page 2012,zeitak,README.md,4294967295,true,markdown,true,markdown source for this web page 2012,zeitak,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2906,7 +2906,7 @@ 2013,birken,toad.txt,100,true,text,true,sprites in this textual format 2013,birken,try.alt.sh,100,true,shellscript,true,how to run alternative code 2013,birken,try.sh,100,true,shellscript,true,how to run -2013,birken,2013_birken.tar.bz2,100000,false,tbz2,false,download entry tarball +2013,birken,2013_birken.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2013,birken,index.html,2000000000,false,html,false,this web page 2013,birken,README.md,4294967295,true,markdown,true,markdown source for this web page 2013,birken,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2934,7 +2934,7 @@ 2013,cable1,cable1.orig.c,50,false,c,true,original source 2013,cable1,dead-ms-tweet.jpg,100,true,image,false,tweet image 2013,cable1,try.sh,100,true,shellscript,true,how to run -2013,cable1,2013_cable1.tar.bz2,100000,false,tbz2,false,download entry tarball +2013,cable1,2013_cable1.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2013,cable1,index.html,2000000000,false,html,false,this web page 2013,cable1,README.md,4294967295,true,markdown,true,markdown source for this web page 2013,cable1,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2950,7 +2950,7 @@ 2013,cable2,mixed_sizes.bmp,120,true,image,false,PC bitmap image 2013,cable2,multi_color.bmp,120,true,image,false,PC bitmap image 2013,cable2,typeset.bmp,120,true,image,false,PC bitmap image -2013,cable2,2013_cable2.tar.bz2,100000,false,tbz2,false,download entry tarball +2013,cable2,2013_cable2.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2013,cable2,index.html,2000000000,false,html,false,this web page 2013,cable2,README.md,4294967295,true,markdown,true,markdown source for this web page 2013,cable2,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2969,7 +2969,7 @@ 2013,cable3,screenshot_win3_on_macosx.png,100,true,image,false,Screenshots of some applications running on macOS 2013,cable3,sc-ioccc.terminal,150,true,xml,false,configuration file will correctly display console apps 2013,cable3,bios.asm,200,true,asm,true,BIOS source in assembly -2013,cable3,2013_cable3.tar.bz2,100000,false,tbz2,false,download entry tarball +2013,cable3,2013_cable3.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2013,cable3,index.html,2000000000,false,html,false,this web page 2013,cable3,README.md,4294967295,true,markdown,true,markdown source for this web page 2013,cable3,bios,4294967295,true,binary,false,custom BIOS @@ -2985,7 +2985,7 @@ 2013,dlowe,fun.c,100,true,c,true,compile and run for extra run 2013,dlowe,slflen.sh,100,true,shellscript,true,generate sparkline of file lengths 2013,dlowe,try.sh,100,true,shellscript,true,how to run -2013,dlowe,2013_dlowe.tar.bz2,100000,false,tbz2,false,download entry tarball +2013,dlowe,2013_dlowe.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2013,dlowe,index.html,2000000000,false,html,false,this web page 2013,dlowe,README.md,4294967295,true,markdown,true,markdown source for this web page 2013,dlowe,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -2999,7 +2999,7 @@ 2013,endoh1,hello.lazy,150,true,c,true,lazy input 2013,endoh1,rot13.ed,150,true,text,true,ed script 2013,endoh1,tac.lazy,150,true,c,true,lazy input -2013,endoh1,2013_endoh1.tar.bz2,100000,false,tbz2,false,download entry tarball +2013,endoh1,2013_endoh1.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2013,endoh1,index.html,2000000000,false,html,false,this web page 2013,endoh1,README.md,4294967295,true,markdown,true,markdown source for this web page 2013,endoh1,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3009,7 +3009,7 @@ 2013,endoh2,Makefile,30,true,makefile,true,entry Makefile 2013,endoh2,endoh2.orig.c,50,false,c,true,original source 2013,endoh2,ocr.rb,100,true,ruby,true,test suite support file -2013,endoh2,2013_endoh2.tar.bz2,100000,false,tbz2,false,download entry tarball +2013,endoh2,2013_endoh2.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2013,endoh2,index.html,2000000000,false,html,false,this web page 2013,endoh2,README.md,4294967295,true,markdown,true,markdown source for this web page 2013,endoh2,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3025,7 +3025,7 @@ 2013,endoh3,twinkle.abc,100,true,text,true,sample input 2013,endoh3,wavify.rb,100,true,ruby,true,post process output to form a WAV sound file 2013,endoh3,yankee.abc,100,true,text,true,sample input -2013,endoh3,2013_endoh3.tar.bz2,100000,false,tbz2,false,download entry tarball +2013,endoh3,2013_endoh3.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2013,endoh3,index.html,2000000000,false,html,false,this web page 2013,endoh3,README.md,4294967295,true,markdown,true,markdown source for this web page 2013,endoh3,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3183,7 +3183,7 @@ 2013,endoh4,solids/trapezohedron/t06-hexagonal-trapezohedron.txt,200,true,text,true,3D object coordinates 2013,endoh4,solids/trapezohedron/t08-octagonal-trapezohedron.txt,200,true,text,true,3D object coordinates 2013,endoh4,solids/trapezohedron/t10-decagonal-trapezohedron.txt,200,true,text,true,3D object coordinates -2013,endoh4,2013_endoh4.tar.bz2,100000,false,tbz2,false,download entry tarball +2013,endoh4,2013_endoh4.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2013,endoh4,index.html,2000000000,false,html,false,this web page 2013,endoh4,README.md,4294967295,true,markdown,true,markdown source for this web page 2013,endoh4,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3199,7 +3199,7 @@ 2013,hou,luna.jpg,150,true,image,false,sample image data 2013,hou,old_default.jpg,150,true,image,false,sample image data 2013,hou,otherroom.jpg,150,true,image,false,sample image data -2013,hou,2013_hou.tar.bz2,100000,false,tbz2,false,download entry tarball +2013,hou,2013_hou.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2013,hou,index.html,2000000000,false,html,false,this web page 2013,hou,README.md,4294967295,true,markdown,true,markdown source for this web page 2013,hou,doc/camera.png,4294967295,true,image,false,documentation support image @@ -3212,7 +3212,7 @@ 2013,mills,mills.c,20,true,c,true,entry source 2013,mills,Makefile,30,true,makefile,true,entry Makefile 2013,mills,mills.orig.c,50,false,c,true,original source -2013,mills,2013_mills.tar.bz2,100000,false,tbz2,false,download entry tarball +2013,mills,2013_mills.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2013,mills,index.html,2000000000,false,html,false,this web page 2013,mills,README.md,4294967295,true,markdown,true,markdown source for this web page 2013,mills,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3224,7 +3224,7 @@ 2013,misaka,bf.pl,100,true,perl,true,BF interpreter 2013,misaka,try.sh,100,true,shellscript,true,how to run 2013,misaka,spoiler.html,200,true,html,false,SPOILER WARNING -2013,misaka,2013_misaka.tar.bz2,100000,false,tbz2,false,download entry tarball +2013,misaka,2013_misaka.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2013,misaka,index.html,2000000000,false,html,false,this web page 2013,misaka,README.md,4294967295,true,markdown,true,markdown source for this web page 2013,misaka,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3234,7 +3234,7 @@ 2013,morgan1,Makefile,30,true,makefile,true,entry Makefile 2013,morgan1,morgan1.orig.c,50,false,c,true,original source 2013,morgan1,try.sh,100,true,shelllscript,true,how to run -2013,morgan1,2013_morgan1.tar.bz2,100000,false,tbz2,false,download entry tarball +2013,morgan1,2013_morgan1.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2013,morgan1,index.html,2000000000,false,html,false,this web page 2013,morgan1,README.md,4294967295,true,markdown,true,markdown source for this web page 2013,morgan1,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3243,7 +3243,7 @@ 2013,morgan2,morgan2.c,20,true,c,true,entry source 2013,morgan2,Makefile,30,true,makefile,true,entry Makefile 2013,morgan2,morgan2.orig.c,50,false,c,true,original source -2013,morgan2,2013_morgan2.tar.bz2,100000,false,tbz2,false,download entry tarball +2013,morgan2,2013_morgan2.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2013,morgan2,index.html,2000000000,false,html,false,this web page 2013,morgan2,README.md,4294967295,true,markdown,true,markdown source for this web page 2013,morgan2,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3253,7 +3253,7 @@ 2013,robison,Makefile,30,true,makefile,true,entry Makefile 2013,robison,robison.orig.c,50,true,c,true,original source 2013,robison,try.sh,100,true,shellscript,true,how to run -2013,robison,2013_robison.tar.bz2,100000,false,tbz2,false,download entry tarball +2013,robison,2013_robison.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2013,robison,index.html,2000000000,false,html,false,this web page 2013,robison,README.md,4294967295,true,markdown,true,markdown source for this web page 2013,robison,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3263,7 +3263,7 @@ 2014,birken,Makefile,30,true,makefile,true,entry Makefile 2014,birken,prog.alt.c,40,true,c,true,alternative source 2014,birken,prog.orig.c,50,false,c,true,original source -2014,birken,2014_birken.tar.bz2,100000,false,tbz2,false,download entry tarball +2014,birken,2014_birken.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2014,birken,index.html,2000000000,false,html,false,this web page 2014,birken,README.md,4294967295,true,markdown,true,markdown source for this web page 2014,birken,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3274,7 +3274,7 @@ 2014,deak,prog.alt.c,40,true,c,true,alternative source 2014,deak,prog.orig.c,50,false,c,true,original source 2014,deak,try.alt.sh,100,true,shellscript,true,how to run alternative code -2014,deak,2014_deak.tar.bz2,100000,false,tbz2,false,download entry tarball +2014,deak,2014_deak.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2014,deak,index.html,2000000000,false,html,false,this web page 2014,deak,README.md,4294967295,true,markdown,true,markdown source for this web page 2014,deak,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3301,7 +3301,7 @@ 2014,endoh1,src.rb,150,true,ruby,true,support program for Rakefile 2014,endoh1,tool.rb,150,true,ruby,true,support program for Rakefile 2014,endoh1,vm.c,150,true,c,true,source code of the VM -2014,endoh1,2014_endoh1.tar.bz2,100000,false,tbz2,false,download entry tarball +2014,endoh1,2014_endoh1.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2014,endoh1,index.html,2000000000,false,html,false,this web page 2014,endoh1,README.md,4294967295,true,markdown,true,markdown source for this web page 2014,endoh1,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3312,7 +3312,7 @@ 2014,endoh2,Makefile,30,true,makefile,true,entry Makefile 2014,endoh2,prog.orig.c,50,false,c,true,original source 2014,endoh2,try.sh,100,true,shellscript,true,how to run -2014,endoh2,2014_endoh2.tar.bz2,100000,false,tbz2,false,download entry tarball +2014,endoh2,2014_endoh2.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2014,endoh2,index.html,2000000000,false,html,false,this web page 2014,endoh2,README.md,4294967295,true,markdown,true,markdown source for this web page 2014,endoh2,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3329,7 +3329,7 @@ 2014,maffiodo1,giana.level,150,true,text,true,game level data 2014,maffiodo1,mario8.wav,150,true,wav,false,sound file for game 2014,maffiodo1,mario.level,150,true,text,true,game level data -2014,maffiodo1,2014_maffiodo1.tar.bz2,100000,false,tbz2,false,download entry tarball +2014,maffiodo1,2014_maffiodo1.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2014,maffiodo1,index.html,2000000000,false,html,false,this web page 2014,maffiodo1,README.md,4294967295,true,markdown,true,markdown source for this web page 2014,maffiodo1,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3342,7 +3342,7 @@ 2014,maffiodo2,prog.alt.c,40,true,c,true,alternative source 2014,maffiodo2,prog.orig.c,50,false,c,true,original source 2014,maffiodo2,try.sh,100,true,shellscript,true,how to run -2014,maffiodo2,2014_maffiodo2.tar.bz2,100000,false,tbz2,false,download entry tarball +2014,maffiodo2,2014_maffiodo2.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2014,maffiodo2,index.html,2000000000,false,html,false,this web page 2014,maffiodo2,README.md,4294967295,true,markdown,true,markdown source for this web page 2014,maffiodo2,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3353,7 +3353,7 @@ 2014,morgan,Makefile,30,true,makefile,true,entry Makefile 2014,morgan,prog.orig.c,50,false,c,true,original source 2014,morgan,try.sh,100,true,shellscript,true,how to run -2014,morgan,2014_morgan.tar.bz2,100000,false,tbz2,false,download entry tarball +2014,morgan,2014_morgan.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2014,morgan,index.html,2000000000,false,html,false,this web page 2014,morgan,README.md,4294967295,true,markdown,true,markdown source for this web page 2014,morgan,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3366,7 +3366,7 @@ 2014,sinon,hecate.sh,100,true,shellscript,true,how to run 2014,sinon,try.sh,100,true,shellscript,true,how to run 2014,sinon,spoiler.html,200,true,html,false,SPOILER WARNING -2014,sinon,2014_sinon.tar.bz2,100000,false,tbz2,false,download entry tarball +2014,sinon,2014_sinon.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2014,sinon,index.html,2000000000,false,html,false,this web page 2014,sinon,README.md,4294967295,true,markdown,true,markdown source for this web page 2014,sinon,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3375,7 +3375,7 @@ 2014,skeggs,prog.c,20,true,c,true,entry source 2014,skeggs,Makefile,30,true,makefile,true,entry Makefile 2014,skeggs,prog.orig.c,50,false,c,true,original source -2014,skeggs,2014_skeggs.tar.bz2,100000,false,tbz2,false,download entry tarball +2014,skeggs,2014_skeggs.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2014,skeggs,index.html,2000000000,false,html,false,this web page 2014,skeggs,README.md,4294967295,true,markdown,true,markdown source for this web page 2014,skeggs,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3386,7 +3386,7 @@ 2014,vik,prog.alt.c,40,true,c,true,alternative source 2014,vik,prog.orig.c,50,false,c,true,original source 2014,vik,try.sh,100,true,shellscript,true,how to run -2014,vik,2014_vik.tar.bz2,100000,false,tbz2,false,download entry tarball +2014,vik,2014_vik.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2014,vik,index.html,2000000000,false,html,false,this web page 2014,vik,README.md,4294967295,true,markdown,true,markdown source for this web page 2014,vik,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3396,7 +3396,7 @@ 2014,wiedijk,Makefile,30,true,makefile,true,entry Makefile 2014,wiedijk,prog.orig.c,50,false,c,true,original source 2014,wiedijk,try.sh,100,true,shellscript,true,how to run -2014,wiedijk,2014_wiedijk.tar.bz2,100000,false,tbz2,false,download entry tarball +2014,wiedijk,2014_wiedijk.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2014,wiedijk,index.html,2000000000,false,html,false,this web page 2014,wiedijk,README.md,4294967295,true,markdown,true,markdown source for this web page 2014,wiedijk,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3416,7 +3416,7 @@ 2015,burton,test.out,150,true,text,true,test suite comparison data 2015,burton,spoilers.html,200,false,html,false,SPOILER WARNING 2015,burton,src.doc.txt,200,true,text,true,SPOILER WARNING hints about the source -2015,burton,2015_burton.tar.bz2,100000,false,tbz2,false,download entry tarball +2015,burton,2015_burton.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2015,burton,index.html,2000000000,false,html,false,this web page 2015,burton,README.md,4294967295,true,markdown,true,markdown source for this web page 2015,burton,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3428,7 +3428,7 @@ 2015,dogon,Makefile,30,true,makefile,true,entry Makefile 2015,dogon,prog.alt.c,40,true,c,true,alternative source 2015,dogon,prog.orig.c,50,false,c,true,original source -2015,dogon,2015_dogon.tar.bz2,100000,false,tbz2,false,download entry tarball +2015,dogon,2015_dogon.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2015,dogon,index.html,2000000000,false,html,false,this web page 2015,dogon,README.md,4294967295,true,markdown,true,markdown source for this web page 2015,dogon,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3441,7 +3441,7 @@ 2015,duble,codes.txt,100,true,text,true,show how each character is drawn 2015,duble,lorem-ipsum.txt,100,true,text,true,sample input 2015,duble,try.sh,100,true,shellscript,true,how to run -2015,duble,2015_duble.tar.bz2,100000,false,tbz2,false,download entry tarball +2015,duble,2015_duble.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2015,duble,index.html,2000000000,false,html,false,this web page 2015,duble,README.md,4294967295,true,markdown,true,markdown source for this web page 2015,duble,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3453,7 +3453,7 @@ 2015,endoh1,center.txt,100,true,text,true,sample input 2015,endoh1,ioccc.txt,100,true,text,true,sample input 2015,endoh1,line.txt,100,true,text,true,sample input -2015,endoh1,2015_endoh1.tar.bz2,100000,false,tbz2,false,download entry tarball +2015,endoh1,2015_endoh1.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2015,endoh1,index.html,2000000000,false,html,false,this web page 2015,endoh1,README.md,4294967295,true,markdown,true,markdown source for this web page 2015,endoh1,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3463,7 +3463,7 @@ 2015,endoh2,Makefile,30,true,makefile,true,entry Makefile 2015,endoh2,prog.orig.c,50,false,c,true,original source 2015,endoh2,try.sh,100,true,shellscript,true,how to run -2015,endoh2,2015_endoh2.tar.bz2,100000,false,tbz2,false,download entry tarball +2015,endoh2,2015_endoh2.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2015,endoh2,index.html,2000000000,false,html,false,this web page 2015,endoh2,README.md,4294967295,true,markdown,true,markdown source for this web page 2015,endoh2,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3475,7 +3475,7 @@ 2015,endoh3,try.sh,100,true,shellscript,true,how to run 2015,endoh3,ioccc.c,150,true,c,true,program as an array of shorts 2015,endoh3,mullender.c,150,true,c,true,copy of 1984/mullender.c -2015,endoh3,2015_endoh3.tar.bz2,100000,false,tbz2,false,download entry tarball +2015,endoh3,2015_endoh3.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2015,endoh3,index.html,2000000000,false,html,false,this web page 2015,endoh3,README.md,4294967295,true,markdown,true,markdown source for this web page 2015,endoh3,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3486,7 +3486,7 @@ 2015,endoh4,prog.alt.c,40,true,c,true,alternative source 2015,endoh4,prog.orig.c,50,false,c,true,original source 2015,endoh4,try.sh,100,true,shellscript,true,how to run -2015,endoh4,2015_endoh4.tar.bz2,100000,false,tbz2,false,download entry tarball +2015,endoh4,2015_endoh4.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2015,endoh4,index.html,2000000000,false,html,false,this web page 2015,endoh4,README.md,4294967295,true,markdown,true,markdown source for this web page 2015,endoh4,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3497,7 +3497,7 @@ 2015,hou,prog.orig.c,50,false,c,true,original source 2015,hou,try.sh,100,true,shellscript,true,how to run 2015,hou,rfc1321.txt,125,true,text,false,RFC 1321 - MD5 Message-Digest Algorithm -2015,hou,2015_hou.tar.bz2,100000,false,tbz2,false,download entry tarball +2015,hou,2015_hou.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2015,hou,index.html,2000000000,false,html,false,this web page 2015,hou,README.md,4294967295,true,markdown,true,markdown source for this web page 2015,hou,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3517,7 +3517,7 @@ 2015,howe,spoiler/err.h,210,true,c,true,SPOILER WARNING 2015,howe,spoiler/prog.c,210,true,c,true,SPOILER WARNING 2015,howe,war-and-peace.txt,250,true,text,true,War and Peace translated to English -2015,howe,2015_howe.tar.bz2,100000,false,tbz2,false,download entry tarball +2015,howe,2015_howe.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2015,howe,index.html,2000000000,false,html,false,this web page 2015,howe,README.md,4294967295,true,markdown,true,markdown source for this web page 2015,howe,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3527,7 +3527,7 @@ 2015,mills1,Makefile,30,true,makefile,true,entry Makefile 2015,mills1,prog.orig.c,50,false,c,true,original source 2015,mills1,try.sh,100,true,shellscript,true,how to run -2015,mills1,2015_mills1.tar.bz2,100000,false,tbz2,false,download entry tarball +2015,mills1,2015_mills1.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2015,mills1,index.html,2000000000,false,html,false,this web page 2015,mills1,README.md,4294967295,true,markdown,true,markdown source for this web page 2015,mills1,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3539,7 +3539,7 @@ 2015,mills2,try.sh,100,true,shellscript,true,how to run 2015,mills2,ioccc_guidelines.txt.Z,200,true,zip,false,compressed IOCCC 2015 guidelines 2015,mills2,ioccc_rules.txt.Z,200,true,zip,false,compressed IOCCC 2015 rules -2015,mills2,2015_mills2.tar.bz2,100000,false,tbz2,false,download entry tarball +2015,mills2,2015_mills2.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2015,mills2,index.html,2000000000,false,html,false,this web page 2015,mills2,README.md,4294967295,true,markdown,true,markdown source for this web page 2015,mills2,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3564,7 +3564,7 @@ 2015,muth,tape_77_55.h,200,true,c,true,cpp macros 2015,muth,tape_empty.h,200,true,c,true,cpp macros 2015,muth,tape_five.h,200,true,c,true,cpp macros -2015,muth,2015_muth.tar.bz2,100000,false,tbz2,false,download entry tarball +2015,muth,2015_muth.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2015,muth,index.html,2000000000,false,html,false,this web page 2015,muth,README.md,4294967295,true,markdown,true,markdown source for this web page 2015,muth,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3574,7 +3574,7 @@ 2015,schweikhardt,Makefile,30,true,makefile,true,entry Makefile 2015,schweikhardt,prog.orig.c,50,false,c,true,original source 2015,schweikhardt,try.sh,100,true,shellscript,true,how to run -2015,schweikhardt,2015_schweikhardt.tar.bz2,100000,false,tbz2,false,download entry tarball +2015,schweikhardt,2015_schweikhardt.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2015,schweikhardt,index.html,2000000000,false,html,false,this web page 2015,schweikhardt,README.md,4294967295,true,markdown,true,markdown source for this web page 2015,schweikhardt,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3585,7 +3585,7 @@ 2015,yang,prog.orig.c,50,false,c,true,original source 2015,yang,try.sh,100,true,shellscript,true,how to run 2015,yang,spoiler.html,200,true,html,false,SPOILER WARNING -2015,yang,2015_yang.tar.bz2,100000,false,tbz2,false,download entry tarball +2015,yang,2015_yang.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2015,yang,index.html,2000000000,false,html,false,this web page 2015,yang,README.md,4294967295,true,markdown,true,markdown source for this web page 2015,yang,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3596,7 +3596,7 @@ 2018,algmyr,prog.orig.c,50,false,c,true,original source 2018,algmyr,try.sh,100,true,shellscript,true,how to run 2018,algmyr,spoiler.png,200,true,image,false,SPOILER WARNING -2018,algmyr,2018_algmyr.tar.bz2,100000,false,tbz2,false,download entry tarball +2018,algmyr,2018_algmyr.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2018,algmyr,index.html,2000000000,false,html,false,this web page 2018,algmyr,README.md,4294967295,true,markdown,true,markdown source for this web page 2018,algmyr,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3608,7 +3608,7 @@ 2018,anderson,prog.orig.c,50,false,c,true,original source 2018,anderson,try.alt.sh,100,true,shellscript,true,how to run alternate code 2018,anderson,try.sh,100,true,shellscript,true,how to run -2018,anderson,2018_anderson.tar.bz2,100000,false,tbz2,false,download entry tarball +2018,anderson,2018_anderson.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2018,anderson,index.html,2000000000,false,html,false,this web page 2018,anderson,README.md,4294967295,true,markdown,true,markdown source for this web page 2018,anderson,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3620,7 +3620,7 @@ 2018,bellard,prog.orig.c,50,false,c,true,original source 2018,bellard,Lenna.png,100,true,image,false,sample image data 2018,bellard,try.sh,100,true,shellscript,true,how to run -2018,bellard,2018_bellard.tar.bz2,100000,false,tbz2,false,download entry tarball +2018,bellard,2018_bellard.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2018,bellard,index.html,2000000000,false,html,false,this web page 2018,bellard,README.md,4294967295,true,markdown,true,markdown source for this web page 2018,bellard,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3635,7 +3635,7 @@ 2018,burton1,prog.orig.c,50,false,c,true,original source 2018,burton1,scripthd.sh,100,true,shellscript,true,driver program - adds several nice-to-have features 2018,burton1,try.sh,100,true,shellscript,true,how to run -2018,burton1,2018_burton1.tar.bz2,100000,false,tbz2,false,download entry tarball +2018,burton1,2018_burton1.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2018,burton1,index.html,2000000000,false,html,false,this web page 2018,burton1,README.md,4294967295,true,markdown,true,markdown source for this web page 2018,burton1,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3695,7 +3695,7 @@ 2018,burton2,v7unix,200,true,text,true,reserved words for a given C standard 2018,burton2,spotdiff.sh,250,true,shellscript,true,summarize the results of spotcheck 2018,burton2,src.doc.txt,300,true,text,true,SPOILER WARNING hints about the source -2018,burton2,2018_burton2.tar.bz2,100000,false,tbz2,false,download entry tarball +2018,burton2,2018_burton2.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2018,burton2,index.html,2000000000,false,html,false,this web page 2018,burton2,README.md,4294967295,true,markdown,true,markdown source for this web page 2018,burton2,discrepancies.md,4294967295,true,markdown,true,markdown source for discrepancies.html @@ -3709,7 +3709,7 @@ 2018,ciura,lexicon.pdf,100,true,pdf,false,How to squeeze a lexicon paper 2018,ciura,try.alt.sh,100,true,shellscript,true,how to run alternate code 2018,ciura,try.sh,100,true,shellscript,true,how to run -2018,ciura,2018_ciura.tar.bz2,100000,false,tbz2,false,download entry tarball +2018,ciura,2018_ciura.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2018,ciura,index.html,2000000000,false,html,false,this web page 2018,ciura,README.md,4294967295,true,markdown,true,markdown source for this web page 2018,ciura,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3722,7 +3722,7 @@ 2018,endoh1,invisible.txt,100,true,text,true,input data 2018,endoh1,smily.txt,100,true,text,true,input data 2018,endoh1,try.sh,100,true,shellscript,true,how to run -2018,endoh1,2018_endoh1.tar.bz2,100000,false,tbz2,false,download entry tarball +2018,endoh1,2018_endoh1.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2018,endoh1,index.html,2000000000,false,html,false,this web page 2018,endoh1,README.md,4294967295,true,markdown,true,markdown source for this web page 2018,endoh1,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3735,7 +3735,7 @@ 2018,endoh2,try.sh,100,true,shellscript,true,how to run 2018,endoh2,python3.sh,150,true,shellscript,true,python3 rule script 2018,endoh2,python.sh,150,true,shellscript,true,python rule script -2018,endoh2,2018_endoh2.tar.bz2,100000,false,tbz2,false,download entry tarball +2018,endoh2,2018_endoh2.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2018,endoh2,index.html,2000000000,false,html,false,this web page 2018,endoh2,README.md,4294967295,true,markdown,true,markdown source for this web page 2018,endoh2,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3756,7 +3756,7 @@ 2018,ferguson,try.sh,100,true,shellscript,true,how to run 2018,ferguson,weasel.1,150,true,man,true,weasel program man page 2018,ferguson,weasel.spec,150,true,spec,true,RPM spec file -2018,ferguson,2018_ferguson.tar.bz2,100000,false,tbz2,false,download entry tarball +2018,ferguson,2018_ferguson.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2018,ferguson,index.html,2000000000,false,html,false,this web page 2018,ferguson,README.md,4294967295,true,markdown,true,markdown source for this web page 2018,ferguson,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3771,7 +3771,7 @@ 2018,giles,ioccc.txt,100,true,text,true,sample input 2018,giles,sand.alt.txt,100,true,text,true,sample input 2018,giles,sand.txt,100,true,text,true,sample input -2018,giles,2018_giles.tar.bz2,100000,false,tbz2,false,download entry tarball +2018,giles,2018_giles.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2018,giles,index.html,2000000000,false,html,false,this web page 2018,giles,README.md,4294967295,true,markdown,true,markdown source for this web page 2018,giles,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3782,7 +3782,7 @@ 2018,hou,prog.orig.c,50,false,c,true,original source 2018,hou,input.json,100,true,json,true,sample JSON data 2018,hou,try.sh,100,true,shellscript,true,how to run -2018,hou,2018_hou.tar.bz2,100000,false,tbz2,false,download entry tarball +2018,hou,2018_hou.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2018,hou,index.html,2000000000,false,html,false,this web page 2018,hou,README.md,4294967295,true,markdown,true,markdown source for this web page 2018,hou,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3791,7 +3791,7 @@ 2018,mills,prog.c,20,true,c,true,entry source 2018,mills,Makefile,30,true,makefile,true,entry Makefile 2018,mills,prog.orig.c,50,false,c,true,original source -2018,mills,2018_mills.tar.bz2,100000,false,tbz2,false,download entry tarball +2018,mills,2018_mills.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2018,mills,index.html,2000000000,false,html,false,this web page 2018,mills,README.md,4294967295,true,markdown,true,markdown source for this web page 2018,mills,boot.dat,4294967295,true,binary,false,binary support file @@ -3807,7 +3807,7 @@ 2018,poikola,try.sh,100,true,shellscript,true,how to run 2018,poikola,poikola.tex,150,true,tex,true,supplied documentation 2018,poikola,prog-doc.c,150,true,c,true,minor change to entry source -2018,poikola,2018_poikola.tar.bz2,100000,false,tbz2,false,download entry tarball +2018,poikola,2018_poikola.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2018,poikola,index.html,2000000000,false,html,false,this web page 2018,poikola,README.md,4294967295,true,markdown,true,markdown source for this web page 2018,poikola,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3821,7 +3821,7 @@ 2018,vokes,example-tab.txt,100,true,text,true,sample input 2018,vokes,ioccc.txt,100,true,text,true,sample input 2018,vokes,try.sh,100,true,shellscript,true,how to run -2018,vokes,2018_vokes.tar.bz2,100000,false,tbz2,false,download entry tarball +2018,vokes,2018_vokes.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2018,vokes,index.html,2000000000,false,html,false,this web page 2018,vokes,README.md,4294967295,true,markdown,true,markdown source for this web page 2018,vokes,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3832,7 +3832,7 @@ 2018,yang,prog.orig.c,50,false,c,true,original source 2018,yang,try.sh,100,true,shellscript,true,how to run 2018,yang,spoiler.html,200,true,html,false,SPOILER WARNING -2018,yang,2018_yang.tar.bz2,100000,false,tbz2,false,download entry tarball +2018,yang,2018_yang.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2018,yang,index.html,2000000000,false,html,false,this web page 2018,yang,README.md,4294967295,true,markdown,true,markdown source for this web page 2018,yang,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3848,7 +3848,7 @@ 2019,adamovsky,progSpoiler.c,200,true,c,true,SPOILER WARNING 2019,adamovsky,sierpinski.unl,200,true,text,true,unlambda code 2019,adamovsky,spam.unl,200,true,text,true,unlambda code -2019,adamovsky,2019_adamovsky.tar.bz2,100000,false,tbz2,false,download entry tarball +2019,adamovsky,2019_adamovsky.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2019,adamovsky,index.html,2000000000,false,html,false,this web page 2019,adamovsky,README.md,4294967295,true,markdown,true,markdown source for this web page 2019,adamovsky,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3862,7 +3862,7 @@ 2019,burton,on.one.liners.txt,100,true,text,true,on writing an IOCCC one-liner 2019,burton,try.sh,100,true,shellscript,true,how to run 2019,burton,prog.clean.c,200,true,c,true,version of source without compilation warnings -2019,burton,2019_burton.tar.bz2,100000,false,tbz2,false,download entry tarball +2019,burton,2019_burton.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2019,burton,index.html,2000000000,false,html,false,this web page 2019,burton,256,4294967295,true,binary,false,test suite data 2019,burton,README.md,4294967295,true,markdown,true,markdown source for this web page @@ -3891,7 +3891,7 @@ 2019,ciura,pl.sh,150,true,shellscript,true,run with Polish data 2019,ciura,ru.sh,150,true,shellscript,true,run with Russian data 2019,ciura,fasc5c.pdf,200,true,pdf,false,The Art of Computer Programming vol 4 draft -2019,ciura,2019_ciura.tar.bz2,100000,false,tbz2,false,download entry tarball +2019,ciura,2019_ciura.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2019,ciura,index.html,2000000000,false,html,false,this web page 2019,ciura,README.md,4294967295,true,markdown,true,markdown source for this web page 2019,ciura,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3903,7 +3903,7 @@ 2019,diels-grabsch1,guidelines.txt,100,true,text,true,input data from 2018 IOCCC guidelines 2019,diels-grabsch1,try.sh,100,true,shellscript,true,how to run 2019,diels-grabsch1,Shakespeare.txt,200,true,text,true,Coriolanus by Shakespeare -2019,diels-grabsch1,2019_diels-grabsch1.tar.bz2,100000,false,tbz2,false,download entry tarball +2019,diels-grabsch1,2019_diels-grabsch1.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2019,diels-grabsch1,index.html,2000000000,false,html,false,this web page 2019,diels-grabsch1,README.md,4294967295,true,markdown,true,markdown source for this web page 2019,diels-grabsch1,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3913,7 +3913,7 @@ 2019,diels-grabsch2,Makefile,30,true,makefile,true,entry Makefile 2019,diels-grabsch2,prog.orig.c,50,false,c,true,original source 2019,diels-grabsch2,try.sh,100,true,shellscript,true,how to run -2019,diels-grabsch2,2019_diels-grabsch2.tar.bz2,100000,false,tbz2,false,download entry tarball +2019,diels-grabsch2,2019_diels-grabsch2.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2019,diels-grabsch2,index.html,2000000000,false,html,false,this web page 2019,diels-grabsch2,README.md,4294967295,true,markdown,true,markdown source for this web page 2019,diels-grabsch2,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3936,7 +3936,7 @@ 2019,dogon,try.sh,100,true,shellscript,true,how to run 2019,dogon,unlimited-novelty.mc,100,true,text,true,Golly macrocell input file 2019,dogon,apholife.c,150,true,c,true,partially obfuscated source -2019,dogon,2019_dogon.tar.bz2,100000,false,tbz2,false,download entry tarball +2019,dogon,2019_dogon.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2019,dogon,index.html,2000000000,false,html,false,this web page 2019,dogon,README.md,4294967295,true,markdown,true,markdown source for this web page 2019,dogon,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3948,7 +3948,7 @@ 2019,duble,prog.orig.c,50,false,c,true,original source 2019,duble,check-os.sh,150,true,shellscript,true,check the operating system for compatibility 2019,duble,fullscreen.sh,150,true,shellscript,true,determine full screen size for make fullscreen -2019,duble,2019_duble.tar.bz2,100000,false,tbz2,false,download entry tarball +2019,duble,2019_duble.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2019,duble,index.html,2000000000,false,html,false,this web page 2019,duble,README.md,4294967295,true,markdown,true,markdown source for this web page 2019,duble,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3959,7 +3959,7 @@ 2019,endoh,prog.orig.c,50,false,c,true,original source 2019,endoh,try.sh,100,true,shellscript,true,how to run 2019,endoh,ascii.c,150,true,c,true,shows character value of ASCII -2019,endoh,2019_endoh.tar.bz2,100000,false,tbz2,false,download entry tarball +2019,endoh,2019_endoh.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2019,endoh,index.html,2000000000,false,html,false,this web page 2019,endoh,README.md,4294967295,true,markdown,true,markdown source for this web page 2019,endoh,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3971,7 +3971,7 @@ 2019,giles,BlockDiagram.png,100,true,image,false,reverb algorithm block-diagram of internal structure 2019,giles,try.sh,100,true,shellscript,true,how to run 2019,giles,MonodyVocals.wav,150,true,wav,false,Monody by TheFatRat featuring Laura Brehm -2019,giles,2019_giles.tar.bz2,100000,false,tbz2,false,download entry tarball +2019,giles,2019_giles.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2019,giles,index.html,2000000000,false,html,false,this web page 2019,giles,README.md,4294967295,true,markdown,true,markdown source for this web page 2019,giles,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -3982,7 +3982,7 @@ 2019,karns,prog.orig.c,50,false,c,true,original source 2019,karns,maze,100,true,text,true,input maze map 2019,karns,try.sh,100,true,shellscript,true,how to run -2019,karns,2019_karns.tar.bz2,100000,false,tbz2,false,download entry tarball +2019,karns,2019_karns.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2019,karns,index.html,2000000000,false,html,false,this web page 2019,karns,README.md,4294967295,true,markdown,true,markdown source for this web page 2019,karns,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -4001,7 +4001,7 @@ 2019,lynn,lol.hs,200,true,text,true,compiler macros 2019,lynn,scc.hs,200,true,text,true,compiler macros 2019,lynn,hint.hs,250,true,text,true,spoiler for compiler macros -2019,lynn,2019_lynn.tar.bz2,100000,false,tbz2,false,download entry tarball +2019,lynn,2019_lynn.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2019,lynn,index.html,2000000000,false,html,false,this web page 2019,lynn,README.md,4294967295,true,markdown,true,markdown source for this web page 2019,lynn,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -4011,7 +4011,7 @@ 2019,mills,Makefile,30,true,makefile,true,entry Makefile 2019,mills,prog.orig.c,50,false,c,true,original source 2019,mills,try.sh,100,true,shellscript,true,how to run -2019,mills,2019_mills.tar.bz2,100000,false,tbz2,false,download entry tarball +2019,mills,2019_mills.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2019,mills,index.html,2000000000,false,html,false,this web page 2019,mills,Eugene_Onegin.cp11_1.188,4294967295,true,binary,false,training data from Eugene Onegin poetry 2019,mills,Eugene_Onegin.txt.gz,4294967295,true,gzip,false,compressed Eugene Onegin poetry @@ -4032,7 +4032,7 @@ 2019,poikola,poikola.tex,100,true,tex,true,supplied documentation 2019,poikola,try.alt.sh,100,true,shellscript,true,how to run alternative code 2019,poikola,try.sh,100,true,shellscript,true,how to run -2019,poikola,2019_poikola.tar.bz2,100000,false,tbz2,false,download entry tarball +2019,poikola,2019_poikola.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2019,poikola,index.html,2000000000,false,html,false,this web page 2019,poikola,README.md,4294967295,true,markdown,true,markdown source for this web page 2019,poikola,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -4046,7 +4046,7 @@ 2019,yang,try.sh,100,true,shellscript,true,how to run 2019,yang,violet.c,150,true,c,true,source formatter as ASCII Violet Evergarden 2019,yang,spoiler.html,200,true,html,false,SPOILER WARNING -2019,yang,2019_yang.tar.bz2,100000,false,tbz2,false,download entry tarball +2019,yang,2019_yang.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2019,yang,index.html,2000000000,false,html,false,this web page 2019,yang,README.md,4294967295,true,markdown,true,markdown source for this web page 2019,yang,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -4059,7 +4059,7 @@ 2020,burton,check_be.sh,150,true,shellscript,true,test suite support file 2020,burton,check_le.sh,150,true,shellscript,true,test suite support file 2020,burton,correct,150,true,text,true,test suite comparison data -2020,burton,2020_burton.tar.bz2,100000,false,tbz2,false,download entry tarball +2020,burton,2020_burton.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2020,burton,index.html,2000000000,false,html,false,this web page 2020,burton,README.md,4294967295,true,markdown,true,markdown source for this web page 2020,burton,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -4069,7 +4069,7 @@ 2020,carlini,Makefile,30,true,makefile,true,entry Makefile 2020,carlini,prog.orig.c,50,false,c,true,original source 2020,carlini,try.sh,100,true,shellscript,true,how to run -2020,carlini,2020_carlini.tar.bz2,100000,false,tbz2,false,download entry tarball +2020,carlini,2020_carlini.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2020,carlini,index.html,2000000000,false,html,false,this web page 2020,carlini,README.md,4294967295,true,markdown,true,markdown source for this web page 2020,carlini,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -4086,7 +4086,7 @@ 2020,endoh1,ioccc.txt,150,true,text,true,gameplay map 2020,endoh1,megumin.txt,150,true,text,true,gameplay map 2020,endoh1,unwinnable.txt,150,true,text,true,gameplay map -2020,endoh1,2020_endoh1.tar.bz2,100000,false,tbz2,false,download entry tarball +2020,endoh1,2020_endoh1.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2020,endoh1,index.html,2000000000,false,html,false,this web page 2020,endoh1,README.md,4294967295,true,markdown,true,markdown source for this web page 2020,endoh1,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -4105,7 +4105,7 @@ 2020,endoh2,spoiler/prog.c,200,true,c,true,SPOILER WARNING - generated source 2020,endoh2,spoiler/spoiler.html,200,true,html,false,SPOILER WARNING - about the spoiler 2020,endoh2,spoiler/tmpl.txt,200,true,text,true,SPOILER WARNING - template for the program -2020,endoh2,2020_endoh2.tar.bz2,100000,false,tbz2,false,download entry tarball +2020,endoh2,2020_endoh2.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2020,endoh2,index.html,2000000000,false,html,false,this web page 2020,endoh2,README.md,4294967295,true,markdown,true,markdown source for this web page 2020,endoh2,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -4118,7 +4118,7 @@ 2020,endoh3,prog.orig.c,50,false,c,true,original source 2020,endoh3,run_clock.alt.sh,100,true,shellscript,true,how to run alternate code 2020,endoh3,run_clock.sh,100,true,shellscript,true,how to run -2020,endoh3,2020_endoh3.tar.bz2,100000,false,tbz2,false,download entry tarball +2020,endoh3,2020_endoh3.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2020,endoh3,index.html,2000000000,false,html,false,this web page 2020,endoh3,README.md,4294967295,true,markdown,true,markdown source for this web page 2020,endoh3,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -4145,7 +4145,7 @@ 2020,ferguson1,prog.3-j.c,150,true,c,true,source with artistic layout and shorter j macro 2020,ferguson1,snake.1,150,true,man,true,snake game man page 2020,ferguson1,termcaps.c,150,true,c,true,terminal capability test source code -2020,ferguson1,2020_ferguson1.tar.bz2,100000,false,tbz2,false,download entry tarball +2020,ferguson1,2020_ferguson1.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2020,ferguson1,index.html,2000000000,false,html,false,this web page 2020,ferguson1,COMPILING.md,4294967295,true,markdown,true,markdown source for COMPILING.html 2020,ferguson1,HACKING.md,4294967295,true,markdown,true,markdown source for HACKING.html @@ -4181,7 +4181,7 @@ 2020,ferguson2,key.txt,150,true,text,true,key to decipher or encipher IOCCC 2020,ferguson2,obfuscation.key,150,true,text,true,key to decipher or encipher obfuscation.txt 2020,ferguson2,recode.1,150,true,man,true,configuration tool man page -2020,ferguson2,2020_ferguson2.tar.bz2,100000,false,tbz2,false,download entry tarball +2020,ferguson2,2020_ferguson2.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2020,ferguson2,index.html,2000000000,false,html,false,this web page 2020,ferguson2,README.md,4294967295,true,markdown,true,markdown source for this web page 2020,ferguson2,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -4194,7 +4194,7 @@ 2020,giles,prog.orig.c,50,false,c,true,original source 2020,giles,try.sh,100,true,shellscript,true,how to run 2020,giles,pi.wav,150,true,wav,false,touch tone for leading decimal digits of pi -2020,giles,2020_giles.tar.bz2,100000,false,tbz2,false,download entry tarball +2020,giles,2020_giles.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2020,giles,index.html,2000000000,false,html,false,this web page 2020,giles,README.md,4294967295,true,markdown,true,markdown source for this web page 2020,giles,dtmf.bin,4294967295,true,binary,false,binary support file @@ -4209,7 +4209,7 @@ 2020,kurdyukov1,prog.extra.c,150,true,c,true,variant of entry source with sine function 2020,kurdyukov1,prog.x86_64.asm,200,true,asm,true,assembly source code 2020,kurdyukov1,prog.x86.asm,200,true,asm,true,assembly source code -2020,kurdyukov1,2020_kurdyukov1.tar.bz2,100000,false,tbz2,false,download entry tarball +2020,kurdyukov1,2020_kurdyukov1.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2020,kurdyukov1,index.html,2000000000,false,html,false,this web page 2020,kurdyukov1,README.md,4294967295,true,markdown,true,markdown source for this web page 2020,kurdyukov1,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -4223,7 +4223,7 @@ 2020,kurdyukov2,prog.png.c,150,true,c,true,build a PNG version 2020,kurdyukov2,prog.ppm.c,150,true,c,true,build a PPM version 2020,kurdyukov2,sample.jpg,150,true,image,false,sample image data -2020,kurdyukov2,2020_kurdyukov2.tar.bz2,100000,false,tbz2,false,download entry tarball +2020,kurdyukov2,2020_kurdyukov2.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2020,kurdyukov2,index.html,2000000000,false,html,false,this web page 2020,kurdyukov2,README.md,4294967295,true,markdown,true,markdown source for this web page 2020,kurdyukov2,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -4236,7 +4236,7 @@ 2020,kurdyukov3,input.txt,100,true,text,true,sample input 2020,kurdyukov3,prog.extra.c,100,true,c,true,alternative source with extra functionality 2020,kurdyukov3,try.sh,100,true,shellscript,true,how to run -2020,kurdyukov3,2020_kurdyukov3.tar.bz2,100000,false,tbz2,false,download entry tarball +2020,kurdyukov3,2020_kurdyukov3.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2020,kurdyukov3,index.html,2000000000,false,html,false,this web page 2020,kurdyukov3,README.md,4294967295,true,markdown,true,markdown source for this web page 2020,kurdyukov3,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -4249,7 +4249,7 @@ 2020,kurdyukov4,Shakespeare.txt,100,true,text,true,Shakespeare text 2020,kurdyukov4,rand.c,100,true,c,true,randomize a file 2020,kurdyukov4,try.sh,100,true,shellscript,true,how to run -2020,kurdyukov4,2020_kurdyukov4.tar.bz2,100000,false,tbz2,false,download entry tarball +2020,kurdyukov4,2020_kurdyukov4.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2020,kurdyukov4,index.html,2000000000,false,html,false,this web page 2020,kurdyukov4,README.md,4294967295,true,markdown,true,markdown source for this web page 2020,kurdyukov4,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -4261,7 +4261,7 @@ 2020,otterness,try.sh,100,true,shellscript,true,how to run 2020,otterness,cvikl.mid,150,true,midi,false,sample input sound 2020,otterness,entertainer.mid,159,true,midi,false,sample input sound -2020,otterness,2020_otterness.tar.bz2,100000,false,tbz2,false,download entry tarball +2020,otterness,2020_otterness.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2020,otterness,index.html,2000000000,false,html,false,this web page 2020,otterness,README.md,4294967295,true,markdown,true,markdown source for this web page 2020,otterness,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -4271,7 +4271,7 @@ 2020,tsoj,Makefile,30,true,makefile,true,entry Makefile 2020,tsoj,prog.alt.c,40,true,c,true,alternative source 2020,tsoj,prog.orig.c,50,false,c,true,original source -2020,tsoj,2020_tsoj.tar.bz2,100000,false,tbz2,false,download entry tarball +2020,tsoj,2020_tsoj.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2020,tsoj,index.html,2000000000,false,html,false,this web page 2020,tsoj,README.md,4294967295,true,markdown,true,markdown source for this web page 2020,tsoj,.entry.json,4294967295,true,json,true,description of entry in JSON @@ -4283,7 +4283,7 @@ 2020,yang,try.sh,100,true,shellscript,true,how to run 2020,yang,cppp.cc,150,true,c,true,encode large file C Pre-PreProcessor source 2020,yang,spoiler.html,200,true,html,false,SPOILER WARNING -2020,yang,2020_yang.tar.bz2,100000,false,tbz2,false,download entry tarball +2020,yang,2020_yang.tar.bz2,1415926535,false,tbz2,false,download entry tarball 2020,yang,index.html,2000000000,false,html,false,this web page 2020,yang,README.md,4294967295,true,markdown,true,markdown source for this web page 2020,yang,.entry.json,4294967295,true,json,true,description of entry in JSON diff --git a/tmp/manifest.numbers b/tmp/manifest.numbers index 2816e45d4..9164937bd 100644 Binary files a/tmp/manifest.numbers and b/tmp/manifest.numbers differ diff --git a/years.html b/years.html index 906f83d57..36321432c 100644 --- a/years.html +++ b/years.html @@ -83,6 +83,7 @@