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