diary at Telent Netowrks

Solved a couple of CLiki bugs#

Tue, 04 May 2004 00:58:08 +0000

Solved a couple of CLiki bugs. The new version's not actually installed yet, but when it is, you'll

Finally installed various random CLiki fixes on www.cliki.net,#

Mon, 10 May 2004 20:54:19 +0000

Finally installed various random CLiki fixes on www.cliki.net, allowing me to shorten the bug list to something like 30% of what it was. New downloadable version imminentish, but I'm going home first.

CLiki 0.4.3 is now in cCLan#

Tue, 11 May 2004 17:16:15 +0000

CLiki 0.4.3 is now in cCLan.

Bcc: dan
To: lispweb@red-bean.com
Subject: ANN: CLiki 0.4.3
X-Draft-From: ("nnml+private:mail.lists.london" 3116)
From: Daniel Barlow 
--text follows this line--

CLiki 0.4.3 is now in cCLan. This is approximately the version that's been running on www.cliki.net for the past few months.

New in CLiki 0.4.3

  • Versioning! At the expense of making the file names correspond even less closely with the page title, we now produce a version per edit.

  • While indexing we collect the first sentence of each page, and make it accessible as (CLIKI-FIRST-SENTENCE page)

  • Legacy searches now print this out.

  • Beginning of the long slow process to separate generic cliki engine stuff from www.cliki.net stuff: new cliki-net class that you probably don't want to use unless you're me

  • Indexing tweaks mean startup on big clikis may be a bit faster.

  • Bug fixes: RSS generation, topic searches.

  • *(Uncategorized) marker added to default text for new pages.

Note that there is also an internals change which you may run into if you are building cliki-based tools: to make backlink searches and updating simpler, CLIKI-PAGE objects are now created when references to non-existent pages are encountered during indexing. These placeholder pages have NIL :pathname and :versions slots.

(You can see this behaviour in action at http://www.cliki.net/Dan%20Moniz, at lease until/unless someone creates that page)

This means that if you want to detect whether a page /really/ exists, you should not just rely on find-page returning NIL, but also test the pathname slot.

I'm daydreaming#

Wed, 12 May 2004 18:05:10 +0000

I'm daydreaming. Yesterday I somehow ended up resubscribed to comp.lang.lisp, to participate (well, mostly laugh at) in the "Modernizing Common Lisp" thread. (My fingers seem determined to type that as "Mordorizing"; read into that what you will). Fortunately now I'm not taking it as seriously I find it more entertaining than frustrating. I'm not going to post some long screed about it here, but I did start thinking at a tangent.

Adopting a Nick Hornby writing cliché (which I'm sure he stole from the Mail on Sunday magazine anyway), here are my top five asdf-install-compatible libraries (excluding the ones I wrote). These are not in order of merit, just in the order they occur to me.

  1. xmls: I think I'm only using this for xml generation rather than actual parsing, but it's a snap for all those trivial XML formats like RSS.

  2. cl-ppcre: on which topic I have written before, yes.

  3. pg: although the version I'm actually using predates its asdf-installability (it works, and it's in production, and so I'm naturally reluctant to upgrade it).

  4. split-sequence: ok, really, how can I not?

  5. clx: kind of stretching a point here in that I asdfized it and host the cvs repository, but the hard work is/was all done by other people.

The common feature in all of these (except CLX, which I stuck in simply because so much else depends on it) is that they're small, do one thing well, and don't impose their way of working on me. Remember, you get ten points for a library, but only two for a framework.

In other news, I read somewhere that the Allegro CL 7.0 beta now includes asdf. I don't know if beta programme participants are bound by NDA or anything, but just in case they are I've conveniently forgotten where I got this news.

A brief note on diff and CL, for people who write functions with more#

Tue, 18 May 2004 11:24:22 +0000

A brief note on diff and CL, for people who write functions with more than four lines of body -

:; cvs diff -u -F '^(def'  url.lisp
Index: url.lisp
===================================================================
RCS file: /usr/local/src/cvs/araneida/url.lisp,v
retrieving revision 1.11
diff -u -F^(def -r1.11 url.lisp
--- url.lisp    10 Jul 2003 08:53:19 -0000      1.11
+++ url.lisp    18 May 2004 10:30:13 -0000
@@ -252,7 +252,7 @@ (defun urlstring-escape (url-string)
   (apply #'concatenate 'string
    (loop for c across url-string
          if (urlstring-reserved-p c)
-         collect (format nil "%~X" (char-code c))
+         collect (format nil "%~2,'0X" (char-code c))
          else
          collect (string c))))

Emphasis mine.

Brief non-computers roundup:#

Tue, 18 May 2004 11:27:28 +0000

Brief non-computers roundup:

I found today what seems to be the only arm movement that still makes#

Mon, 24 May 2004 22:05:43 +0000

I found today what seems to be the only arm movement that still makes my shoulder hurt: pumping bicycle tyres. What's interesting, though, is that (a few hours later) both of my shoulders now ache, not just the right one. I'm probably carrying my neck in a funny way to avoid pulling something, and thereby stretching something else. Or something. That's handwaving, albeit fairly cautious handwaving in case I set something else off.

Araneida 0.85 is out. Its release received almost no publicity, because to be honest there wasn't much new in it. The next release of Araneida, however, is rumoured to include support for OpenMCL and Allegro (and possibly also, it's rumoured, ABCL). At least, I've given Brian CVS commit access, so I hope it will :-)

Why is there apparently no open source icalendar server? My conjecture is that the specification is in some way stupidly complex. So, what about subsetting it? My mobile phone claims to understand either icalendar or vcalendar (I forget which); if they can build calendaring into such a terminally dumb device as that, surely it's not impossible to do a reasonable subsetted implementation of icalendar as open source, then rely on network effects to make it a universal pidgin. But what's an appropriate subset?

Apparently there's a bug in my diary-publishing code which only#

Tue, 01 Jun 2004 18:30:27 +0000

Apparently there's a bug in my diary-publishing code which only exhibits when there are no entries in a given month.

This is more in the nature of a workaround than a fix