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
+68
-116
@@ -130,11 +130,11 @@
|
||||
<h2 id="authors"><a name="author"></a>Authors:</h2>
|
||||
<ul>
|
||||
<li>Name: <a href="../../authors.html#Aaron_Grothe">Aaron Grothe</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>
|
||||
<li>Name: <a href="../../authors.html#David_Madore">David Madore</a><br>
|
||||
Location: <a href="../../location.html#FR">FR</a> - <em>French
|
||||
Republic</em> (<em>France</em>) <br><br></li>
|
||||
Location: <a href="../../location.html#FR">FR</a> - <em>French Republic</em> (<em>France</em>)
|
||||
<br><br></li>
|
||||
</ul>
|
||||
|
||||
<!-- END: next line ends content generated by: bin/output-index-author.sh -->
|
||||
@@ -145,167 +145,119 @@ Republic</em> (<em>France</em>) <br><br></li>
|
||||
<h2 id="to-build">To build:</h2>
|
||||
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">make</span></span></code></pre></div>
|
||||
<h2 id="to-use">To use:</h2>
|
||||
<p>To create a shared secret shared among <code>M</code> people with
|
||||
<code>N+1</code> needed to reconstruct:</p>
|
||||
<p>To create a shared secret shared among <code>M</code> people with <code>N+1</code> needed to reconstruct:</p>
|
||||
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./grothe</span> <span class="at">-secret</span> 1-/dev/urandom 2-/dev/urandom ... <span class="dt">\</span></span>
|
||||
<span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a> N-/dev/urandom 1+shared1 2+shared2 ... M+sharedM</span></code></pre></div>
|
||||
<p>To reconstruct the original (an arbitrary combination of
|
||||
<code>N+1</code> or more shared files with their proper numbers):</p>
|
||||
<p>To reconstruct the original (an arbitrary combination of <code>N+1</code> or
|
||||
more shared files with their proper numbers):</p>
|
||||
<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">./grothe</span> I-sharedI J-sharedJ K-sharedK ... +reconstructed</span></code></pre></div>
|
||||
<h2 id="try">Try:</h2>
|
||||
<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>Also known as ‘Best abuse of the judging process’.</p>
|
||||
<p>The IOCCC 2012 submission page didn’t enforce the 2048 meaningful
|
||||
character limit. This entry, as submitted, weighed in at 2222 chars but
|
||||
lucky for it, it was extremely easy to bring down below the limit. There
|
||||
were a number of strings that when concatenated allowed the program to
|
||||
slide under the limit.</p>
|
||||
<p>It was clear to the judges that the extra size was an entry
|
||||
beautification step. Had it not been, this entry would have been
|
||||
rejected in round 0.</p>
|
||||
<p>The judges also took some liberty obfuscating this entry a little
|
||||
more.</p>
|
||||
<p>How does this entry work? The only place multiplication is used is to
|
||||
perform the <code>atoi(3)</code> conversion.</p>
|
||||
<p>The IOCCC 2012 submission page didn’t enforce the 2048 meaningful character
|
||||
limit. This entry, as submitted, weighed in at 2222 chars but lucky for it, it
|
||||
was extremely easy to bring down below the limit. There were a number of
|
||||
strings that when concatenated allowed the program to slide under the limit.</p>
|
||||
<p>It was clear to the judges that the extra size was an entry beautification step.
|
||||
Had it not been, this entry would have been rejected in round 0.</p>
|
||||
<p>The judges also took some liberty obfuscating this entry a little more.</p>
|
||||
<p>How does this entry work? The only place multiplication is used is
|
||||
to perform the <code>atoi(3)</code> conversion.</p>
|
||||
<h2 id="authors-remarks">Author’s remarks:</h2>
|
||||
<h3 id="description">Description</h3>
|
||||
<p>This program implements a version of <a
|
||||
href="http://en.wikipedia.org/wiki/Shamir%27s_Secret_Sharing">Shamir’s
|
||||
Secret Sharing</a>. Shamir’s Secret Sharing allows you to encrypt a file
|
||||
into <code>N</code> parts where it will take <code>M</code> parts to
|
||||
recreate the original file. E.g. you can split the secret recipe for
|
||||
Crystal Pepsi into 3 parts and require two of them be available to
|
||||
extract the original recipe.</p>
|
||||
<p>This program implements a version of <a href="http://en.wikipedia.org/wiki/Shamir%27s_Secret_Sharing">Shamir’s Secret
|
||||
Sharing</a>. Shamir’s Secret
|
||||
Sharing allows you to encrypt a file into <code>N</code> parts where it will take <code>M</code> parts to
|
||||
recreate the original file. E.g. you can split the secret recipe for Crystal Pepsi
|
||||
into 3 parts and require two of them be available to extract the original recipe.</p>
|
||||
<p>Actually surprisingly useful for an IOCCC entry :-)</p>
|
||||
<h3 id="usage">Usage</h3>
|
||||
<p>To share a secret. For example:</p>
|
||||
<ul>
|
||||
<li>File to share: <a
|
||||
href="cookie_recipe.txt">cookie_recipe.txt</a>.</li>
|
||||
<li>File to share: <a href="cookie_recipe.txt">cookie_recipe.txt</a>.</li>
|
||||
<li>Number of pieces: 2 + file to be shared</li>
|
||||
<li>Total number of pieces created by program: 4</li>
|
||||
<li>Pieces needed to reassemble recipe: 3 or greater</li>
|
||||
</ul>
|
||||
<h3 id="example-usage">Example usage</h3>
|
||||
<p>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:</p>
|
||||
<p>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:</p>
|
||||
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./grothe</span> <span class="dt">\</span></span>
|
||||
<span id="cb5-2"><a href="#cb5-2" aria-hidden="true" tabindex="-1"></a> <span class="at">-cookie_recipe.txt</span><span class="dt">\</span></span>
|
||||
<span id="cb5-3"><a href="#cb5-3" aria-hidden="true" tabindex="-1"></a> 1-/dev/urandom 2-/dev/urandom<span class="dt">\</span></span>
|
||||
<span id="cb5-4"><a href="#cb5-4" aria-hidden="true" tabindex="-1"></a> 1+cookie_piece1.dat 2+cookie_piece2.dat 3+cookie_piece3.dat 4+cookie_piece4.dat</span></code></pre></div>
|
||||
<p>To put the recipe back together using the first, second and fourth
|
||||
pieces:</p>
|
||||
<p>To put the recipe back together using the first, second and fourth pieces:</p>
|
||||
<div class="sourceCode" id="cb6"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./grothe</span> <span class="dt">\</span></span>
|
||||
<span id="cb6-2"><a href="#cb6-2" aria-hidden="true" tabindex="-1"></a> 1-cookie_piece1.dat 2-cookie_piece2.dat 4-cookie_piece4.dat</span>
|
||||
<span id="cb6-3"><a href="#cb6-3" aria-hidden="true" tabindex="-1"></a> <span class="ex">+cookie_recipe_restore.txt</span></span></code></pre></div>
|
||||
<h3 id="limitations">Limitations</h3>
|
||||
<p>The program is limited to 256 input and output files and will slow
|
||||
down dramatically when you get past 20-50 inputs and outputs.</p>
|
||||
<p>The program is limited to 256 input and output files and will slow down
|
||||
dramatically when you get past 20-50 inputs and outputs.</p>
|
||||
<h3 id="obfuscations">Obfuscations</h3>
|
||||
<ul>
|
||||
<li><p>Nothing is done consistently throughout the program E.g
|
||||
<code>i+=1</code>, <code>i=i+1</code>, <code>i++</code> and
|
||||
<code>++i</code> are all used in the program. The mark of true code
|
||||
buggery: “A foolish consistency is the hobgoblin of little minds.” - <a
|
||||
href="https://en.wikipedia.org/wiki/Ralph_Waldo_Emerson">Ralph Waldo
|
||||
<li><p>Nothing is done consistently throughout the program E.g <code>i+=1</code>, <code>i=i+1</code>, <code>i++</code>
|
||||
and <code>++i</code> are all used in the program. The mark of true code buggery: “A
|
||||
foolish consistency is the hobgoblin of little minds.” - <a href="https://en.wikipedia.org/wiki/Ralph_Waldo_Emerson">Ralph Waldo
|
||||
Emerson</a></p></li>
|
||||
<li><p>Uses the most powerful obfuscation of all “Math”. “Any
|
||||
sufficiently advanced cryptography is indistinguishable from magic.” -
|
||||
Apologies to <a
|
||||
href="https://en.wikipedia.org/wiki/Arthur_C._Clarke">Arthur C.
|
||||
<li><p>Uses the most powerful obfuscation of all “Math”. “Any sufficiently advanced
|
||||
cryptography is indistinguishable from magic.” - Apologies to <a href="https://en.wikipedia.org/wiki/Arthur_C._Clarke">Arthur C.
|
||||
Clarke</a></p></li>
|
||||
<li><p>Shadows variables by using brackets in main program to create
|
||||
local copies of variables that are the same as global scope variables.
|
||||
<code>-Wshadow</code> should probably be a part of <code>-Wall</code> in
|
||||
gcc.</p></li>
|
||||
<li><p>Uses <code>array_index[array_name]</code> instead of
|
||||
<code>array_name[array_index]</code> in several places. Still don’t know
|
||||
why C continues to allow this (error strings are encoded with offsets
|
||||
that are also used to select them in the case statement. All strings are
|
||||
located in one function for easy localization).</p></li>
|
||||
<li><p>Liberal use of octal numbers, hexadecimal numbers and regular
|
||||
decimal numbers throughout the program.</p></li>
|
||||
<li><p>Variables and function names are semi-random and upper and lower
|
||||
case characters are used.</p></li>
|
||||
<li><p>Use of <code>#define</code>s from <code>stdio.h</code>,
|
||||
<code>stdlib.h</code> for values <code>_STDIO_H</code> and
|
||||
<code>EXIT_SUCCESS</code> used to represent 1 and 0 respectively in the
|
||||
program.</p></li>
|
||||
<li><p>Arrays only need to be 256x256 but most are set to greater values
|
||||
than they need to be so trying to figure it out can be a bit
|
||||
tough.</p></li>
|
||||
<li><p>Shadows variables by using brackets in main program to create local copies of
|
||||
variables that are the same as global scope variables. <code>-Wshadow</code> should
|
||||
probably be a part of <code>-Wall</code> in gcc.</p></li>
|
||||
<li><p>Uses <code>array_index[array_name]</code> instead of <code>array_name[array_index]</code> in several
|
||||
places. Still don’t know why C continues to allow this (error strings are
|
||||
encoded with offsets that are also used to select them in the case statement.
|
||||
All strings are located in one function for easy localization).</p></li>
|
||||
<li><p>Liberal use of octal numbers, hexadecimal numbers and regular decimal numbers
|
||||
throughout the program.</p></li>
|
||||
<li><p>Variables and function names are semi-random and upper and lower case
|
||||
characters are used.</p></li>
|
||||
<li><p>Use of <code>#define</code>s from <code>stdio.h</code>, <code>stdlib.h</code> for values <code>_STDIO_H</code> and
|
||||
<code>EXIT_SUCCESS</code> used to represent 1 and 0 respectively in the program.</p></li>
|
||||
<li><p>Arrays only need to be 256x256 but most are set to greater values than they
|
||||
need to be so trying to figure it out can be a bit tough.</p></li>
|
||||
</ul>
|
||||
<h3 id="references">References</h3>
|
||||
<ul>
|
||||
<li>David Madore’s implementation of Shamir’s Secret Sharing - <a
|
||||
href="http://www.madore.org/~david/programs/programs-1.36.html"
|
||||
class="uri">http://www.madore.org/~david/programs/programs-1.36.html</a></li>
|
||||
<li>Steve’s Recipe Database - source for the $25k Cookie Recipe - <a
|
||||
href="https://www.mealsteps.com"
|
||||
class="uri">https://www.mealsteps.com</a></li>
|
||||
<li>David Madore’s implementation of Shamir’s Secret Sharing - <a href="http://www.madore.org/~david/programs/programs-1.36.html" class="uri">http://www.madore.org/~david/programs/programs-1.36.html</a></li>
|
||||
<li>Steve’s Recipe Database - source for the $25k Cookie Recipe - <a href="https://www.mealsteps.com" class="uri">https://www.mealsteps.com</a></li>
|
||||
</ul>
|
||||
<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>
|
||||
<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-2012grothe"><a name="inventory"></a>Inventory for
|
||||
2012/grothe</h1>
|
||||
<h1 id="inventory-for-2012grothe"><a name="inventory"></a>Inventory for 2012/grothe</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/2012/grothe/grothe.c">grothe.c</a>
|
||||
- entry source</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/grothe/Makefile">Makefile</a>
|
||||
- entry Makefile</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/grothe/grothe.orig.c">grothe.orig.c</a>
|
||||
- original source</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/grothe/cookie_recipe.txt">cookie_recipe.txt</a>
|
||||
- cookie recipe</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/grothe/try.sh">try.sh</a>
|
||||
- how to run</li>
|
||||
<li><a href="2012_grothe.tar.bz2">2012_grothe.tar.bz2</a> - download
|
||||
entry source</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/grothe/grothe.c">grothe.c</a> - entry source</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/grothe/Makefile">Makefile</a> - entry Makefile</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/grothe/grothe.orig.c">grothe.orig.c</a> - original source</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/grothe/cookie_recipe.txt">cookie_recipe.txt</a> - cookie recipe</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/grothe/try.sh">try.sh</a> - how to run</li>
|
||||
<li><a href="2012_grothe.tar.bz2">2012_grothe.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/2012/grothe/.entry.json">.entry.json</a>
|
||||
- description of entry in JSON</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/grothe/.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/2012/grothe/.entry.json">.entry.json</a> - description of entry in JSON</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/grothe/.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/2012/grothe/README.md">README.md</a>
|
||||
- markdown source for index.html</li>
|
||||
<li><a href="cookie_piece1.dat">cookie_piece1.dat</a> - binary support
|
||||
file</li>
|
||||
<li><a href="cookie_piece2.dat">cookie_piece2.dat</a> - binary support
|
||||
file</li>
|
||||
<li><a href="cookie_piece3.dat">cookie_piece3.dat</a> - binary support
|
||||
file</li>
|
||||
<li><a href="cookie_piece4.dat">cookie_piece4.dat</a> - binary support
|
||||
file</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/grothe/cookie_recipe_restore.txt">cookie_recipe_restore.txt</a>
|
||||
- encoded cookie recipe</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/grothe/README.md">README.md</a> - markdown source for index.html</li>
|
||||
<li><a href="cookie_piece1.dat">cookie_piece1.dat</a> - binary support file</li>
|
||||
<li><a href="cookie_piece2.dat">cookie_piece2.dat</a> - binary support file</li>
|
||||
<li><a href="cookie_piece3.dat">cookie_piece3.dat</a> - binary support file</li>
|
||||
<li><a href="cookie_piece4.dat">cookie_piece4.dat</a> - binary support file</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2012/grothe/cookie_recipe_restore.txt">cookie_recipe_restore.txt</a> - encoded cookie recipe</li>
|
||||
</ul>
|
||||
|
||||
<!-- END: next line ends content generated by: bin/output-index-inventory.sh -->
|
||||
|
||||
Reference in new issue
Block a user