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:
1 parent
9eb7a54e9f
commit
b0b212acb1
402 files changed
+37061
-55132
No files matched your search
+94
-131
@@ -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 -->
|
||||
|
||||
Reference in new issue
Block a user