(Monday, March 16th 2009)
I've just put my Common Lisp Tcl/Tk bindings online. They differ from the existing LTK library in that they...
wish shell.They've only been used in one medium-sized project so far, but they are so simple that I'm rather confident they work as intended.
Project page at http://marijn.haverbeke.nl/cl-tk/.
(Friday, August 8th 2008)
After dragging my JSON implementation through various projects, and having several incompatible versions exist at the same time, I got permission to open-source it from the company that originally paid me to write it, so it has a home now: ST-JSON.
There already exists a comparable library called CL-JSON. I
originally wrote a new one because the way CL-JSON uses
nil to encode all of boolean false, the empty list,
and the empty object was causing headaches, and later I added
some other extensions.
(Wednesday, July 30th 2008)
Webreference.com just published my piece about HTTP caching. Unfortunately, their editor introduced a bunch of ugly sentences (see the first one) and mistakes (this seems to be a major part of editors' job descriptions). The general idea should still be there.
(Saturday, July 19th 2008)
Mike Ajemian wrote something
about dynamically interning symbols using the ~:@
format construct to upcase parts of the symbol's name. This
works fine on standard CLs, but if you want to write something
that also works with Allegro's 'modern' mode (where symbols are
case-sensitive), you don't want to upcase the symbol. What you
do there is use the reader against itself ― (format nil
"~a-~a" :insert name-symbol), the
symbol-name of :insert will be
whatever the reader made of it, and thus you'll get a symbol
that follows the same conventions as the surrounding system.
(You also don't want to use uppercase strings in your package
definitions ― I'm looking at you split-sequence ―
use #:symbol syntax if you don't want to waste
memory on pointless keyword symbols.)
In a similar vein, sometimes you'll want to create throwaway
symbols with a certain name at run-time. (For example, S-SQL
requires symbols for stuff like database index names, which you
might want to generate.) intern leaks memory in
this case, since anything interned stays around until it is
uninterned. gensym tends to add junk to the
symbol's name. Some messing around with apropos (more languages
need an apropos feature) led me to the predictably named make-symbol,
which, like #: syntax, creates an uninterned symbol
with a specific name.
(July 10th 2008)
After messing around with a few different client-side templating libraries, all of which seemed to be either unmaintained, too overbearing (forcing you to work inside their 'framework'), or just plain wrongheaded, I went ahead and implemented a new one. Mold aims to be a simple, general, convenient system for compiling and instantiating HTML templates. See the project page for examples, documentation and downloads.