<div class="contents">
<dl>
<dt>
-<a href="#sec1">UnCommon Web Related</a>
+<a href="#sec1">Common Lisp</a>
</dt>
<dd>
<dl>
<dt>
-<a href="#sec2">Golgonooza</a>
+<a href="#sec2">UnCommon Web Related</a>
</dt>
+<dd>
+<dl>
<dt>
-<a href="#sec3">ucw-forms</a>
+<a href="#sec3">Golgonooza</a>
</dt>
<dt>
-<a href="#sec4">ucw-core branch</a>
+<a href="#sec4">ucw-forms</a>
+</dt>
+<dt>
+<a href="#sec5">ucw-core branch</a>
</dt>
</dl>
</dd>
<dt>
-<a href="#sec5">Old Projects</a>
+<a href="#sec6">Trivial-Timers</a>
+</dt>
+</dl>
+</dd>
+<dt>
+<a href="#sec7">Old Projects</a>
</dt>
<dd>
<dl>
<dt>
-<a href="#sec6">Bobot++</a>
+<a href="#sec8">Bobot++</a>
</dt>
<dt>
-<a href="#sec7">Guile-Web</a>
+<a href="#sec9">Guile-Web</a>
</dt>
</dl>
</dd>
page.</p>
<h2><a name="sec1" id="sec1"></a>
-UnCommon Web Related</h2>
+Common Lisp</h2>
<h3><a name="sec2" id="sec2"></a>
-<a href="http://unknownlamer.org/darcsweb/browse?r=golgonooza;a=summary">Golgonooza</a></h3>
+UnCommon Web Related</h3>
+
+<h4><a name="sec3" id="sec3"></a>
+<a href="http://unknownlamer.org/darcsweb/browse?r=golgonooza;a=summary">Golgonooza</a></h4>
<p class="verse">
Fourfold the Sons of Los in their divisions: and fourfold.<br />
<p>Golgonooza is a set of utility components for <a href="http://common-lisp.net/projects/ucw/repos/ucw-core/">ucw-core</a>. As of December
2008 it is nearing a releasable state and is in use on
-<a href="http://bees-kneesfilms.com">one production site online</a> (<a href="http://unknownlamer.org/darcsweb/browse?r=beesknees;a=summary">darcsweb::beesknees</a> for source)..</p>
+<a href="http://bees-kneesfilms.com">one production site online</a> (<a href="http://unknownlamer.org/darcsweb/browse?r=beesknees;a=summary">darcsweb::beesknees</a> for source).</p>
-<h3><a name="sec3" id="sec3"></a>
-<a href="http://unknownlamer.org/darcsweb/browse?r=ucw-forms;a=summary">ucw-forms</a></h3>
+<h4><a name="sec4" id="sec4"></a>
+<a href="http://unknownlamer.org/darcsweb/browse?r=ucw-forms;a=summary">ucw-forms</a></h4>
<p class="first">ucw-forms is a slightly enhanced and de-javascripted version of the
forms library from ucw_ajax updated for use with ucw-core.</p>
-<h3><a name="sec4" id="sec4"></a>
-<a href="http://unknownlamer.org/darcsweb/browse?r=ucw-core_clinton;a=summary">ucw-core branch</a></h3>
+<h4><a name="sec5" id="sec5"></a>
+<a href="http://unknownlamer.org/darcsweb/browse?r=ucw-core_clinton;a=summary">ucw-core branch</a></h4>
<p class="first">I maintain a personal branch of ucw-core with various work in progress
patches that are intended to go into upstream. My primary task is
-<h2><a name="sec5" id="sec5"></a>
+<h3><a name="sec6" id="sec6"></a>
+<a href="http://unknownlamer.org/darcsweb/browse?r=trivial-timers;a=summary">Trivial-Timers</a></h3>
+
+<p><a href="http://retes.hu/~mega/git/?p=clon.git;a=summary">Clon</a> is a nice library for scheduling tasks within a Lisp image, but
+it used the SBCL timer extension. I wanted to run something using Clon
+on <a href="http://trac.clozure.com/openmcl">Clozure CL</a> and so I looked at the SBCL and found that, after a bit
+of fairly straightforward editing, it was possible to write a portable
+version for any compiler supporting <a href="http://common-lisp.net/project/bordeaux-threads/">Bordeaux Threads</a>. The SBCL timers
+internally use <code>sb-unix:setittimer</code>; Rather than using <a href="http://common-lisp.net/project/osicat/">Osicat</a> to emulate
+this I chose to rework the scheduling loop to run in a dedicated
+thread that sleeps on a condition variable with a timeout. This seems
+<em>cleaner</em> to me than using POSIX lib calls, but requires a threaded Lisp
+to use.</p>
+
+<p><a href="http://release.unknownlamer.org/trivial-timers/">Releases are available</a> with the usual <a href="http://unknownlamer.org/darcsweb/browse?r=trivial-timers;a=summary">darcs repo</a>. Currently there is a
+native SBCL implementation and a portable implementation relying upon
+<a href="http://common-lisp.net/project/bordeaux-threads/">Bordeaux Threads</a>. Patches to export other Lisp implementations' timer
+interface are welcome.</p>
+
+
+
+
+<h2><a name="sec7" id="sec7"></a>
Old Projects</h2>
<p class="first">I used to work on some programs in terrible languages like <code>C++</code> when I
and patches for any that are still in use (<em>Bobot++</em> appears to be the
only one), but they are otherwise not being worked upon.</p>
-<h3><a name="sec6" id="sec6"></a>
+<h3><a name="sec8" id="sec8"></a>
<a href="../code/bobot.html">Bobot++</a></h3>
<p class="first">A fancy little IRC bot that is extensible with Scheme. If you can
in 2002 when I did most of my work on Bobot++).</p>
-<h3><a name="sec7" id="sec7"></a>
+<h3><a name="sec9" id="sec9"></a>
<a href="../code/guile-web.html">Guile-Web</a></h3>
<p class="first">A perhaps still useful library of web related utilities for
</a>
</p>
-<p class="cke-footer"> To set your mind free you must first just listen
- Don't waste your life on worthless hate and contradiction
+<p class="cke-footer">unknownlamer: you cannot both me in the state of sin and grace
+ simultaneously
+Tony: sure you can, sex while figure skating is pretty sinfully
+ graceful
</p>
<p class="cke-timestamp">Last Modified:
December 11, 2008</p>
<dd>
<dl>
<dt>
-<a href="#sec4">Email</a>
+<a href="#sec4">GnuPG</a>
</dt>
<dt>
-<a href="#sec5">Jabber</a>
+<a href="#sec5">Email</a>
</dt>
<dt>
-<a href="#sec6">IRC</a>
+<a href="#sec6">Jabber</a>
</dt>
<dt>
-<a href="#sec7">Résumé</a>
+<a href="#sec7">IRC</a>
</dt>
<dt>
-<a href="#sec8">A Picture</a>
+<a href="#sec8">Résumé</a>
</dt>
<dt>
-<a href="#sec9">Site Software</a>
+<a href="#sec9">A Picture</a>
+</dt>
+<dt>
+<a href="#sec10">Site Software</a>
</dt>
</dl>
</dd>
written here.</p>
<h3><a name="sec4" id="sec4"></a>
+GnuPG</h3>
+
+<p><a href="public-key.asc">EE29 3A02 4527 0464 94F5 8EB8 2D27 EF5F D1F0 AEFE</a> (key used for
+signing software release tarballs).</p>
+
+
+<h3><a name="sec5" id="sec5"></a>
Email</h3>
<p><code>clinton at unknownlamer dot gro</code> (a simple puzzle)</p>
-<h3><a name="sec5" id="sec5"></a>
+<h3><a name="sec6" id="sec6"></a>
Jabber</h3>
<p><code>clinton at hcoop dot net</code> (this also works as an email address and must
be protected as a result)</p>
-<h3><a name="sec6" id="sec6"></a>
+<h3><a name="sec7" id="sec7"></a>
IRC</h3>
<p class="first">I hang out on Freenode and oftc as <code>unknown_lamer</code> in various
channels. <code>/whois</code> will guide you to me.</p>
-<h3><a name="sec7" id="sec7"></a>
+<h3><a name="sec8" id="sec8"></a>
Résumé</h3>
<p class="first">I am a programmer by trade, and as such have a (potentially) fancy
general. This, naturally, makes me unemployable.</p>
-<h3><a name="sec8" id="sec8"></a>
+<h3><a name="sec9" id="sec9"></a>
A Picture</h3>
<table class="image" width="100%">
</table>
-<h3><a name="sec9" id="sec9"></a>
+<h3><a name="sec10" id="sec10"></a>
Site Software</h3>
<p class="first">I use <a href="http://www.mwolson.org/projects/MuseMode.html">muse-mode</a> to author the site because <a href="http://emacswiki.org">Emacs</a> is all powerful, and
emacsen: what about your character?
</p>
<p class="cke-timestamp">Last Modified:
- September 28, 2008</p>
+ December 11, 2008</p>
</body>
</html>
\ No newline at end of file