Remove hint.html and index.html
As per discussions on GitHub the index.html and hint.html files should be deleted in favour of README.md files (from any .text/.txt/.markdown/.md files which will be turned into README.md in an upcoming commit).
This commit is contained in:
1 parent
ee8a36310f
commit
77fb0f11a2
143 files changed
-28606
No files matched your search
@@ -1,152 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta name="GENERATOR" content="mkd2html 2.1.5a DL=DISCOUNT">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
|
||||
<link rel="stylesheet"
|
||||
type="text/css"
|
||||
href="../hint.css">
|
||||
<title>Most timely rendered</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Most timely rendered</h1>
|
||||
|
||||
<p>Christopher Mills<br>
|
||||
<a href="mailto:mrxo@sonic.net">mrxo@sonic.net</a></p>
|
||||
|
||||
<h2>Judges' comments:</h2>
|
||||
|
||||
<h3>To build:</h3>
|
||||
|
||||
<pre><code>make mills
|
||||
</code></pre>
|
||||
|
||||
<h3>To run:</h3>
|
||||
|
||||
<pre><code>./mills
|
||||
</code></pre>
|
||||
|
||||
<h3>Try:</h3>
|
||||
|
||||
<pre><code>./mills &
|
||||
</code></pre>
|
||||
|
||||
<p>While that is running, point your favorite browser at: <a href="http://localhost:8224">http://localhost:8224</a></p>
|
||||
|
||||
<h3>Selected Judges Remarks:</h3>
|
||||
|
||||
<p>Who will be the first to post an image rendered during a leap-second?</p>
|
||||
|
||||
<h2>Author’s comments:</h2>
|
||||
|
||||
<h1>The Program</h1>
|
||||
|
||||
<p>This program is a handy graphical clock. Simply run the program, click <em>OK</em> to
|
||||
any annoying security dialogs that pop up (aren’t those annoying?), then fire
|
||||
up your web browser and type in the following URL:</p>
|
||||
|
||||
<blockquote><p> <a href="http://localhost:8224">http://localhost:8224</a></p></blockquote>
|
||||
|
||||
<p>You will soon be presented with a lovely dynamically rendered 3D scene that
|
||||
also convienently tells you the current time!</p>
|
||||
|
||||
<h2>Usage Notes</h2>
|
||||
|
||||
<p>The program will continue to give you the time of day as it changes by
|
||||
reloading the page as often as it can render. If you grow tired of watching
|
||||
your life slip by, hit <code>Control-C</code> in the original window. Note that if you
|
||||
want to restart the program again, you should wait a minute or two before
|
||||
doing so. For details as to why this is necessary, feel free to Google
|
||||
<code>TIME_WAIT</code>. And while you are there, click on an ad. They could use the
|
||||
money.</p>
|
||||
|
||||
<p>It would be possible to fix this by adding</p>
|
||||
|
||||
<pre><code>n=1,setsockopt(s,SOL_SOCKET,SO_REUSEADDR,&n,sizeof n),
|
||||
</code></pre>
|
||||
|
||||
<p>at an appropriate spot in the code (an exercise left to the reader). However,
|
||||
as this limitation is documented, it is not techinally a bug.</p>
|
||||
|
||||
<h2>Details of Operation</h2>
|
||||
|
||||
<p>The program wears many hats (not literally). It is</p>
|
||||
|
||||
<ul>
|
||||
<li>a web server</li>
|
||||
<li>a PNG encoder</li>
|
||||
<li>a ray tracer</li>
|
||||
<li>a clock</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<p>It replies to web requests with a PNG image that uses the
|
||||
<a href="http://en.wikipedia.org/wiki/Adam7_algorithm">Adam7</a>
|
||||
encoding to return data progressively. Since the data is returned in Adam7
|
||||
format, the scene is displayed initally at a lower resolution and allowed to
|
||||
be progressively refined as time goes on. The ray tracer is integrally tied
|
||||
to the PNG encoder, casting rays in the Adam7 order. The web server uses
|
||||
PNG primarily because of PNG’s ability to return data progressively, and not
|
||||
as you might think because the PNG standard is so obfuscated as to require
|
||||
both little- and big-endian encodings at different spec layers.</p>
|
||||
|
||||
<p>Since ray-tracing was an obvious choice to return to a web server, I needed
|
||||
something to ray-trace. A static scene would be uninteresting. I took
|
||||
inspiration (as I often do) from the IOCCC remarks file which says</p>
|
||||
|
||||
<blockquote><p> At least one judge prefers to maintain the use of the leap-second
|
||||
as part of the world’s time standard.</p></blockquote>
|
||||
|
||||
<p>Then it was obvious; The code should display the time. It is believed (but
|
||||
not confirmed) that the code will, in fact, display leap seconds correctly.</p>
|
||||
|
||||
<p>To display the time, of course we would need a font. This font is encoded
|
||||
as a string, using only the C whitespace characters. Clearly, the judges
|
||||
intended this use of whitespace for data compression, since their tool
|
||||
doesn’t count whitepsace in strings differently than whitespace outside of
|
||||
them.</p>
|
||||
|
||||
<h2>User-modifyable Features</h2>
|
||||
|
||||
<p>The code can be user-modified simply by changing the build command line.
|
||||
The following symbols are defined in the build file:</p>
|
||||
|
||||
<ul>
|
||||
<li><p><code>-DLT=x1,y1,z1,x2,y2,z2,...</code></p>
|
||||
|
||||
<p>Defines the coordinates of the lights in the scene. It should be a
|
||||
comma-separated list of coordinates (x, y, z), three per light.</p></li>
|
||||
<li><p><code>-DNL=n</code></p>
|
||||
|
||||
<p>Defines the number of lights. Should be equal to the length of the list
|
||||
above (three times the number of lights).</p></li>
|
||||
<li><p><code>-DEY=x,y,z</code></p>
|
||||
|
||||
<p>Defines the position of the viewer (the eyepoint) for the scene. The eye
|
||||
is looking at the origin (0, 0, 0).</p></li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Other Build Flags</h2>
|
||||
|
||||
<p>The original program bound the server to <code>INADDR_ANY</code> to allow everyone to
|
||||
experience the server’s output. The Judges suggested that I instead restrict
|
||||
the bind to <code>INADDR_LOOPBACK</code> to reduce security alarms. As a compliant veteran
|
||||
of innumerable post-ship late feature additions, I have modified the <code>Makefile</code>
|
||||
to inject the new code without destroying the beautiful spherical symmetry of
|
||||
the source code. In addition, I have altered the word <code>sin_port</code> to the more
|
||||
family-friendly version <code>win_port</code> to protect against curious impressionable
|
||||
youth trying to learn about sockets on Internet.</p>
|
||||
|
||||
<hr />
|
||||
|
||||
<TABLE><TR>
|
||||
<TD><a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/3.0/88x31.png" /></a></TD>
|
||||
<TD><P>© Copyright 1984-2015,
|
||||
<A HREF="/judges.html">Leo Broukhis, Simon Cooper, Landon Curt Noll</A>
|
||||
- All rights reserved<BR>
|
||||
This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-ShareAlike 3.0 Unported License</a>.</P></TD>
|
||||
<TD> <!--<a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01 Transitional" height="31" width="88"></a>--></TD>
|
||||
</TR></TABLE>
|
||||
</body>
|
||||
</html>
|
||||
Reference in new issue
Block a user