force use of pandoc version >= 3.1.12.2

The `bin/pandoc-wrapper.sh` tool will verify that the ssytem
has a recent enough version of `pandoc(1)`.

We explain why we insist on `pandoc(1)`. version >= 3.1.12.2
in comments where the $PANDOC_MIN_VERSION is set.

Added `--wrap=preserve` as a default argument to `pandoc(1)`.
While this change will impact every HTML file generated,
we believe this will improve the ability of someone to look
at the generated HTML and correlate with the original markdown.

Changed `bin/pandoc-wrapper.sh` VERSION from "1.4.2 2024-03-17"
to "1.4.3 2024-03-18".

Performed `make www` to achieve all of the above and to generate
HTML using the new  `--wrap=preserve` `pandoc(1)` mode.
This commit is contained in:
Landon Curt Noll committed 2024-03-18 01:26:39 -07:00
1 parent 9eb7a54e9f
commit b0b212acb1
402 files changed
+37061 -55132

No files matched your search

+94 -131
View File
@@ -130,8 +130,8 @@
<h2 id="author"><a name="author"></a>Author:</h2>
<ul>
<li>Name: <a href="../../authors.html#Adrian_Cable">Adrian Cable</a><br>
Location: <a href="../../location.html#US">US</a> - <em>United States of
America</em> (<em>United States</em>) <br><br></li>
Location: <a href="../../location.html#US">US</a> - <em>United States of America</em> (<em>United States</em>)
<br><br></li>
</ul>
<!-- END: next line ends content generated by: bin/output-index-author.sh -->
@@ -144,176 +144,139 @@ America</em> (<em>United States</em>) <br><br></li>
<h3 id="bugs-and-misfeatures">Bugs and (Mis)features:</h3>
<p>The current status of this entry is:</p>
<pre><code>STATUS: INABIAF - please **DO NOT** fix</code></pre>
<p>For more detailed information see <a
href="../../bugs.html#2013_cable2">2013 cable2 bugs</a>.</p>
<p>For more detailed information see <a href="../../bugs.html#2013_cable2">2013 cable2 bugs</a>.</p>
<h2 id="to-use">To use:</h2>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./cable2</span> file.bmp <span class="pp">[</span><span class="ss">color</span><span class="pp">]</span></span></code></pre></div>
<h2 id="try">Try:</h2>
<p>For different OCR examples:</p>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./try.sh</span></span></code></pre></div>
<h2 id="judges-remarks">Judges’ remarks:</h2>
<p>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 scanner.</p>
<p>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
scanner.</p>
<h2 id="authors-remarks">Author’s remarks:</h2>
<h3 id="ocr---obfuscated-character-recognition-of-handwritten-text">OCR
- Obfuscated Character Recognition of Handwritten Text</h3>
<p>This entry takes a BMP image file of hand-drawn (mouse-drawn?) text,
specified as the first command-line parameter, and converts it to an
ASCII text document. Magic!</p>
<p>BMP files created by most paint programs should work. The author
recommends Paint.NET.</p>
<h3 id="ocr---obfuscated-character-recognition-of-handwritten-text">OCR - Obfuscated Character Recognition of Handwritten Text</h3>
<p>This entry takes a BMP image file of hand-drawn (mouse-drawn?) text, specified
as the first command-line parameter, and converts it to an ASCII text document.
Magic!</p>
<p>BMP files created by most paint programs should work. The author recommends
Paint.NET.</p>
<h3 id="features">Features</h3>
<ul>
<li>Every printable ASCII character is recognized (94 characters plus
space), plus a special bonus character.</li>
<li>Input images can be any size (limited only by memory), containing
any number of lines of text.</li>
<li>BMP is really a mess of different formats, but the program supports
most of them from Windows 3.1 and later.</li>
<li>Hand-drawn characters in the input image can be variably spaced and
positioned and be of any width or height, but the bigger the better for
accurate recognition (300 pixels tall or more is recommended).
Characters must be drawn with a stroke width of around 9 pixels, and
separated from adjacent characters. (In Paint.NET a brush of width 9
works well, with anti-aliasing turned off.)</li>
<li>You can use any colors you like for the text and background, even
different colors for different text characters.</li>
<li>If “color” is specified as the second command line parameter, the
program’s output will also be in color, on ANSI/VTxxx terminals.</li>
<li>Every printable ASCII character is recognized (94 characters plus space), plus
a special bonus character.</li>
<li>Input images can be any size (limited only by memory), containing any number
of lines of text.</li>
<li>BMP is really a mess of different formats, but the program supports most of
them from Windows 3.1 and later.</li>
<li>Hand-drawn characters in the input image can be variably spaced and positioned
and be of any width or height, but the bigger the better for accurate
recognition (300 pixels tall or more is recommended). Characters must be drawn
with a stroke width of around 9 pixels, and separated from adjacent characters.
(In Paint.NET a brush of width 9 works well, with anti-aliasing turned off.)</li>
<li>You can use any colors you like for the text and background, even different
colors for different text characters.</li>
<li>If “color” is specified as the second command line parameter, the program’s
output will also be in color, on ANSI/VTxxx terminals.</li>
</ul>
<h3 id="why-is-this-entry-obfuscatedinteresting">Why is this entry
obfuscated/interesting?</h3>
<h3 id="why-is-this-entry-obfuscatedinteresting">Why is this entry obfuscated/interesting?</h3>
<ul>
<li>The source is presented as a beautiful moonlit scene, in which a
quick brown fox jumps over a lazy dog. Far too often in software
development is aesthetic nuance lost in the name of serious-sounding
conventions like “GNU style”, but not here.</li>
<li>Newcomers to C find it hard to learn all those different ways to
control flow: <code>for</code>, <code>while</code>, <code>if</code>,
<code>do</code>, <code>goto</code>, <code>continue</code>,
<code>break</code> and heaven knows what else! So, in this program we
only use <code>for</code>, so absolute beginners can get into the code
straight away.</li>
<li>To teach newcomers all the important features of C, we demonstrate
the importance of the liberal use of short circuits, sequence points,
the ternary operator, using <code>x^y</code> or <code>x-y</code> instead
of <code>x!=y</code>, using <code>~x</code> in place of
<code>x!=-1</code> for conciseness, mixing <code>x[y]</code> and
<code>y[x]</code> for variety, educational <code>#define</code>s, and so
on.</li>
<li><code>main()</code> is the most useful function in all of C - so it
is a mystery to the author why most programs use it only once. Here we
use it over and over for maximum benefit.</li>
<li>The number <a href="https://hitchhikers.fandom.com/wiki/42">42</a>
is featured in the source to provide an answer to the judges’ deeper
questions.</li>
<li>How are character colors converted from RGB in the input image to
ANSI escape sequences? Clue: the weird macro <code>P</code> does the
interesting part of it, but how?</li>
<li>The program prints a string when the bonus character is detected.
How does it do this? Clue: the string to print is defined in the macro
<code>$</code>, but how can a string defined in that way ever get
printed?</li>
<li>The source is presented as a beautiful moonlit scene, in which a quick brown
fox jumps over a lazy dog. Far too often in software development is aesthetic
nuance lost in the name of serious-sounding conventions like “GNU style”, but
not here.</li>
<li>Newcomers to C find it hard to learn all those different ways to control flow:
<code>for</code>, <code>while</code>, <code>if</code>, <code>do</code>, <code>goto</code>, <code>continue</code>, <code>break</code> and heaven knows what
else! So, in this program we only use <code>for</code>, so absolute beginners can get into
the code straight away.</li>
<li>To teach newcomers all the important features of C, we demonstrate the
importance of the liberal use of short circuits, sequence points, the ternary
operator, using <code>x^y</code> or <code>x-y</code> instead of <code>x!=y</code>, using <code>~x</code> in place of <code>x!=-1</code>
for conciseness, mixing <code>x[y]</code> and <code>y[x]</code> for variety, educational <code>#define</code>s,
and so on.</li>
<li><code>main()</code> is the most useful function in all of C - so it is a mystery to the
author why most programs use it only once. Here we use it over and over for
maximum benefit.</li>
<li>The number <a href="https://hitchhikers.fandom.com/wiki/42">42</a> is featured in the
source to provide an answer to the judges’ deeper questions.</li>
<li>How are character colors converted from RGB in the input image to ANSI escape
sequences? Clue: the weird macro <code>P</code> does the interesting part of it, but how?</li>
<li>The program prints a string when the bonus character is detected. How does it
do this? Clue: the string to print is defined in the macro <code>$</code>, but how can a
string defined in that way ever get printed?</li>
</ul>
<h3 id="other-notes">Other notes</h3>
<ul>
<li>The novel character recognition algorithm used has not been
previously published and was developed by the author specifically for
the contest. Should this entry win the IOCCC, it will be the first time
(to the author’s knowledge) that the IOCCC has been used for peer
review/publication of original research.</li>
<li>OCR in general is a hard problem. Here, we only recognise one
possible form for each character. You can see what the supported
character shapes look like by looking at the examples in <a
href="ascii.bmp">ascii.bmp</a>. If you copy the shape of the character
forms you find in there, recognition accuracy should be very good
(95%+). A more “useful” version would extend the character stroke table
to support multiple different commonly-used forms for each
character.</li>
<li>Despite being the largest possible IOCCC entry at 4096 bytes, it is
also probably the smallest general-purpose OCR program ever written
(including the character stroke data), maybe by several orders of
magnitude.</li>
<li>The author used an interesting compression algorithm (suggested by
Gareth McCaughan - thank you!) to squeeze the character stroke table
(containing around 2000 strokes for the whole ASCII character set) into
a string constant of just 472 characters.</li>
<li>The novel character recognition algorithm used has not been previously
published and was developed by the author specifically for the contest. Should
this entry win the IOCCC, it will be the first time (to the author’s knowledge)
that the IOCCC has been used for peer review/publication of original research.</li>
<li>OCR in general is a hard problem. Here, we only recognise one possible form
for each character. You can see what the supported character shapes look like by
looking at the examples in <a href="ascii.bmp">ascii.bmp</a>. If you copy the shape of the
character forms you find in there, recognition accuracy should be very good
(95%+). A more “useful” version would extend the character stroke table to
support multiple different commonly-used forms for each character.</li>
<li>Despite being the largest possible IOCCC entry at 4096 bytes, it is also
probably the smallest general-purpose OCR program ever written (including the
character stroke data), maybe by several orders of magnitude.</li>
<li>The author used an interesting compression algorithm (suggested by Gareth
McCaughan - thank you!) to squeeze the character stroke table (containing around
2000 strokes for the whole ASCII character set) into a string constant of just
472 characters.</li>
</ul>
<h3 id="bugsfeatures">Bugs/features</h3>
<ul>
<li>The width of input images must be a multiple of 4.</li>
<li>Input images can be 8-bit greyscale, 24-bit color or 32-bit color
only. 8-bit color and 16-bit color are not supported. If you use the
“color” command-line feature, do not use a greyscale input file!</li>
<li>Normal Windows BMP files are stored “upside-down”, i.e. the bottom
line in the image is written first. Some (old) graphics programs
actually write BMP files “top-to-bottom” and the program does not
support such files.</li>
<li>Using anti-aliased brush strokes to draw your letters is fine;
however, antialiasing interferes with color detection in “color”
mode.</li>
<li>Only runs on little endian machines (since the BMP format is little
endian, and endianness conversion would make the source too large for
IOCCC rule 2).</li>
<li>Input images can be 8-bit greyscale, 24-bit color or 32-bit color only. 8-bit
color and 16-bit color are not supported. If you use the “color” command-line
feature, do not use a greyscale input file!</li>
<li>Normal Windows BMP files are stored “upside-down”, i.e. the bottom line in the
image is written first. Some (old) graphics programs actually write BMP files
“top-to-bottom” and the program does not support such files.</li>
<li>Using anti-aliased brush strokes to draw your letters is fine; however,
antialiasing interferes with color detection in “color” mode.</li>
<li>Only runs on little endian machines (since the BMP format is little endian,
and endianness conversion would make the source too large for IOCCC rule 2).</li>
</ul>
<h3 id="compiler-warnings">Compiler warnings</h3>
<p><code>clang</code> warns about unused expression results, missing
type specifiers, and incompatible pointer conversions - all just a fun
consequence of the obfuscations.</p>
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0
License:</h2>
<p>This file is Copyright (c) 2023 by Landon Curt Noll. All Rights
Reserved. You are free to share and adapt this file under the terms of
this license:</p>
<p><code>clang</code> warns about unused expression results, missing type specifiers, and
incompatible pointer conversions - all just a fun consequence of the
obfuscations.</p>
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0 License:</h2>
<p>This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
You are free to share and adapt this file under the terms of this license:</p>
<pre><code>Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</code></pre>
<p>For more information, see:
https://creativecommons.org/licenses/by-sa/4.0/</p>
<p>For more information, see: https://creativecommons.org/licenses/by-sa/4.0/</p>
<!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
<!-- START: this line starts content for HTML phase 22 by: bin/output-index-inventory.sh via bin/md2html.sh -->
<!-- START: this line starts content generated by: bin/output-index-inventory.sh -->
<h1 id="inventory-for-2013cable2"><a name="inventory"></a>Inventory for
2013/cable2</h1>
<h1 id="inventory-for-2013cable2"><a name="inventory"></a>Inventory for 2013/cable2</h1>
<p><a href="#top">Jump to top</a></p>
<h2 id="primary-files">Primary files</h2>
<ul>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/cable2/cable2.c">cable2.c</a>
- entry source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/cable2/Makefile">Makefile</a>
- entry Makefile</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/cable2/cable2.orig.c">cable2.orig.c</a>
- original source</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/cable2/try.sh">try.sh</a>
- how to run</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/cable2/cable2.c">cable2.c</a> - entry source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/cable2/Makefile">Makefile</a> - entry Makefile</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/cable2/cable2.orig.c">cable2.orig.c</a> - original source</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/cable2/try.sh">try.sh</a> - how to run</li>
<li><a href="ascii.bmp">ascii.bmp</a> - PC bitmap image</li>
<li><a href="bonus.bmp">bonus.bmp</a> - PC bitmap image</li>
<li><a href="hello_world.bmp">hello_world.bmp</a> - PC bitmap image</li>
<li><a href="mixed_sizes.bmp">mixed_sizes.bmp</a> - PC bitmap image</li>
<li><a href="multi_color.bmp">multi_color.bmp</a> - PC bitmap image</li>
<li><a href="typeset.bmp">typeset.bmp</a> - PC bitmap image</li>
<li><a href="2013_cable2.tar.bz2">2013_cable2.tar.bz2</a> - download
entry source</li>
<li><a href="2013_cable2.tar.bz2">2013_cable2.tar.bz2</a> - download entry source</li>
</ul>
<h2 id="secondary-files">Secondary files</h2>
<ul>
<li><a href="index.html">index.html</a> - entry home page</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/cable2/.entry.json">.entry.json</a>
- description of entry in JSON</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/cable2/.gitignore">.gitignore</a>
- list of files that should not be committed under git</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/cable2/.entry.json">.entry.json</a> - description of entry in JSON</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/cable2/.gitignore">.gitignore</a> - list of files that should not be committed under git</li>
<li><a href=".path">.path</a> - directory path from top directory</li>
<li><a
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/cable2/README.md">README.md</a>
- markdown source for index.html</li>
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2013/cable2/README.md">README.md</a> - markdown source for index.html</li>
</ul>
<!-- END: next line ends content generated by: bin/output-index-inventory.sh -->