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">
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" />
11 content=
"width=device-width, initial-scale=1.0" />
12 <link href=
"https://feeds.unknownlamer.org/rss/site-updates"
13 rel=
"alternate" type=
"application/rss+xml" title=
"Updates Feed" />
15 <link rel=
"stylesheet" href=
"default.css" />
18 <h1>Programming Projects
</h1>
19 <div class=
"contents">
22 <a href=
"#sec1">Common Lisp
</a>
27 <a href=
"#sec2">UnCommon Web Related
</a>
32 <a href=
"#sec3">Golgonooza
</a>
35 <a href=
"#sec4">ucw-forms
</a>
38 <a href=
"#sec5">ucw-core branch
</a>
43 <a href=
"#sec6">Trivial-Timers
</a>
48 <a href=
"#sec7">Scheme
</a>
53 <a href=
"#sec8">Guile XOSD2
</a>
58 <a href=
"#sec9">Standard ML
</a>
63 <a href=
"#sec10">Domtool
</a>
68 <a href=
"#sec11">Old Projects
</a>
73 <a href=
"#sec12">Bobot++
</a>
76 <a href=
"#sec13">Guile-Web
</a>
84 <!-- Page published by Emacs Muse begins here -->
85 <p>All of my current, and mostly not so current, projects are browsable in
89 <li><a href=
"http://unknownlamer.org/darcsweb/browse">my darcsweb
</a></li>
90 <li><a href=
"http://git.hcoop.net/?a=project_list;pf=clinton">my gitweb
</a>, and the
<a href=
"http://git.hcoop.net/?a=project_list;o=age;pf=hcoop">HCoop projects gitweb
</a></li>
93 <p>You might want to take a look at my
<a href=
"Lisp.html">Lisp related projects
</a> page too.
</p>
95 <h2><a name=
"sec1" id=
"sec1"></a>
98 <h3><a name=
"sec2" id=
"sec2"></a>
99 UnCommon Web Related
</h3>
101 <h4><a name=
"sec3" id=
"sec3"></a>
102 <a href=
"http://unknownlamer.org/darcsweb/browse?r=golgonooza;a=summary">Golgonooza
</a></h4>
105 Fourfold the Sons of Los in their divisions: and fourfold.
<br />
106 The great City of Golgonooza: fourfold toward the north
<br />
107 And toward the south fourfold,
& fourfold toward the east
& west
<br />
108 Each within other toward the four points: that toward
<br />
109 Eden. and that toward the World of Generation.
<br />
110 And that toward Beulah. and that toward Ulro;
<br />
111 Ulro is the space of the terrible starry wheels of Albions sons:
<br />
112 But that toward Eden is walled up. till time of renovation:
<br />
113 Yet it is perfect in its building. ornaments
& perfection.
<br />
116 <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
117 2008 it is nearing a releasable state and is in use on
118 <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>
121 <h4><a name=
"sec4" id=
"sec4"></a>
122 <a href=
"http://unknownlamer.org/darcsweb/browse?r=ucw-forms;a=summary">ucw-forms
</a></h4>
124 <p class=
"first">ucw-forms is a slightly enhanced and de-javascripted version of the
125 forms library from ucw_ajax updated for use with ucw-core.
</p>
128 <h4><a name=
"sec5" id=
"sec5"></a>
129 <a href=
"http://unknownlamer.org/darcsweb/browse?r=ucw-core_clinton;a=summary">ucw-core branch
</a></h4>
131 <p class=
"first">I maintain a personal branch of ucw-core with various work in progress
132 patches that are intended to go upstream. My primary task is filling
133 in the ucw-standard library which was removed in the ucw-core fork.
</p>
137 <h3><a name=
"sec6" id=
"sec6"></a>
138 <a href=
"http://unknownlamer.org/darcsweb/browse?r=trivial-timers;a=summary">Trivial-Timers
</a></h3>
140 <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
141 it used the SBCL timer extension. I wanted to run something using Clon
142 on
<a href=
"http://trac.clozure.com/openmcl">Clozure CL
</a> and so I looked at the SBCL source and found that, after
143 a bit of fairly straightforward editing, it was possible to write a
144 portable version for any compiler supporting
<a href=
"http://common-lisp.net/project/bordeaux-threads/">Bordeaux Threads
</a>. The
145 SBCL timers internally use
<code>sb-unix:setittimer
</code>; Rather than using
146 <a href=
"http://common-lisp.net/project/osicat/">Osicat
</a> to emulate this I chose to rework the scheduling loop to run in
147 a dedicated thread that sleeps on a condition variable with a
148 timeout. This seems
<em>cleaner
</em> to me than using POSIX lib calls, but
149 requires a threaded Lisp.
</p>
151 <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
152 native SBCL implementation and a portable implementation relying upon
153 <a href=
"http://common-lisp.net/project/bordeaux-threads/">Bordeaux Threads
</a>. Patches to export other Lisp implementations' timer
154 interface are welcome.
</p>
158 <h2><a name=
"sec7" id=
"sec7"></a>
161 <h3><a name=
"sec8" id=
"sec8"></a>
162 <a href=
"http://unknownlamer.org/darcsweb/browse?r=guile-xosd2;a=summary">Guile XOSD2
</a></h3>
164 <p class=
"first">A simple SWIG based wrapper for
<a href=
"http://www.ignavus.net/software.html">libxosd2
</a>. I forked this from
165 <a href=
"https://gna.org/projects/guile-xosd">guile-xosd
</a> after the maintainer did not respond to an email with a
166 small patch to make the interface nicer. Guile-XOSD2 requires SWIG
167 1.3.x and has been tested against the VM branch of Guile. I renamed
168 most of the functions to have properly Scheme names.
</p>
172 <h2><a name=
"sec9" id=
"sec9"></a>
175 <h3><a name=
"sec10" id=
"sec10"></a>
176 <a href=
"http://wiki.hcoop.net/DomTool">Domtool
</a></h3>
178 <p class=
"first">Originally authored by
<a href=
"http://www.schizomaniac.net/">Adam Chlipala
</a>, as of late
2010 I have been
179 tasked with keeping it up to date for
<a href=
"http://hcoop.net">HCoop
</a>.
</p>
183 <h2><a name=
"sec11" id=
"sec11"></a>
186 <p class=
"first">I used to work on some programs in terrible languages like
<code>C++
</code> when I
187 was a poor misguided youth. I still attempt to respond to bug reports
188 and patches for any that are still in use (
<em>Bobot++
</em> appears to be the
189 only one), but they are otherwise not being worked upon.
</p>
191 <h3><a name=
"sec12" id=
"sec12"></a>
192 <a href=
"../code/bobot.html">Bobot++
</a></h3>
194 <p class=
"first">A fancy little IRC bot that is extensible with Scheme. If you can
195 figure out the scripting interface (which is
<a href=
"../code/bobotpp-manual.html#SEC35">partially documented
</a>) it
196 is fairly powerful.
<code>dsmith
</code> from
<code>#guile
</code> has a nicely featured bot
197 written on top of Bobot++; if I find time I shall attempt to post the
200 <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
201 sporadically working to make the internals of the bot fully threadsafe
202 so that multithreaded Scheme extensions don't run into issues. I may
203 potentially clean up the Scheme interface as well (as it was clearly
204 not designed by a Schemer and I was not so well versed in proper style
205 in
2002 when I did most of my work on Bobot++).
</p>
208 <h3><a name=
"sec13" id=
"sec13"></a>
209 <a href=
"../code/guile-web.html">Guile-Web
</a></h3>
211 <p class=
"first">A perhaps still useful library of web related utilities for
212 <a href=
"http://www.gnu.org/software/guile/guile.html">Guile Scheme
</a>. Be warned that the serializer is inefficient, consy, and
213 hacky as Hell, but the
<a href=
"../code/guile-web-manual.html#SEC6">XHTML generation library
</a> might be useful.
</p>
217 <!-- Page published by Emacs Muse ends here -->
219 <p class=
"cke-buttons">
220 <!-- validating badges, any browser, etc -->
221 <a href=
"https://validator.w3.org/check/referer"><img
222 src=
"https://www.w3.org/Icons/valid-xhtml10"
223 alt=
"Valid XHTML 1.0!" /></a>
225 <a href=
"https://www.anybrowser.org/campaign/"><img
226 src=
"img/buttons/w3c_ab.png" alt=
"[ Viewable With Any Browser
229 <a href=
"https://www.debian.org/"><img
230 src=
"img/buttons/debian.png" alt=
"[ Powered by Debian ]" /></a>
232 <a href=
"https://hcoop.net/">
233 <img src=
"img/buttons/hcoop.png"
234 alt=
"[ Hosted by HCoop]" />
237 <a href=
"https://www.fsf.org/register_form?referrer=114">
238 <img src=
"img/buttons/fsf_member.png"
239 alt=
"[ FSF Associate Member ]" />
243 <p class=
"cke-footer"> (
1) _Of course_ we made sure it was actually too slow before making
244 the ugly optimization.
246 <p class=
"cke-timestamp">Last Modified: