diary @ telent

Accounts day#

Thu Nov 29 01:42:11 2001

Topics:

Accounts day. More accurately, accounts day 1. Double-entry bookkeeping contains too many double negatives for me to believe that any human factors expertise was involved when they invented the system.

It was invented in Florence, I'm told. I don't know that the Italians are necessarily any better or worse at this stuff than anyone else, though.

So yesterday was accounts day two; all that remains now is to drop#

Fri Nov 30 21:01:41 2001

Topics: cliki

So yesterday was accounts day two; all that remains now is to drop the invoices in the post, and everything else can go to the real accountants up in London.

Back to train-to-Sunbury goodness today, to be followed by more of the same next week. In the meantime, some significant portion of weekend is probably going to be FTX13 time, and maybe setting up cliki.{org,net}. First, though, I need to get some food and finish the bottle of wine I started yesterday while it's still drinkable.

FTX13 November issue is due out tomorrow#

Sun Dec 2 18:05:57 2001

Topics: lisp

FTX13 November issue is due out tomorrow. You can see the preview now at https://ww.telent.net/lisp/free-the-x3j-thirteen/2001.11.html (not at all an easily guessable URL, no). To be honest, it's looking a bit short if anything. I'm sure something else must have happened this month...

I fell asleep in the bath last night; so much of the natural oil#

Mon Dec 3 08:50:08 2001

Topics:

I fell asleep in the bath last night; so much of the natural oil in my skin has leached out that I suspect I'm no longer waterproof. Memo to self: avoid going out in rain.

At Didcot station they now have an automated system to apologise for the late running of trains. It apologised for the late running of this particular train approximately every three minutes until the train had stopped at the platform, so some two-bit computer somewhere is clearly feeling extremely repentant.

They also have payphones with small LCDs displaying "BT PAYPHONE WELCOME". Welcome what? Careful drivers?

30 minutes of laptop use and it's down to 65% battery remaining, which is moderately suboptimal. Turns out to be the fault of pump(8), which is spinning on the CPU because I took its network card away. Sigh. If I wanted to have to run programs before removing PCMCIA cards, I'd run Windows.

Some anonymous contributor linked to the preview release of FTX13#

Mon Dec 3 19:56:26 2001

Topics: cliki lisp

Some anonymous contributor linked to the preview release of FTX13 from the relevant CLiki page. The only reason I hadn't was that I forgot to, so I think that's reasonable. Wish they'd left their name, though.

BSM (whose web site I will not link to, because it's useless) tell me that I'm going to have to pay for tomorrow's driving lesson even though I attempted to ring on Saturday to cancel it (there was nobody there). Not entirely happy about that.

Still using emacs 21. Still haven't got as far as trying ilisp with it yet.

Enough about Emacs 21#

Tue Dec 4 09:51:31 2001

Topics:

Enough about Emacs 21. I think it's staying.

Last Saturday I rented Soylent Green on video, and didn't actually get as far as watching it becuase it turned out that Monty Python and the Holy Grail was on, then when that finished that Brazil was following it.

Brazil is seriously excellent, by the way.

Having failed to return the video on time anyway, I decided I might as well watch it. Not altogether impressed; it all seems a little implausible. If there are 40m people in New York, they can't all be remarkably well-nourished and living in apartments the size of the one that Charlton Heston got - that's bigger than my flat in London was.

It's hard to be significantly immersed in net "culture"(sic) without learning how this film ends even if you never see it, so I can't say if it would have been surprising. The friend I was watching it with (hi, Judith) guessed the ending correctly ahead of time, so I expect it probably wasn't.

And if scientists can't invent a convincing artificial strawberry jam in the next forty years, what good are they?

Oh, wait. I don't like strawberry jam anyway.

Bah#

Wed Dec 5 08:39:59 2001

Topics: cliki

Bah. I have five copies of UncommonSQL lying around the place, and none of them sufficiently recent to work with the application I actually want to use with it. At times like these one wishes for competitively priced pervasive wireless coverage across the UK rail network.

If, perhaps, less fervently than one wishes for competitively priced rail tickets.

Double bah#

Wed Dec 5 20:06:26 2001

Topics:

Double bah. I thought I'd grabbed a working uncommonsql, but it turns out to be the one with really dodgy MySQL alien declarations in it that only really work on Alpha. Between the API and the permissions system (it's flexible, just like jelly is flexible) I really am thinking about moving this stuff to Postgres. UncommonSQL is rather better set up with Postgres too, which would be a bonus.

Complete lack of diary entries for the past week demonstrates#

Thu Dec 13 18:43:45 2001

Topics: lisp sbcl

Complete lack of diary entries for the past week demonstrates quite clearly that I've not been on trains much recently.

Sunbury project finished for the year. Lisp web project (the thing I needed UncommonSQL for) also substantially finished and waiting for installation 'at risk' time to be scheduled. Time to do some free software again, and this time it's SBCL PPC.

Convinced myself that the pseudo-atomic mechanism does work after all. Unusually, it uses two registers: ALLOC says whether we're in a PA section, NL3 says whether it was interrupted. At end of PA section, we add NL3 (which is a big number) to ALLOC, then conditionally trap to the run-pending-signal code if ALLOC is big enough to be negative. Don't yet see why we need two registers, though. Don't know what happens if we get a signal in foreign code either, but I doubt that's allowed inside a PA section. NL3 is $6, ALLOC is $17

Which is nice to know, but doesn't get us any closer to solving the actual bug we're currently seeing.

On the advice of some people on IRC (sure, yeah, I do everything#

Fri Dec 14 12:28:44 2001

Topics:

On the advice of some people on IRC (sure, yeah, I do everything they tell me to. Except when it conflicts with the instructions of my toaster) I recently installed spamassassin (there's a Debian package in unstable). It has a point scoring system with a whole slew of "looks like spam" rules, then tags the spam with a special header so that I can filter it accordingly

SPAM: -------------------- Start SpamAssassin results ----------------------
SPAM: This mail is probably spam.  The original message has been altered
SPAM: so you can recognise or block similar unwanted mail in future, using
SPAM: the built-in mail filtering support in your mail reader.
SPAM: 
SPAM: Content analysis details:   (31.2 hits, 5 required)
SPAM: Hit! (0.1 points)  Subject: contains a question mark
SPAM: Hit! (2 points)    From: does not include a real name
SPAM: Hit! (3 points)    Forged From: line claiming to be from hotmail.com
SPAM: Hit! (2 points)    Invalid Date: header (no timezone)
SPAM: Hit! (1.6 points)  From: ends in numbers
SPAM: Hit! (2 points)    BODY: /GUARANTEE/
SPAM: Hit! (1.9 points)  BODY: /opt-in/i
SPAM: Hit! (2 points)    BODY: /(?:wish to|click to|To) remove yourself/
SPAM: Hit! (3.9 points)  BODY: /subject.*remove/i
SPAM: Hit! (2 points)    BODY: /mailto:\S+\?subject=[3D=\s"']*remove/is
SPAM: Hit! (2 points)    BODY: /\n\n.*mailto:\S+\?subject=/is
SPAM: Hit! (3 points)    Listed in Razor, see http://razor.sourceforge.net/
SPAM: Hit! (2 points)    Received via a relay in relays.ordb.org
SPAM:                    [RBL check: found relay 48.19.93.203.relays.ordb.org.]
SPAM: Hit! (3.7 points)  Subject contains a unique ID number
SPAM: 
SPAM: -------------------- End of SpamAssassin results ---------------------

Well, yes. There are very few reasons to pretend to be from Hotmail.

So, progress on SBCL PPC#

Sun Dec 16 00:22:52 2001

Topics: sbcl

So, progress on SBCL PPC. Turns out to be an assembler routine which was jumping into the middle of EQL instead of starting at the beginning. EQL expects to use 16 bytes of number stack; by joining half way through we were omitting to allocate it, but freeing it as normal.

Why we were jumping into the middle of EQL, I don't know. The assembler routines were calculating their offsets in a way that would have been correct if static-function-offset did what its docstring says it should have done. However it doesn't, and various other stuff (basically, the generation of cold-sbcl.map) seems to depend on it working as implemented

- (inst j code-tn - (- ( function-code-offset word-bytes) function-pointer-type)) + (inst j code-tn 0) +;; (- ( function-code-offset word-bytes) function-pointer-type))

Now we have some problem with EQUALP instead, which will probably turn out to be related. From my cvs log entry: "I'm always reluctant to claim that code found in cmucl could not possibly have worked. Still not sure how this did, though. "

Yes, it was related#

Sun Dec 16 04:45:05 2001

Topics:

Yes, it was related. Not only do we need to jump to the right address, but we need to set r19 (reg_Code) to the Function object for that address. Now, owing to really bad address punning on the part of the CMUCL PPC port, we can actually use the Function object as a place to jump to. We just weren't - instead we were using the raw-address slot in the Fdefn object. This stuff is non-obvious to me, really.

I think I actually spent most of the weekend, and of Monday, in#

Wed Dec 19 08:25:05 2001

Topics: sbcl

I think I actually spent most of the weekend, and of Monday, in bed. There was no really good reason for this; I just didn't feel that I wanted to get up. By Monday night I'd changed my mind and got up, and it was Tuesday evening before I next slept. So, I woke up today at 5am, which means I get to see daylight today. Definite improvement.

More SBCL raw address fun: I checked what CMUCL did, and on PPC it does in fact store the Function address in the Fdefn raw-address slot - so requires none of the alterations to jump instruction sequences we've been having to do. So we could potentially even revert them. This also fixes the make-random-state bug that I'd previously kludged my way past.

Current issues:

The Today programe reported this morning that "scientists" have found -#

Fri Dec 21 14:32:39 2001

Topics: sbcl

The Today programe reported this morning that "scientists" have found - or possibly just invented, I'm not sure - SSSAD, or Sub-Syndromic Seasonal Affective Disorder. Which is to say, there is now a label for people who feel a bit low in winter but not low enough to actually reasonably claim there's something wrong with them - in which case they would actually (be|have) SAD. Great news!

It was an incentive to get out of bed, anyway. That and the prospect of Desert Island Discs

Saw LoTR on Wednesday - didn't everyone? I've only read the book once, and that was a couple of years ago, so I can't comment on the fidelity of the film. I will say: pro: they left out the poetry; con: some of the falling masonry in Moria landed in completely implausible ways - it acted like it was made from polystyrene foam. The rest of it - well, go and see it yourself and make your own mind up. I enjoyed it.

The problem - or indeed, the opportunity - with buying CDs for Christmas is that I find other CDs that I want. So, I seem to have ended up with another Billy Bragg (Don't Try This At Home) and simian (chemistry is what we are).

SBCL hacking is going to take a hiatus over Christmas. Presently I still have exactly the same problems as I had on Wednesday, but I'm closer to finding out what causes the DEFINE-STORAGE-BASE one: it attempts to call a structure slot accessor out-of-line at that point. These are implemented as closures over the structure instance, and there appears to be something wrong with our closure calling strategy. The magic 'jump to a Function object' trick depends in part on the second word in a Function being a relative branch to the actual code (an offset of #x18 bytes to skip the header) - which is the case for all normal functions but seems not to be for closures; instead they have a relative branch with offset 0. So, loop: see loop.

We're living in a North Sea Bubble
We're trying to spend our way out of trouble

You keep buying these things but you don't need them
But as long as you're comfortable it feels like freedom

Twas the day before Christmas &c &c#

Mon Dec 24 15:50:41 2001

Topics: sbcl

Twas the day before Christmas &c &c ...

Postgres seems to have improved radically since I last used it. Back in the 6.x days it had a knack for blowing up, usually at inconvenient times like Friday nights just as we were about to leave for the pub. Today, though, It's tolerably fast, it has manual pages, and its UncommonSQL bindings actually work out of the box. Admittedly UncommonSQL doesn't itself work out of the box with SBCL, but the necessary patches are fairly obvious and will be going back to OnshoreD as soon as I'm Back.

The Onshore UncommonSQL CVS repo now supports SBCL#

Fri Dec 28 22:22:55 2001

Topics: sbcl

The Onshore UncommonSQL CVS repo now supports SBCL.

As predicted six weeks ago:#

Sat Dec 29 19:38:12 2001

Topics: oracle

As predicted six weeks ago:

Happy New Year#

Tue Jan 1 16:49:54 2002

Topics:

Happy New Year

New Year's Resolutions: #

Wed Jan 2 10:55:20 2002

Topics: asdf sbcl

New Year's Resolutions:

  1. Pay off credit cards.
  2. Finish more of the things I start

Current candidates for finishing: db-sockets, asdf, sbcl ppc, sbcl alpha