Link to newer recipes on Cooking page
[clinton/website/src/unknownlamer.org.git] / Code.muse
index ab28996..621492d 100644 (file)
--- a/Code.muse
+++ b/Code.muse
@@ -1,11 +1,18 @@
 #title Programming Projects
 
-All of my current, and some not so current, projects are browsable via
-[[http://unknownlamer.org/darcsweb/browse][my darcsweb]]. You might want to take a look at my [[Lisp][Lisp projects]] page.
+All of my current, and mostly not so current, projects are browsable in
+a few places:
 
-* UnCommon Web Related
+ - [[http://unknownlamer.org/darcsweb/browse][my darcsweb]]
+ - [[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]]
 
-** [[darcsweb::golgonooza][Golgonooza]]
+You might want to take a look at my [[Lisp][Lisp related projects]] page too.
+
+* Common Lisp
+
+** UnCommon Web Related
+
+*** [[darcsweb::golgonooza][Golgonooza]]
 
 <verse>
 Fourfold the Sons of Los in their divisions: and fourfold.
@@ -19,19 +26,55 @@ But that toward Eden is walled up. till time of renovation:
 Yet it is perfect in its building. ornaments & perfection.
 </verse>
 
-Golgonooza is a set of utility components for [[http://common-lisp.net/projects/ucw/repos/ucw-core/][ucw-core]].
+Golgonooza is a set of utility components for [[http://common-lisp.net/projects/ucw/repos/ucw-core/][ucw-core]]. As of December
+2008 it is nearing a releasable state and is in use on
+[[http://bees-kneesfilms.com][one production site online]] (darcsweb::beesknees for source).
 
-** [[darcsweb::ucw-forms][ucw-forms]]
+*** [[darcsweb::ucw-forms][ucw-forms]]
 
 ucw-forms is a slightly enhanced and de-javascripted version of the
 forms library from ucw_ajax updated for use with ucw-core.
 
-** [[darcsweb::ucw-core_clinton][ucw-core branch]]
+*** [[darcsweb::ucw-core_clinton][ucw-core branch]]
 
 I maintain a personal branch of ucw-core with various work in progress
-patches that are intended to go into upstream. My primary task is
-filling in the ucw-standard library which was removed in the ucw-core
-fork.
+patches that are intended to go upstream. My primary task is filling
+in the ucw-standard library which was removed in the ucw-core fork.
+
+** [[darcsweb::trivial-timers][Trivial-Timers]]
+
+[[http://retes.hu/~mega/git/?p=clon.git;a=summary][Clon]] is a nice library for scheduling tasks within a Lisp image, but
+it used the SBCL timer extension. I wanted to run something using Clon
+on [[http://trac.clozure.com/openmcl][Clozure CL]] and so I looked at the SBCL source and found that, after
+a bit of fairly straightforward editing, it was possible to write a
+portable version for any compiler supporting [[http://common-lisp.net/project/bordeaux-threads/][Bordeaux Threads]]. The
+SBCL timers internally use =sb-unix:setittimer=; Rather than using
+[[http://common-lisp.net/project/osicat/][Osicat]] to emulate this I chose to rework the scheduling loop to run in
+a dedicated thread that sleeps on a condition variable with a
+timeout. This seems *cleaner* to me than using POSIX lib calls, but
+requires a threaded Lisp.
+
+[[http://releases.unknownlamer.org/trivial-timers/][Releases are available]] with the usual [[darcsweb::trivial-timers][darcs repo]]. Currently there is a
+native SBCL implementation and a portable implementation relying upon
+[[http://common-lisp.net/project/bordeaux-threads/][Bordeaux Threads]]. Patches to export other Lisp implementations' timer
+interface are welcome.
+
+* Scheme
+
+** [[darcsweb::guile-xosd2][Guile XOSD2]]
+
+A simple SWIG based wrapper for [[http://www.ignavus.net/software.html][libxosd2]]. I forked this from
+[[https://gna.org/projects/guile-xosd][guile-xosd]] after the maintainer did not respond to an email with a
+small patch to make the interface nicer. Guile-XOSD2 requires SWIG
+1.3.x and has been tested against the VM branch of Guile. I renamed
+most of the functions to have properly Scheme names.
+
+* Standard ML
+
+** [[http://wiki.hcoop.net/DomTool][Domtool]]
+
+Originally authored by [[http://www.schizomaniac.net/][Adam Chlipala]], as of late 2010 I have been
+tasked with keeping it up to date for [[http://hcoop.net][HCoop]].
 
 * Old Projects
 
@@ -48,6 +91,13 @@ is fairly powerful. =dsmith= from =#guile= has a nicely featured bot
 written on top of Bobot++; if I find time I shall attempt to post the
 source.
 
+There is now a [[darcsweb::bobot%2B%2B][darcs repo]] available with a few minor changes. I am
+sporadically working to make the internals of the bot fully threadsafe
+so that multithreaded Scheme extensions don't run into issues. I may
+potentially clean up the Scheme interface as well (as it was clearly
+not designed by a Schemer and I was not so well versed in proper style
+in 2002 when I did most of my work on Bobot++).
+
 ** [[../code/guile-web.html][Guile-Web]]
 
 A perhaps still useful library of web related utilities for