html update
[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>
ad38099a 46<a href="#sec7">Scheme</a>
3e946ca7 47</dt>
48<dd>
49<dl>
50<dt>
ad38099a 51<a href="#sec8">Guile XOSD2</a>
52</dt>
53</dl>
54</dd>
55<dt>
c91a896f 56<a href="#sec9">Standard ML</a>
ad38099a 57</dt>
58<dd>
59<dl>
60<dt>
c91a896f 61<a href="#sec10">Domtool</a>
62</dt>
63</dl>
64</dd>
65<dt>
66<a href="#sec11">Old Projects</a>
67</dt>
68<dd>
69<dl>
70<dt>
71<a href="#sec12">Bobot++</a>
3e946ca7 72</dt>
73<dt>
c91a896f 74<a href="#sec13">Guile-Web</a>
3e946ca7 75</dt>
76</dl>
77</dd>
2aff8b5c 78</dl>
79</div>
80
81
e9275323 82<!-- Page published by Emacs Muse begins here --><p>All of my current, and some not so current, projects are browsable via
9dcdb59d 83<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>
c91a896f 84page. I have a few things available on <a href="http://git&#44;hcoop.net">HCoop's gitweb</a> prefixed with
85<code>clinton/</code>.</p>
2aff8b5c 86
e9275323 87<h2><a name="sec1" id="sec1"></a>
a949f025 88Common Lisp</h2>
2aff8b5c 89
e9275323 90<h3><a name="sec2" id="sec2"></a>
a949f025 91UnCommon Web Related</h3>
92
93<h4><a name="sec3" id="sec3"></a>
94<a href="http://unknownlamer.org/darcsweb/browse?r=golgonooza;a=summary">Golgonooza</a></h4>
3e946ca7 95
96<p class="verse">
97Fourfold the Sons of Los in their divisions: and fourfold.<br />
98The great City of Golgonooza: fourfold toward the north<br />
99And toward the south fourfold, &amp; fourfold toward the east &amp; west<br />
100Each within other toward the four points: that toward<br />
101Eden. and that toward the World of Generation.<br />
102And that toward Beulah. and that toward Ulro;<br />
103Ulro is the space of the terrible starry wheels of Albions sons:<br />
104But that toward Eden is walled up. till time of renovation:<br />
105Yet it is perfect in its building. ornaments &amp; perfection.<br />
106</p>
107
9dcdb59d 108<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
1092008 it is nearing a releasable state and is in use on
a949f025 110<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 111
112
a949f025 113<h4><a name="sec4" id="sec4"></a>
114<a href="http://unknownlamer.org/darcsweb/browse?r=ucw-forms;a=summary">ucw-forms</a></h4>
e9275323 115
116<p class="first">ucw-forms is a slightly enhanced and de-javascripted version of the
117forms library from ucw_ajax updated for use with ucw-core.</p>
118
119
a949f025 120<h4><a name="sec5" id="sec5"></a>
121<a href="http://unknownlamer.org/darcsweb/browse?r=ucw-core_clinton;a=summary">ucw-core branch</a></h4>
e9275323 122
123<p class="first">I maintain a personal branch of ucw-core with various work in progress
bb5fc18a 124patches that are intended to go upstream. My primary task is filling
125in the ucw-standard library which was removed in the ucw-core fork.</p>
e9275323 126
127
128
a949f025 129<h3><a name="sec6" id="sec6"></a>
130<a href="http://unknownlamer.org/darcsweb/browse?r=trivial-timers;a=summary">Trivial-Timers</a></h3>
131
132<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
133it used the SBCL timer extension. I wanted to run something using Clon
c2a3216c 134on <a href="http://trac.clozure.com/openmcl">Clozure CL</a> and so I looked at the SBCL source and found that, after
135a bit of fairly straightforward editing, it was possible to write a
136portable version for any compiler supporting <a href="http://common-lisp.net/project/bordeaux-threads/">Bordeaux Threads</a>. The
137SBCL timers internally use <code>sb-unix:setittimer</code>; Rather than using
138<a href="http://common-lisp.net/project/osicat/">Osicat</a> to emulate this I chose to rework the scheduling loop to run in
139a dedicated thread that sleeps on a condition variable with a
140timeout. This seems <em>cleaner</em> to me than using POSIX lib calls, but
141requires a threaded Lisp.</p>
a949f025 142
bb5fc18a 143<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 144native SBCL implementation and a portable implementation relying upon
145<a href="http://common-lisp.net/project/bordeaux-threads/">Bordeaux Threads</a>. Patches to export other Lisp implementations' timer
146interface are welcome.</p>
147
148
149
a949f025 150<h2><a name="sec7" id="sec7"></a>
ad38099a 151Scheme</h2>
152
153<h3><a name="sec8" id="sec8"></a>
154<a href="http://unknownlamer.org/darcsweb/browse?r=guile-xosd2;a=summary">Guile XOSD2</a></h3>
155
156<p class="first">A simple SWIG based wrapper for <a href="http://www.ignavus.net/software.html">libxosd2</a>. I forked this from
157<a href="https://gna.org/projects/guile-xosd">guile-xosd</a> after the maintainer did not respond to an email with a
158small patch to make the interface nicer. Guile-XOSD2 requires SWIG
1591.3.x and has been tested against the VM branch of Guile. I renamed
160most of the functions to have properly Scheme names.</p>
161
162
163
164<h2><a name="sec9" id="sec9"></a>
c91a896f 165Standard ML</h2>
166
167<h3><a name="sec10" id="sec10"></a>
168<a href="http://wiki.hcoop.net/DomTool">Domtool</a></h3>
169
170<p class="first">Originally authored by <a href="http://www.schizomaniac.net/">Adam Chlipala</a>, as of late 2010 I have been
171tasked with keeping it up to date for <a href="http://hcoop.net">HCoop</a>.</p>
172
173
174
175<h2><a name="sec11" id="sec11"></a>
3e946ca7 176Old Projects</h2>
177
178<p class="first">I used to work on some programs in terrible languages like <code>C++</code> when I
179was a poor misguided youth. I still attempt to respond to bug reports
180and patches for any that are still in use (<em>Bobot++</em> appears to be the
181only one), but they are otherwise not being worked upon.</p>
182
c91a896f 183<h3><a name="sec12" id="sec12"></a>
3e946ca7 184<a href="../code/bobot.html">Bobot++</a></h3>
185
186<p class="first">A fancy little IRC bot that is extensible with Scheme. If you can
187figure out the scripting interface (which is <a href="../code/bobotpp-manual.html#SEC35">partially documented</a>) it
188is fairly powerful. <code>dsmith</code> from <code>#guile</code> has a nicely featured bot
189written on top of Bobot++; if I find time I shall attempt to post the
190source.</p>
191
c2a3216c 192<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 193sporadically working to make the internals of the bot fully threadsafe
194so that multithreaded Scheme extensions don't run into issues. I may
195potentially clean up the Scheme interface as well (as it was clearly
196not designed by a Schemer and I was not so well versed in proper style
197in 2002 when I did most of my work on Bobot++).</p>
198
3e946ca7 199
c91a896f 200<h3><a name="sec13" id="sec13"></a>
f7bae6cc 201<a href="../code/guile-web.html">Guile-Web</a></h3>
3e946ca7 202
203<p class="first">A perhaps still useful library of web related utilities for
204<a href="http://www.gnu.org/software/guile/guile.html">Guile Scheme</a>. Be warned that the serializer is inefficient, consy, and
205hacky as Hell, but the <a href="../code/guile-web-manual.html#SEC6">XHTML generation library</a> might be useful.</p>
206
207
208
2aff8b5c 209 <!-- Page published by Emacs Muse ends here -->
210
211 <p class="cke-buttons">
212 <!-- validating badges, any browser, etc -->
213 <a href="http://validator.w3.org/check/referer"><img
214 src="http://www.w3.org/Icons/valid-xhtml10"
215 alt="Valid XHTML 1.0!" /></a>
216
217 <a href="http://www.anybrowser.org/campaign/"><img
218 src="img/buttons/w3c_ab.png" alt="[ Viewable With Any Browser
219 ]" /></a>
220
221 <a href="http://www.debian.org/"><img
222 src="img/buttons/debian.png" alt="[ Powered by Debian ]" /></a>
223
224 <a href="http://hcoop.net/">
225 <img src="img/buttons/hcoop.png"
226 alt="[ Hosted by HCoop]" />
227 </a>
228
229 <a href="http://www.fsf.org/register_form?referrer=114">
230 <img src="img/buttons/fsf_member.png"
231 alt="[ FSF Associate Member ]" />
232 </a>
233 </p>
234
c91a896f 235<p class="cke-footer">The body bags and little rags of children torn in two,
236And the jellied brains of those who remain to put the finger right on you
237As the madmen play on words and make us all dance to their song
238To the tune of starving millions to make a better kind of gun.
2aff8b5c 239</p>
240<p class="cke-timestamp">Last Modified:
c91a896f 241 March 3, 2011</p>
2aff8b5c 242 </body>
243</html>