Another morning, another sunrise. This one isn't as
pretty as
the one on the 30th.
reiska is coming along pretty well, considering that I
took a day off the project studying Common LISP (prompted by
the slashdot.com article). I'm almost done with the
datastore design, but I'll need to run
some more tests and implement item ordering according to
popularity (weighting) before I can use this with
Stephen Hazel's libfreenet.
I released the first (and so far only) version of reiska
to the public - it's more of a "I'm gonna do a FNP
implementation, so I'm releasing early" tarball than
anything else, so as released it won't do anything useful.
It generated a small flurry of posts on the freenet-devl
mailing list, though, some of them suggesting that I use
libfreenet for the node-to-node communication (which may be
wise, since the protocol has been changed quite a bit for
the 0.4 release - or so I've read) and concentrate on the
message passing logic, datastore management and client
handling in reiska. This approach looks pretty sensible, now
that I have a better understanding of the inner workings of
a Freenet node.
I whined some months ago how it is fucking hard to get
into the Scheme mindset, and my opinion still holds --
expressing iteration with tail recursion may be OK if you're
a hard-core theorist who implements every basic algorithm
once without doing anything particularly useful
with it, but try writing anything really useful without ever
using a "while" macro and I'll give you the award for
supreme wankerhood (a dried pea and a nut in a tiny
cardboard box, if you're wondering).
Common LISP, on the other hand, is
beautiful. CLOS in particular. I'd say that CLOS is the best
object system I've ever had the pleasure of messing around
with. I've had a couple of problems with the "a name may be
both a
variable and a function" thing as well as remembering to use
funcall, but I guess I'll get used to it.