html updates
[clinton/website/site/unknownlamer.org.git] / Code.html
CommitLineData
2aff8b5c 1<?xml version="1.0" encoding="utf-8" ?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4<html xmlns="http://www.w3.org/1999/xhtml">
5 <head>
6 <title>Programming Projects</title>
7 <meta name="generator" content="muse.el" />
8 <meta http-equiv="Content-Type"
9 content="text/html; charset=utf-8" />
54a817d4 10 <link href="http://feeds.unknownlamer.org/rss/site-updates"
11 rel="alternate" type="application/rss+xml" title="Updates Feed" />
12
e9275323 13<link rel="stylesheet" href="default.css" />
2aff8b5c 14 </head>
15 <body>
16 <h1>Programming Projects</h1>
17 <div class="contents">
18<dl>
19<dt>
a949f025 20<a href="#sec1">Common Lisp</a>
3e946ca7 21</dt>
22<dd>
23<dl>
24<dt>
a949f025 25<a href="#sec2">UnCommon Web Related</a>
e9275323 26</dt>
a949f025 27<dd>
28<dl>
e9275323 29<dt>
a949f025 30<a href="#sec3">Golgonooza</a>
e9275323 31</dt>
32<dt>
a949f025 33<a href="#sec4">ucw-forms</a>
34</dt>
35<dt>
36<a href="#sec5">ucw-core branch</a>
3e946ca7 37</dt>
38</dl>
39</dd>
40<dt>
a949f025 41<a href="#sec6">Trivial-Timers</a>
42</dt>
43</dl>
44</dd>
45<dt>
46<a href="#sec7">Old Projects</a>
3e946ca7 47</dt>
48<dd>
49<dl>
50<dt>
a949f025 51<a href="#sec8">Bobot++</a>
3e946ca7 52</dt>
53<dt>
a949f025 54<a href="#sec9">Guile-Web</a>
3e946ca7 55</dt>
56</dl>
57</dd>
2aff8b5c 58</dl>
59</div>
60
61
e9275323 62<!-- Page published by Emacs Muse begins here --><p>All of my current, and some not so current, projects are browsable via
9dcdb59d 63<a href="http://unknownlamer.org/darcsweb/browse">my darcsweb</a>. You might want to take a look at my <a href="Lisp.html">Lisp related projects</a>
64page.</p>
2aff8b5c 65
e9275323 66<h2><a name="sec1" id="sec1"></a>
a949f025 67Common Lisp</h2>
2aff8b5c 68
e9275323 69<h3><a name="sec2" id="sec2"></a>
a949f025 70UnCommon Web Related</h3>
71
72<h4><a name="sec3" id="sec3"></a>
73<a href="http://unknownlamer.org/darcsweb/browse?r=golgonooza;a=summary">Golgonooza</a></h4>
3e946ca7 74
75<p class="verse">
76Fourfold the Sons of Los in their divisions: and fourfold.<br />
77The great City of Golgonooza: fourfold toward the north<br />
78And toward the south fourfold, &amp; fourfold toward the east &amp; west<br />
79Each within other toward the four points: that toward<br />
80Eden. and that toward the World of Generation.<br />
81And that toward Beulah. and that toward Ulro;<br />
82Ulro is the space of the terrible starry wheels of Albions sons:<br />
83But that toward Eden is walled up. till time of renovation:<br />
84Yet it is perfect in its building. ornaments &amp; perfection.<br />
85</p>
86
9dcdb59d 87<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
882008 it is nearing a releasable state and is in use on
a949f025 89<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>
3e946ca7 90
91
a949f025 92<h4><a name="sec4" id="sec4"></a>
93<a href="http://unknownlamer.org/darcsweb/browse?r=ucw-forms;a=summary">ucw-forms</a></h4>
e9275323 94
95<p class="first">ucw-forms is a slightly enhanced and de-javascripted version of the
96forms library from ucw_ajax updated for use with ucw-core.</p>
97
98
a949f025 99<h4><a name="sec5" id="sec5"></a>
100<a href="http://unknownlamer.org/darcsweb/browse?r=ucw-core_clinton;a=summary">ucw-core branch</a></h4>
e9275323 101
102<p class="first">I maintain a personal branch of ucw-core with various work in progress
bb5fc18a 103patches that are intended to go upstream. My primary task is filling
104in the ucw-standard library which was removed in the ucw-core fork.</p>
e9275323 105
106
107
a949f025 108<h3><a name="sec6" id="sec6"></a>
109<a href="http://unknownlamer.org/darcsweb/browse?r=trivial-timers;a=summary">Trivial-Timers</a></h3>
110
111<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
112it used the SBCL timer extension. I wanted to run something using Clon
c2a3216c 113on <a href="http://trac.clozure.com/openmcl">Clozure CL</a> and so I looked at the SBCL source and found that, after
114a bit of fairly straightforward editing, it was possible to write a
115portable version for any compiler supporting <a href="http://common-lisp.net/project/bordeaux-threads/">Bordeaux Threads</a>. The
116SBCL timers internally use <code>sb-unix:setittimer</code>; Rather than using
117<a href="http://common-lisp.net/project/osicat/">Osicat</a> to emulate this I chose to rework the scheduling loop to run in
118a dedicated thread that sleeps on a condition variable with a
119timeout. This seems <em>cleaner</em> to me than using POSIX lib calls, but
120requires a threaded Lisp.</p>
a949f025 121
bb5fc18a 122<p><a href="http://releases.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
a949f025 123native SBCL implementation and a portable implementation relying upon
124<a href="http://common-lisp.net/project/bordeaux-threads/">Bordeaux Threads</a>. Patches to export other Lisp implementations' timer
125interface are welcome.</p>
126
127
128
129
130<h2><a name="sec7" id="sec7"></a>
3e946ca7 131Old Projects</h2>
132
133<p class="first">I used to work on some programs in terrible languages like <code>C++</code> when I
134was a poor misguided youth. I still attempt to respond to bug reports
135and patches for any that are still in use (<em>Bobot++</em> appears to be the
136only one), but they are otherwise not being worked upon.</p>
137
a949f025 138<h3><a name="sec8" id="sec8"></a>
3e946ca7 139<a href="../code/bobot.html">Bobot++</a></h3>
140
141<p class="first">A fancy little IRC bot that is extensible with Scheme. If you can
142figure out the scripting interface (which is <a href="../code/bobotpp-manual.html#SEC35">partially documented</a>) it
143is fairly powerful. <code>dsmith</code> from <code>#guile</code> has a nicely featured bot
144written on top of Bobot++; if I find time I shall attempt to post the
145source.</p>
146
c2a3216c 147<p>There is now a <a href="http://unknownlamer.org/darcsweb/browse?r=bobot%2B%2B;a=summary">darcs repo</a> available with a few minor changes. I am
9dcdb59d 148sporadically working to make the internals of the bot fully threadsafe
149so that multithreaded Scheme extensions don't run into issues. I may
150potentially clean up the Scheme interface as well (as it was clearly
151not designed by a Schemer and I was not so well versed in proper style
152in 2002 when I did most of my work on Bobot++).</p>
153
3e946ca7 154
a949f025 155<h3><a name="sec9" id="sec9"></a>
f7bae6cc 156<a href="../code/guile-web.html">Guile-Web</a></h3>
3e946ca7 157
158<p class="first">A perhaps still useful library of web related utilities for
159<a href="http://www.gnu.org/software/guile/guile.html">Guile Scheme</a>. Be warned that the serializer is inefficient, consy, and
160hacky as Hell, but the <a href="../code/guile-web-manual.html#SEC6">XHTML generation library</a> might be useful.</p>
161
162
163
2aff8b5c 164 <!-- Page published by Emacs Muse ends here -->
165
166 <p class="cke-buttons">
167 <!-- validating badges, any browser, etc -->
168 <a href="http://validator.w3.org/check/referer"><img
169 src="http://www.w3.org/Icons/valid-xhtml10"
170 alt="Valid XHTML 1.0!" /></a>
171
172 <a href="http://www.anybrowser.org/campaign/"><img
173 src="img/buttons/w3c_ab.png" alt="[ Viewable With Any Browser
174 ]" /></a>
175
176 <a href="http://www.debian.org/"><img
177 src="img/buttons/debian.png" alt="[ Powered by Debian ]" /></a>
178
179 <a href="http://hcoop.net/">
180 <img src="img/buttons/hcoop.png"
181 alt="[ Hosted by HCoop]" />
182 </a>
183
184 <a href="http://www.fsf.org/register_form?referrer=114">
185 <img src="img/buttons/fsf_member.png"
186 alt="[ FSF Associate Member ]" />
187 </a>
188 </p>
189
bb5fc18a 190<p class="cke-footer">"Karen loved animals. Unfortunately the cheetahs betrayed her trust,"
191Libot said.
2aff8b5c 192</p>
193<p class="cke-timestamp">Last Modified:
e9275323 194 December 11, 2008</p>
2aff8b5c 195 </body>
196</html>