diff --git a/1984/mullender/README.md b/1984/mullender/README.md index a9de3be2b..5e2235616 100644 --- a/1984/mullender/README.md +++ b/1984/mullender/README.md @@ -386,7 +386,7 @@ format randomly. So we wrote a program to choose an appropriate format at random. The program we wrote for that follows. This program actually also extracted the machine code from the object file. -> NOTE from judges: see [gentab.c](gentab.c) for a copy of this file that can be +NOTE from judges: see [gentab.c](gentab.c) for a copy of this file that can be compiled in modern systems. ``` diff --git a/1984/mullender/index.html b/1984/mullender/index.html index 8803c93b5..d82101453 100644 --- a/1984/mullender/index.html +++ b/1984/mullender/index.html @@ -434,10 +434,8 @@ formats for each constant in the resulting array, and we wanted to choose the format randomly. So we wrote a program to choose an appropriate format at random. The program we wrote for that follows. This program actually also 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 <a.out.h>
 
diff --git a/1989/paul/README.md b/1989/paul/README.md
index 81aa1a235..6842fb9fd 100644
--- a/1989/paul/README.md
+++ b/1989/paul/README.md
@@ -19,7 +19,7 @@ out. See [alternate code](#alternate-code) below for more details.
 
 This version was described by the author like:
 
-> I could have squeezed the program under 1024 bytes without the
+I could have squeezed the program under 1024 bytes without the
 trace subroutine, but I felt it was important for understanding
 the program.  Besides it is fun to watch the tape zooming back
 and forth as the program runs.  A much better debugger or trace
diff --git a/1989/paul/index.html b/1989/paul/index.html
index 12ebc8523..641232e63 100644
--- a/1989/paul/index.html
+++ b/1989/paul/index.html
@@ -158,13 +158,11 @@ out. See alternate code below for more details.

./paul

Alternate code:

This version was described by the author like:

-

I could have squeezed the program under 1024 bytes without the trace subroutine, but I felt it was important for understanding the program. Besides it is fun to watch the tape zooming back and forth as the program runs. A much better debugger or trace could easily be added.

-

Alternate build:

    make alt

Alternate use:

diff --git a/1990/jaw/README.md b/1990/jaw/README.md index 037a63f4a..ed0ef4832 100644 --- a/1990/jaw/README.md +++ b/1990/jaw/README.md @@ -69,13 +69,11 @@ Universities Space Research Association
NASA Ames Research Center ---- +``` + "Use an algorithm, go to jail." -> "Use an algorithm, go to jail." -> -> -- anon., circa 1988, pre-[Morris worm](https://en.wikipedia.org/wiki/Morris_worm) era - ----- + -- anon., circa 1988, pre-[Morris worm](https://en.wikipedia.org/wiki/Morris_worm) era +``` Myriad formats have been proposed for network-mailable data. A major difficulty diff --git a/1990/jaw/index.html b/1990/jaw/index.html index 9ca30582a..a3887ace5 100644 --- a/1990/jaw/index.html +++ b/1990/jaw/index.html @@ -193,12 +193,9 @@ directory it is run from.

James A. Woods
Universities Space Research Association
NASA Ames Research Center

-
-
-

“Use an algorithm, go to jail.”

-

– anon., circa 1988, pre-Morris worm era

-
-
+
    "Use an algorithm, go to jail."
+
+    -- anon., circa 1988, pre-[Morris worm](https://en.wikipedia.org/wiki/Morris_worm) era

Myriad formats have been proposed for network-mailable data. A major difficulty undermining the popularity of most file/message bundlers is that the sender assumes prior installation of the computational dual of such bundling software diff --git a/1990/pjr/README.md b/1990/pjr/README.md index 0b79a40fb..2382d1304 100644 --- a/1990/pjr/README.md +++ b/1990/pjr/README.md @@ -59,7 +59,9 @@ to functions! This program prints out the string: -> the quick brown fox jumped over the lazy dog +``` + the quick brown fox jumped over the lazy dog +``` ## Author's remarks: diff --git a/1990/pjr/index.html b/1990/pjr/index.html index e9c0f0f06..ba6752a2d 100644 --- a/1990/pjr/index.html +++ b/1990/pjr/index.html @@ -176,9 +176,7 @@ it is done?

to functions!

Spoiler:

This program prints out the string:

-
-

the quick brown fox jumped over the lazy dog

-
+
    the quick brown fox jumped over the lazy dog

Author’s remarks:

It is simple to make the program print other strings. Each alphabetical character from a to z is printed out as its diff --git a/1990/scjones/README.md b/1990/scjones/README.md index 3d940cded..1b415f76f 100644 --- a/1990/scjones/README.md +++ b/1990/scjones/README.md @@ -28,10 +28,12 @@ ISO character set. The Author sent us this note after he was informed that he won: -> Although I am quite grateful for the "ANSI Committee's Worst Abuse of C" title -> (were you aware that I am a member of the committee or is the double meaning -> unintentional?), I was really hoping for something more along the lines of -> "Closest Resemblance to Line Noise." :-) +``` + Although I am quite grateful for the "ANSI Committee's Worst Abuse of C" title + (were you aware that I am a member of the committee or is the double meaning + unintentional?), I was really hoping for something more along the lines of + "Closest Resemblance to Line Noise." :-) +``` ... it was unintentional. diff --git a/1990/scjones/index.html b/1990/scjones/index.html index 4567da516..83eff6f8c 100644 --- a/1990/scjones/index.html +++ b/1990/scjones/index.html @@ -162,12 +162,10 @@ was a dark and stormy night for C when the ANSI C committee added trigraphs to the standard. Too bad that they didn’t just simply require a more reasonable ISO character set.

The Author sent us this note after he was informed that he won:

-
-

Although I am quite grateful for the “ANSI Committee’s Worst Abuse of C” title -(were you aware that I am a member of the committee or is the double meaning -unintentional?), I was really hoping for something more along the lines of -“Closest Resemblance to Line Noise.” :-)

-
+
    Although I am quite grateful for the "ANSI Committee's Worst Abuse of C" title
+    (were you aware that I am a member of the committee or is the double meaning
+    unintentional?), I was really hoping for something more along the lines of
+    "Closest Resemblance to Line Noise."  :-)

… it was unintentional.

Author’s remarks:

Since this year’s contest is dedicated to ANSI C, here is a strictly conforming diff --git a/1992/adrian/README.md b/1992/adrian/README.md index f9960ecc2..64d10c930 100644 --- a/1992/adrian/README.md +++ b/1992/adrian/README.md @@ -257,7 +257,9 @@ many seconds. If either `adbasename` or `adsleep` is invoked with too few parameters, the program will print the error message: -> Segmentation fault (core dumped) +``` + Segmentation fault (core dumped) +``` (The exact text of the above error messages varies from machine to machine.) The four programs which read from stdin require lines diff --git a/1992/adrian/index.html b/1992/adrian/index.html index eb6f25aec..7f8ebdf15 100644 --- a/1992/adrian/index.html +++ b/1992/adrian/index.html @@ -286,9 +286,7 @@ command. Invoke with a single integer parameter, and it will pause for that many seconds.

If either adbasename or adsleep is invoked with too few parameters, the program will print the error message:

-
-

Segmentation fault (core dumped)

-
+
    Segmentation fault (core dumped)

(The exact text of the above error messages varies from machine to machine.) The four programs which read from stdin require lines shorter than 999 characters.

diff --git a/1994/shapiro/README.md b/1994/shapiro/README.md index 0f27b0386..0dff6ad5c 100644 --- a/1994/shapiro/README.md +++ b/1994/shapiro/README.md @@ -61,8 +61,10 @@ this program. Note that this alt file is currently missing. See The basic theme (pun) of this program is: -> "This time (everything) is not where it should be." -> ~~~~ +``` + "This time (everything) is not where it should be." + ~~~~ +``` My entry ([shapiro.c](shapiro.c)) is mostly comments, formatted in the shape of a diff --git a/1994/shapiro/index.html b/1994/shapiro/index.html index 9233c592a..c449bda2d 100644 --- a/1994/shapiro/index.html +++ b/1994/shapiro/index.html @@ -181,10 +181,8 @@ this program. Note that this alt file is currently missing. See 1994 shapiro bugs for details.

Author’s remarks:

The basic theme (pun) of this program is:

-
-

“This time (everything) is not where it should be.” -~~~~

-
+
    "This time (everything) is not where it should be."
+          ~~~~

My entry (shapiro.c) is mostly comments, formatted in the shape of a clock. If you strip out the comments and look at the code you will quickly realize that the comments were the important part and that diff --git a/2000/schneiderwent/README.md b/2000/schneiderwent/README.md index d1519ed0e..a6a9c00f7 100644 --- a/2000/schneiderwent/README.md +++ b/2000/schneiderwent/README.md @@ -53,7 +53,9 @@ keeping the program portable between different encodings This entry displays the current time to the console, for example: -> it's just after ten 'til 6 in the evening +``` + it's just after ten 'til 6 in the evening +``` FWIW, none of the compilers with which this entry was tested issued any warnings or errors in compiling the source for this entry. No diff --git a/2000/schneiderwent/index.html b/2000/schneiderwent/index.html index 6fed784dd..6f5779d70 100644 --- a/2000/schneiderwent/index.html +++ b/2000/schneiderwent/index.html @@ -175,9 +175,7 @@ keeping the program portable between different encodings (Chinese, Japanese, Russian - anyone?) may be an entertaining task.

Author’s remarks:

This entry displays the current time to the console, for example:

-
-

it’s just after ten ’til 6 in the evening

-
+
    it's just after ten 'til 6 in the evening

FWIW, none of the compilers with which this entry was tested issued any warnings or errors in compiling the source for this entry. No doubt lint will complain about the goto statements.

diff --git a/2001/coupard/README.md b/2001/coupard/README.md index d953854ba..3967d025e 100644 --- a/2001/coupard/README.md +++ b/2001/coupard/README.md @@ -58,7 +58,9 @@ To listen to what the program says directly, invoke The program then speaks out something like -> The time is HH hours MM minutes SS seconds +``` + The time is HH hours MM minutes SS seconds +``` in military time (24 hours). Of course, you need to have permissions to write to `/dev/audio`, have your sound card enabled, the volume up, diff --git a/2001/coupard/index.html b/2001/coupard/index.html index a842c3597..97a4db375 100644 --- a/2001/coupard/index.html +++ b/2001/coupard/index.html @@ -182,9 +182,7 @@ that can do sound, as a lowest-denominator sound I/O interface.

To listen to what the program says directly, invoke

    ./coupard > /dev/audio

The program then speaks out something like

-
-

The time is HH hours MM minutes SS seconds

-
+
    The time is HH hours MM minutes SS seconds

in military time (24 hours). Of course, you need to have permissions to write to /dev/audio, have your sound card enabled, the volume up, the speakers connected … :-)

diff --git a/2004/anonymous/README.md b/2004/anonymous/README.md index 5d5dd720c..a85d24e20 100644 --- a/2004/anonymous/README.md +++ b/2004/anonymous/README.md @@ -62,8 +62,10 @@ some circumflexes missing! That's okay though due to I/O of the entry and in earlier drafts sometimes the û had no diacritic but H after the `u` in it. The real text is: -> Ash nazg durbatulûk, ash nazg gimbatul, ash nazg thrakatulûk, agh -> burzum-ishi krimpatul. +``` + Ash nazg durbatulûk, ash nazg gimbatul, ash nazg thrakatulûk, agh + burzum-ishi krimpatul. +``` which when translated from [Black Speech](https://www.glyphweb.com/arda/b/blackspeech.html) means: diff --git a/2004/anonymous/index.html b/2004/anonymous/index.html index 445903fa9..1fa937faa 100644 --- a/2004/anonymous/index.html +++ b/2004/anonymous/index.html @@ -189,10 +189,8 @@ You’ll find out the source of the text above though you’ll see that there ar some circumflexes missing! That’s okay though due to I/O of the entry and in earlier drafts sometimes the û had no diacritic but H after the u in it. The real text is:

-
-

Ash nazg durbatulûk, ash nazg gimbatul, ash nazg thrakatulûk, agh -burzum-ishi krimpatul.

-
+
    Ash nazg durbatulûk, ash nazg gimbatul, ash nazg thrakatulûk, agh
+    burzum-ishi krimpatul.

which when translated from Black Speech means:

    [One Ring](https://www.glyphweb.com/arda/o/onering.html) to rule them all,
diff --git a/2005/aidan/README.md b/2005/aidan/README.md
index 58bcc7097..fc3a7929e 100644
--- a/2005/aidan/README.md
+++ b/2005/aidan/README.md
@@ -95,7 +95,7 @@ Yes, the test suite really is 5 times larger than the actual program. You
 `./sudoku-sf`. If you rename it, please change the definition of `$sf_exe` to the
 new name.
 
-> Judges' note: this was done.
+**Judges' note**: this was done.
 
 
 ### Legal blurb
@@ -150,7 +150,7 @@ Now, with modern computers this **can** be solved using brute force, e.g.:
     :n%27?"\n":n%81?"\n------+-------+------\n":"\n\n"));}return z;}
 ```
 
-> Judges' note: this was added as [aidan.alt.c](aidan.alt.c).
+**Judges' note**: this was added as [aidan.alt.c](aidan.alt.c).
 
 That isn't the approach I've used; it's slow (particularly in worst-case or
 nearly so scenarios), inelegant, and not a good starting point for sudoku
diff --git a/2005/aidan/index.html b/2005/aidan/index.html
index b65bcb33e..4769d5bef 100644
--- a/2005/aidan/index.html
+++ b/2005/aidan/index.html
@@ -201,9 +201,7 @@ generate new ones.

test.perl expects the sudoku-sf executable to be ./sudoku-sf. If you rename it, please change the definition of $sf_exe to the new name.

-
-

Judges’ note: this was done.

-
+

Judges’ note: this was done.

This program comes with NO WARRANTY, not even that it’ll do what I say it should. Any misfortunes that occur as a result of using this are not my fault. @@ -241,9 +239,7 @@ Telegraph, a UK newspaper.

d;for(n=p;i[++p];);s[p]=n;i[p]=1;goto f;d:z=p<81;printf("\n%s!\n\n",z?"Fail": "Success");for(n=0;n<81;){p=i[n];printf("%c %s",(p?p|48:'.'),(++n%3?"":n%9?"| " :n%27?"\n":n%81?"\n------+-------+------\n":"\n\n"));}return z;}
-
-

Judges’ note: this was added as aidan.alt.c.

-
+

Judges’ note: this was added as aidan.alt.c.

That isn’t the approach I’ve used; it’s slow (particularly in worst-case or nearly so scenarios), inelegant, and not a good starting point for sudoku generation. It’s also much too easy to understand ;-) Instead, I’ve written a diff --git a/2005/boutines/README.md b/2005/boutines/README.md index 672a9ed6d..813188b0a 100644 --- a/2005/boutines/README.md +++ b/2005/boutines/README.md @@ -108,7 +108,7 @@ factors. Therefore this entry is limited to -> ![floor\bigg(\frac{10^6}{4\times(sizeof(double)+1)}-1\bigg)](eqn.png) +![floor\bigg(\frac{10^6}{4\times(sizeof(double)+1)}-1\bigg)](eqn.png) points and won't even be suitable for more than a few thousand; although generated files did pass the [W3C SVG @@ -181,7 +181,7 @@ viewport and potentially every ### Example Output -> ![Voronoi diagram of two regular pentagon vertices](Voronoi.png) +![Voronoi diagram of two regular pentagon vertices](Voronoi.png) 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 -such a statement was beyond our comprehension! We actually thought of selling -this to the Soviets to set their computer science progress back 20 or more -years. Imagine our surprise when AT&T and other U.S. corporations actually began -trying to use Unix and C! It has taken them 20 years to develop enough -expertise to generate even marginally useful applications using this 1960s -technological parody, but we are impressed with the tenacity (if not common -sense) of the general Unix and C programmer. +``` + "To think that modern programmers would try to use a language that allowed + such a statement was beyond our comprehension! We actually thought of selling + this to the Soviets to set their computer science progress back 20 or more + years. Imagine our surprise when AT&T and other U.S. corporations actually began + trying to use Unix and C! It has taken them 20 years to develop enough + expertise to generate even marginally useful applications using this 1960s + technological parody, but we are impressed with the tenacity (if not common + sense) of the general Unix and C programmer. -> "In any event, Brian, Dennis, and I have been working exclusively in Lisp on -the Apple Macintosh for the past few years and feel really guilty about the -chaos, confusion, and truly bad programming that has resulted from our silly -prank so long ago." + "In any event, Brian, Dennis, and I have been working exclusively in Lisp on + the Apple Macintosh for the past few years and feel really guilty about the + chaos, confusion, and truly bad programming that has resulted from our silly + prank so long ago." +``` -> Major Unix and C vendors and customers, including AT&T, Microsoft, +Major Unix and C vendors and customers, including AT&T, Microsoft, Hewlett-Packard, GTE, NCR, and DEC have refused comment at this time. Borland International, a leading vendor of Pascal and C tools, including the popular Turbo Pascal, Turbo C, and Turbo C++, stated they had suspected this for a @@ -1240,7 +1256,7 @@ cryptic statement, Professor Wirth of the ETH Institute and father of the Pascal, Modula 2, and Oberon structured languages, merely stated that P. T. Barnum was correct. -**So is it a hoax about a non-hoax, a non-hoax about a hoax, a non-hoax about a +So is it a hoax about a non-hoax, a non-hoax about a hoax, a non-hoax about a non-hoax or is it a hoax about a hoax ? :) And if it's any of those what does it mean about Unix and C?** And if a hoax is involved *what is the hoax?* The pedant and Tolkienist that I am has to state that **Tolkien didn't consider The Lord of diff --git a/2018/ferguson/index.html b/2018/ferguson/index.html index 34ea09725..d3b660a46 100644 --- a/2018/ferguson/index.html +++ b/2018/ferguson/index.html @@ -287,16 +287,14 @@ dedicated to this entry beyond what will be published on the IOCCC website.

It is an implementation of Richard Dawkins’ Weasel program (Wikipedia). According to Wikipedia in chapter three of his book The Blind Watchmaker Dawkins wrote:

-
-

I don’t know who it was first pointed out that, given enough time, a monkey -bashing away at random on a typewriter could produce all the works of -Shakespeare. The operative phrase is, of course, given enough time. Let us -limit the task facing our monkey somewhat. Suppose that he has to produce, not -the complete works of Shakespeare but just the short sentence ‘Methinks it is -like a weasel’, and we shall make it relatively easy by giving him a typewriter -with a restricted keyboard, one with just the 26 (capital) letters, and a space -bar. How long will he take to write this one little sentence?

-
+
    I don't know who it was first pointed out that, given enough time, a monkey
+    bashing away at random on a typewriter could produce all the works of
+    Shakespeare. The operative phrase is, of course, *given enough time.* Let us
+    limit the task facing our monkey somewhat. Suppose that he has to produce, not
+    the complete works of Shakespeare but just the short sentence 'Methinks it is
+    like a weasel', and we shall make it relatively easy by giving him a typewriter
+    with a restricted keyboard, one with just the 26 (capital) letters, and a space
+    bar.  How long will he take to write this one little sentence?

He refers to the Infinite Monkey Theorem (Wikipedia). As he points out the operative phrase is given enough time; but even if it’s extremely unlikely technically the probability is greater than 0. He simplified it for the @@ -317,18 +315,16 @@ comparison and output will always be capitalised).

Here you can find a general explanation of a genetic algorithm as well as a brief history. Although the link provides more information (including images to try and show the way they work) for those interested I will cite the summary:

-
-

Genetic Algorithms (GAs) are adaptive heuristic search algorithm based on the -evolutionary ideas of natural selection and genetics. As such they represent an -intelligent exploitation of a random search used to solve optimization problems. -Although randomised, GAs are by no means random, instead they exploit historical -information to direct the search into the region of better performance within -the search space. The basic techniques of the GAs are designed to simulate -processes in natural systems necessary for evolution, specially those follow the -principles first laid down by Charles Darwin of “survival of the fittest.”. -Since in nature, competition among individuals for scanty resources results in -the fittest individuals dominating over the weaker ones.

-
+
    Genetic Algorithms (GAs) are adaptive heuristic search algorithm based on the
+    evolutionary ideas of natural selection and genetics. As such they represent an
+    intelligent exploitation of a random search used to solve optimization problems.
+    Although randomised, GAs are by no means random, instead they exploit historical
+    information to direct the search into the region of better performance within
+    the search space. The basic techniques of the GAs are designed to simulate
+    processes in natural systems necessary for evolution, specially those follow the
+    principles first laid down by Charles Darwin of "survival of the fittest.".
+    Since in nature, competition among individuals for scanty resources results in
+    the fittest individuals dominating over the weaker ones.

SPOILER WARNING: Some of the below might help you follow the code more easily.

For each generation there is a total of N offspring; generation 0 is @@ -354,25 +350,19 @@ found.

Note that the generation is checked before the scoring takes place by a prefix increment equality check; when the generation is SIZE_MAX - 1 the fitness test loop will not be entered; instead the outer loop will end after printing:

-
-

Too many attempts, blaming the monkey Eric even if he isn’t typing or doesn’t exist. Bye.

-
+
    Too many attempts, blaming the monkey Eric even if he isn't typing or doesn't exist. Bye.

Why ‘Eric’? Because the judges stated in the 2018 guidelines that when there is a user input error the program should insult the pet fish Eric even if such a fish (no, weasels do not equate monkeys to fish but see below) doesn’t exist. The second to last example limitation example note (it’s improved in the final but this is relevant) they give is:

-

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.

-
+
    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.

After the final message they ask:

-

BTW: What is so special about 2305567963945518424753102147331756070? You tell us!

-

The answer is this: it is the primorial prime of 97: the product of all prime numbers less than or equal to N; and the primorial prime of N == 97 is 2305567963945518424753102147331756070. There is no reference to this number @@ -783,19 +773,13 @@ deciphering #7 help you decipher #5).

Beauty

Skip to How to build.

On the subject of beauty: the judges stated in the guidelines the following:

-
-

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!

-
+
    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!*

And if you’ll notice that although it might look like a compact blob of octets at first glance if you look throughout the file you’ll see two statements to set your thinking straight:

-

NO BLOB CODING

-
-

THIS IS NOT A COMPACT BLOB OF OCTETS

-

So you see even if your eyes are trying to deceive you they’re quite wrong. Yes some of it might look like a blob but this is clearly false; as all good programmers know if something is potentially confusing or misleading it should @@ -934,113 +918,93 @@ code must be quite difficult (though maybe not as much as if you were to have to look at Microsoft Windows code or code for Windows in any case ? :)) and these two things I think are rather amusing (in order of least to most):

Dennis Ritchie’s Anti-Foreword:

-
-

Anti-Foreword

-
-
-

By Dennis Ritchie -From: dmr@plan9.research.att.com -Date: Tue, 15 Mar 1994 00:38:07 EST -Subject: anti-foreword

-
-
-

To the contributers to this book:

-
-
-

I have succumbed to the temptation you offered in your preface: I do write you -off as envious malcontents and romantic keepers of memories. The systems you -remember so fondly (TOPS-20, ITS, Multics, Lisp Machine, Cedar/Mesa, the Dorado) -are not just out to pasture, they are fertilizing it from below.

-
-
-

Your judgments are not keen, they are intoxicated by metaphor. In the Preface -you suffer first from heat, lice, and malnourishment, then become prisoners in -a Gulag. In Chapter 1 you are in turn infected by a virus, racked by drug -addiction, and addled by puffiness of the genome.

-
-
-

Yet your prison without coherent design continues to imprison you. How can -this be, if it has no strong places? The rational prisoner exploits the weak -places, creates order from chaos: instead, collectives like the FSF vindicate -their jailers by building cells almost compatible with the existing ones, albeit -with more features. The journalist with three undergraduate degrees from MIT, -the researcher at Microsoft, and the senior scientist at Apple might volunteer a -few words about the regulations of the prisons to which they have been -transferred.

-
-
-

Your sense of the possible is in no sense pure: sometimes you want the same -thing you have, but wish you had done it yourselves; other times you want -something different, but can’t seem to get people to use it; sometimes one -wonders why you just don’t shut up and tell people to buy a PC with Windows or a -Mac. No Gulag or lice, just a future whose intellectual tone and interaction -style is set by Sonic the Hedgehog. You claim to seek progress, but you succeed -mainly in whining.

-
-
-

Here is my metaphor: your book is a pudding stuffed with apposite -observations, many well-conceived. Like excrement, it contains enough undigested -nuggets of nutrition to sustain life for some. But it is not a tasty pie: it -reeks too much of contempt and of envy.

-
-
-

Bon appetit!

-
+
    Anti-Foreword
+
+    By Dennis Ritchie
+    From: dmr@plan9.research.att.com
+    Date: Tue, 15 Mar 1994 00:38:07 EST
+    Subject: anti-foreword
+
+    To the contributers to this book:
+
+    I have succumbed to the temptation you offered in your preface: I do write you
+    off as envious malcontents and romantic keepers of memories.  The systems you
+    remember so fondly (TOPS-20, ITS, Multics, Lisp Machine, Cedar/Mesa, the Dorado)
+    are not just out to pasture, they are fertilizing it from below.
+
+    Your judgments are not keen, they are intoxicated by metaphor. In the Preface
+    you suffer first from heat, lice, and malnourishment, then become prisoners in
+    a Gulag. In Chapter 1 you are in turn infected by a virus, racked by drug
+    addiction, and addled by puffiness of the genome.
+
+    Yet your prison without coherent design continues to imprison you. How can
+    this be, if it has no strong places? The rational prisoner exploits the weak
+    places, creates order from chaos: instead, collectives like the FSF vindicate
+    their jailers by building cells almost compatible with the existing ones, albeit
+    with more features. The journalist with three undergraduate degrees from MIT,
+    the researcher at Microsoft, and the senior scientist at Apple might volunteer a
+    few words about the regulations of the prisons to which they have been
+    transferred.
+
+    Your sense of the possible is in no sense pure: sometimes you want the same
+    thing you have, but wish you had done it yourselves; other times you want
+    something different, but can't seem to get people to use it; sometimes one
+    wonders why you just don't shut up and tell people to buy a PC with Windows or a
+    Mac. No Gulag or lice, just a future whose intellectual tone and interaction
+    style is set by Sonic the Hedgehog. You claim to seek progress, but you succeed
+    mainly in whining.
+
+    Here is my metaphor: your book is a pudding stuffed with apposite
+    observations, many well-conceived. Like excrement, it contains enough undigested
+    nuggets of nutrition to sustain life for some. But it is not a tasty pie: it
+    reeks too much of contempt and of envy.
+
+    Bon appetit!

Yes he misspelt ‘contributors’! But then again we’re talking about obfuscation and since it doesn’t break his message it’s not broken - it’s just obfuscated albeit not very much (and it still ‘compiles’!); and isn’t that what this contest is about? :)

Ken Thompson’s ending:

-
-

Creators Admit C, Unix Were Hoax

-
-
-

FOR IMMEDIATE RELEASE

-
-
-

In an announcement that has stunned the computer industry, Ken Thompson, -Dennis Ritchie, and Brian Kernighan admitted that the Unix operating system and -C programming language created by them is an elaborate April Fools prank kept -alive for more than 20 years. Speaking at the recent UnixWorld Software -Development Forum, Thompson revealed the following:

-
-
-

“In 1969, AT&T had just terminated their work with the GE/AT&T Multics -project. Brian and I had just started working with an early release of Pascal -from Professor Nichlaus Wirth’s ETH labs in Switzerland, and we were impressed -with its elegant simplicity and power. Dennis had just finished reading Bored of -the Rings, a hilarious National Lampoon parody of the great Tolkien Lord of the -Rings trilogy. As a lark, we decided to do parodies of the Multics environment -and Pascal. Dennis and I were responsible for the operating environment. We -looked at Multics and designed the new system to be as complex and cryptic as -possible to maximize casual users’ frustration levels, calling it Unix as a -parody of Multics, as well as other more risque allusions.

-
-
-

“Then Dennis and Brian worked on a truly warped version of Pascal, called”A.” -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:

-
+
    Creators Admit C, Unix Were Hoax
+
+    FOR IMMEDIATE RELEASE
+
+    In an announcement that has stunned the computer industry, Ken Thompson,
+    Dennis Ritchie, and Brian Kernighan admitted that the Unix operating system and
+    C programming language created by them is an elaborate April Fools prank kept
+    alive for more than 20 years. Speaking at the recent UnixWorld Software
+    Development Forum, Thompson revealed the following:
+
+    "In 1969, AT&T had just terminated their work with the GE/AT&T Multics
+    project.  Brian and I had just started working with an early release of Pascal
+    from Professor Nichlaus Wirth's ETH labs in Switzerland, and we were impressed
+    with its elegant simplicity and power. Dennis had just finished reading Bored of
+    the Rings, a hilarious National Lampoon parody of the great Tolkien Lord of the
+    Rings trilogy. As a lark, we decided to do parodies of the Multics environment
+    and Pascal. Dennis and I were responsible for the operating environment. We
+    looked at Multics and designed the new system to be as complex and cryptic as
+    possible to maximize casual users' frustration levels, calling it Unix as a
+    parody of Multics, as well as other more risque allusions.
+
+    "Then Dennis and Brian worked on a truly warped version of Pascal, called "A."
+    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++/
     8)%2))P("|"+(*u/4)%2);
-
-

“To think that modern programmers would try to use a language that allowed -such a statement was beyond our comprehension! We actually thought of selling -this to the Soviets to set their computer science progress back 20 or more -years. Imagine our surprise when AT&T and other U.S. corporations actually began -trying to use Unix and C! It has taken them 20 years to develop enough -expertise to generate even marginally useful applications using this 1960s -technological parody, but we are impressed with the tenacity (if not common -sense) of the general Unix and C programmer.

-
-
-

“In any event, Brian, Dennis, and I have been working exclusively in Lisp on -the Apple Macintosh for the past few years and feel really guilty about the -chaos, confusion, and truly bad programming that has resulted from our silly -prank so long ago.”

-
-
+
    "To think that modern programmers would try to use a language that allowed
+    such a statement was beyond our comprehension! We actually thought of selling
+    this to the Soviets to set their computer science progress back 20 or more
+    years. Imagine our surprise when AT&T and other U.S. corporations actually began
+    trying to use Unix and C!  It has taken them 20 years to develop enough
+    expertise to generate even marginally useful applications using this 1960s
+    technological parody, but we are impressed with the tenacity (if not common
+    sense) of the general Unix and C programmer.
+
+    "In any event, Brian, Dennis, and I have been working exclusively in Lisp on
+    the Apple Macintosh for the past few years and feel really guilty about the
+    chaos, confusion, and truly bad programming that has resulted from our silly
+    prank so long ago."

Major Unix and C vendors and customers, including AT&T, Microsoft, Hewlett-Packard, GTE, NCR, and DEC have refused comment at this time. Borland International, a leading vendor of Pascal and C tools, including the popular @@ -1052,10 +1016,9 @@ the RS/6000, merely stating “Workplace OS will be available Real Soon Now.” cryptic statement, Professor Wirth of the ETH Institute and father of the Pascal, Modula 2, and Oberon structured languages, merely stated that P. T. Barnum was correct.

-
-

So is it a hoax about a non-hoax, a non-hoax about a hoax, a non-hoax about a +

So is it a hoax about a non-hoax, a non-hoax about a hoax, a non-hoax about a non-hoax or is it a hoax about a hoax ? :) And if it’s any of those what does it -mean about Unix and C? And if a hoax is involved what is the hoax? The pedant +mean about Unix and C?** And if a hoax is involved what is the hoax? The pedant and Tolkienist that I am has to state that Tolkien didn’t consider The Lord of the Rings a trilogy (and he made that very clear) but that doesn’t take away from the humour by any stretch (if anyone wants me to elaborate or debate the diff --git a/2018/mills/README.md b/2018/mills/README.md index ff7cb4700..07e7f16b8 100644 --- a/2018/mills/README.md +++ b/2018/mills/README.md @@ -387,12 +387,14 @@ respectively. Let's try the Dennis Richie's `dmr` account: Even though this is not Ken's doing, I feel this gives me licence to include this quote from the BSD `fortune` program: -> Ken Thompson has an automobile which he helped design. Unlike -> most automobiles, it has neither speedometer, nor gas gauge, -> nor any of the numerous idiot lights which plague the modern -> driver. Rather, if the driver makes any mistake, a giant "?" -> lights up in the center of the dashboard. "The experienced -> driver", he says, "will usually know what's wrong." +``` + Ken Thompson has an automobile which he helped design. Unlike + most automobiles, it has neither speedometer, nor gas gauge, + nor any of the numerous idiot lights which plague the modern + driver. Rather, if the driver makes any mistake, a giant "?" + lights up in the center of the dashboard. "The experienced + driver", he says, "will usually know what's wrong." +``` What's the deal here? Well, that's a slightly long story. The short version is we have gone so far back in the history of UNIX that *we don't have @@ -466,9 +468,11 @@ convenience of writing code in a high-level language -- Multics was written in a version of PL/1 -- and wanted the same convenience in UNIX. He preferred BCPL (a typeless language) to PL/1. As Dennis Ritchie [wrote] [6]: -> B can be thought of as C without types; more accurately, -> it is BCPL squeezed into 8K bytes of memory and filtered -> through Thompson's brain. +``` + B can be thought of as C without types; more accurately, + it is BCPL squeezed into 8K bytes of memory and filtered + through Thompson's brain. +``` A look at the B reference manual will show the strong correlation with C, and shows the source of a lot of C's mysteriousness -- some of which is preserved diff --git a/2018/mills/index.html b/2018/mills/index.html index bc1bae2e3..bbbe2acf5 100644 --- a/2018/mills/index.html +++ b/2018/mills/index.html @@ -405,14 +405,12 @@ respectively. Let’s try the Dennis Richie’s dmr account:

. ?

Even though this is not Ken’s doing, I feel this gives me licence to include this quote from the BSD fortune program:

-
-

Ken Thompson has an automobile which he helped design. Unlike -most automobiles, it has neither speedometer, nor gas gauge, -nor any of the numerous idiot lights which plague the modern -driver. Rather, if the driver makes any mistake, a giant “?” -lights up in the center of the dashboard. “The experienced -driver”, he says, “will usually know what’s wrong.”

-
+
    Ken Thompson has an automobile which he helped design. Unlike
+    most automobiles, it has neither speedometer, nor gas gauge,
+    nor any of the numerous idiot lights which plague the modern
+    driver. Rather, if the driver makes any mistake, a giant "?"
+    lights up in the center of the dashboard. "The experienced
+    driver", he says, "will usually know what's wrong."

What’s the deal here? Well, that’s a slightly long story. The short version is we have gone so far back in the history of UNIX that we don’t have filesystem paths yet. In other words, we can’t say something like @@ -474,11 +472,9 @@ the [B programming language] 6:

-
-

B can be thought of as C without types; more accurately, -it is BCPL squeezed into 8K bytes of memory and filtered -through Thompson’s brain.

-
+
    B can be thought of as C without types; more accurately,
+    it is BCPL squeezed into 8K bytes of memory and filtered
+    through Thompson's brain.

A look at the B reference manual will show the strong correlation with C, and shows the source of a lot of C’s mysteriousness – some of which is preserved simply so that C could compile the dozens of lines of existing B code…

diff --git a/2019/adamovsky/README.md b/2019/adamovsky/README.md index ee8565c7f..6fc755b7b 100644 --- a/2019/adamovsky/README.md +++ b/2019/adamovsky/README.md @@ -96,7 +96,7 @@ and run it like this: ./prog advent.unl ``` -> NOTE: the file was added to the entry so there is no need to download it. +**NOTE**: the file was added to the entry so there is no need to download it. You can also try other programs from the Web. Many example programs are in the official [Unlambda distribution][3] on the Unlambda homepage. The most complex programs there are diff --git a/2019/adamovsky/index.html b/2019/adamovsky/index.html index 0df4a952e..613ce1064 100644 --- a/2019/adamovsky/index.html +++ b/2019/adamovsky/index.html @@ -196,9 +196,7 @@ by the sheer length of the dividing line and totally overlooks the rest of the p download the Colossal Cave Adventure (the advent.unl file) and run it like this:

    ./prog advent.unl
-
-

NOTE: the file was added to the entry so there is no need to download it.

-
+

NOTE: the file was added to the entry so there is no need to download it.

You can also try other programs from the Web. Many example programs are in the official Unlambda distribution on the Unlambda homepage. The most complex programs there are entries from quine contest.

diff --git a/2019/diels-grabsch1/README.md b/2019/diels-grabsch1/README.md index 3cbb27d9b..fae4212cf 100644 --- a/2019/diels-grabsch1/README.md +++ b/2019/diels-grabsch1/README.md @@ -62,8 +62,7 @@ right now. And exactly the same shape. Nevertheless, it is portable C99 code that runs on 32-bit and 64-bit platforms. It compiles without warnings on both GCC and Clang even with `-Wextra and -Weverything`. -> 2023 note: the above paragraph might not be true as far as number of bytes -goes. +**2023 note**: the above paragraph might not be true as far as number of bytes goes.