| 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, & fourfold toward the east & 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 & 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> |