css: set width for images
[clinton/website/src/unknownlamer.org.git] / Code.muse
CommitLineData
b8fc5f83 1#title Programming Projects
2
09816bb9 3All of my current, and mostly not so current, projects are browsable in
4a few places:
5
6 - [[http://unknownlamer.org/darcsweb/browse][my darcsweb]]
7 - [[http://git.hcoop.net/?a=project_list;pf=clinton][my gitweb]], and the [[http://git.hcoop.net/?a=project_list;o=age;pf=hcoop][HCoop projects gitweb]]
8
9You might want to take a look at my [[Lisp][Lisp related projects]] page too.
0ae05a7e 10
5fac9f16 11* Common Lisp
0ae05a7e 12
5fac9f16 13** UnCommon Web Related
14
15*** [[darcsweb::golgonooza][Golgonooza]]
0ae05a7e 16
17<verse>
18Fourfold the Sons of Los in their divisions: and fourfold.
19The great City of Golgonooza: fourfold toward the north
20And toward the south fourfold, & fourfold toward the east & west
21Each within other toward the four points: that toward
22Eden. and that toward the World of Generation.
23And that toward Beulah. and that toward Ulro;
24Ulro is the space of the terrible starry wheels of Albions sons:
25But that toward Eden is walled up. till time of renovation:
26Yet it is perfect in its building. ornaments & perfection.
27</verse>
28
28b623b6 29Golgonooza is a set of utility components for [[http://common-lisp.net/projects/ucw/repos/ucw-core/][ucw-core]]. As of December
302008 it is nearing a releasable state and is in use on
5fac9f16 31[[http://bees-kneesfilms.com][one production site online]] (darcsweb::beesknees for source).
0426bc8a 32
5fac9f16 33*** [[darcsweb::ucw-forms][ucw-forms]]
0426bc8a 34
35ucw-forms is a slightly enhanced and de-javascripted version of the
36forms library from ucw_ajax updated for use with ucw-core.
37
5fac9f16 38*** [[darcsweb::ucw-core_clinton][ucw-core branch]]
0426bc8a 39
40I maintain a personal branch of ucw-core with various work in progress
ab9bb3eb 41patches that are intended to go upstream. My primary task is filling
42in the ucw-standard library which was removed in the ucw-core fork.
0426bc8a 43
5fac9f16 44** [[darcsweb::trivial-timers][Trivial-Timers]]
45
46[[http://retes.hu/~mega/git/?p=clon.git;a=summary][Clon]] is a nice library for scheduling tasks within a Lisp image, but
47it used the SBCL timer extension. I wanted to run something using Clon
a6b655d9 48on [[http://trac.clozure.com/openmcl][Clozure CL]] and so I looked at the SBCL source and found that, after
49a bit of fairly straightforward editing, it was possible to write a
50portable version for any compiler supporting [[http://common-lisp.net/project/bordeaux-threads/][Bordeaux Threads]]. The
51SBCL timers internally use =sb-unix:setittimer=; Rather than using
52[[http://common-lisp.net/project/osicat/][Osicat]] to emulate this I chose to rework the scheduling loop to run in
53a dedicated thread that sleeps on a condition variable with a
54timeout. This seems *cleaner* to me than using POSIX lib calls, but
55requires a threaded Lisp.
5fac9f16 56
ab9bb3eb 57[[http://releases.unknownlamer.org/trivial-timers/][Releases are available]] with the usual [[darcsweb::trivial-timers][darcs repo]]. Currently there is a
5fac9f16 58native SBCL implementation and a portable implementation relying upon
59[[http://common-lisp.net/project/bordeaux-threads/][Bordeaux Threads]]. Patches to export other Lisp implementations' timer
60interface are welcome.
61
234eba4f 62* Scheme
63
64** [[darcsweb::guile-xosd2][Guile XOSD2]]
65
66A simple SWIG based wrapper for [[http://www.ignavus.net/software.html][libxosd2]]. I forked this from
67[[https://gna.org/projects/guile-xosd][guile-xosd]] after the maintainer did not respond to an email with a
68small patch to make the interface nicer. Guile-XOSD2 requires SWIG
691.3.x and has been tested against the VM branch of Guile. I renamed
70most of the functions to have properly Scheme names.
5fac9f16 71
f80798a0 72* Standard ML
73
74** [[http://wiki.hcoop.net/DomTool][Domtool]]
75
76Originally authored by [[http://www.schizomaniac.net/][Adam Chlipala]], as of late 2010 I have been
77tasked with keeping it up to date for [[http://hcoop.net][HCoop]].
78
0ae05a7e 79* Old Projects
80
81I used to work on some programs in terrible languages like =C++= when I
82was a poor misguided youth. I still attempt to respond to bug reports
83and patches for any that are still in use (*Bobot++* appears to be the
84only one), but they are otherwise not being worked upon.
85
86** [[../code/bobot.html][Bobot++]]
87
88A fancy little IRC bot that is extensible with Scheme. If you can
89figure out the scripting interface (which is [[../code/bobotpp-manual.html#SEC35][partially documented]]) it
90is fairly powerful. =dsmith= from =#guile= has a nicely featured bot
91written on top of Bobot++; if I find time I shall attempt to post the
92source.
93
a6b655d9 94There is now a [[darcsweb::bobot%2B%2B][darcs repo]] available with a few minor changes. I am
b5f9a491 95sporadically working to make the internals of the bot fully threadsafe
96so that multithreaded Scheme extensions don't run into issues. I may
97potentially clean up the Scheme interface as well (as it was clearly
98not designed by a Schemer and I was not so well versed in proper style
99in 2002 when I did most of my work on Bobot++).
100
f075352b 101** [[../code/guile-web.html][Guile-Web]]
0ae05a7e 102
103A perhaps still useful library of web related utilities for
104[[http://www.gnu.org/software/guile/guile.html][Guile Scheme]]. Be warned that the serializer is inefficient, consy, and
105hacky as Hell, but the [[../code/guile-web-manual.html#SEC6][XHTML generation library]] might be useful.