diary at Telent Netowrks

On Monday I went to the #

Wed, 01 May 2002 01:39:37 +0000

On Monday I went to the Campaign for Digital Rights Miniconference on the European Copyright Directive. If you live in the UK and ever read books, or listen to records, or use software, you should probably be concerned. A lot of people are reasonably concerned about the effects of digital copying on their industries, but legislating that it's illegal to break the copy protection (even when you have a legitimate use, like needing to transfer software to your new computer, or lending books from a library, or ...) is not the Right Answer. The software industry shelved copy protection a decade ago because users didn't like it; do we have to go through the same thing again?

Before the conference, 5pm tube travel reminded me quite sharply why I moved out of London.

After the conference, beer. After beer, pizza. After pizza, bus back from Islington to central London, and coach back to Oxford, arriving around 3am.

Today, new asdf version. Actually mostly done on the coach down to London yesterday. Also registered for the UKUUG Linux Developers' Conference. If you haven't already done likewise, you just missed the early rate. Update: uh, no you didn't. I was confused with OLS: the UKUUG early rate runs for another month yet.

There's a bug in SBCL 0.7.3 (and all older versions) that makes it#

Mon, 06 May 2002 14:03:26 +0000

There's a bug in SBCL 0.7.3 (and all older versions) that makes it randomly get SIGILL when it's working hard. The problem only manifested on newer Alphas, ans given that (i) mine is older, (ii) I've never heard from anyone else using it, I've not been too bothered about fixing it. But, now that SBCL is in Debian it's going to be an actual problem as the Debian autobuilders are ev6 machines so tend to blow up rebuilding newer versions.

Well, the problem turned out to be that the icache needs to be flushed (or synchronized, or whatever) after new code components are made, so a nop sanctify-for-execution is not good enough. Fixed that, and went in search of Compaq Testdrive machines to test on. The next version of SBCL (enbd of this month) should work, then. The Debian version should work before then, as I sent the patch directly to the Debian maintainer too.

The problem, though, is that I got carried away. Seeing all those OSF/1^WDigital Unix^WTru64 machines there as well, I started wondering how hard a SBCL Tru64 port would be. And, several hours later, had one that almost worked: it gets almost up to the point of printing the toplevel prompt, gets an error, gets confused, then slowly eats all available memory.

This is where Tru64 starts to get annoying. It's missing less, gdb, a working z option to tar. The C compiler can't optimize and debug at the same time. dbx won't attach to a process and show me its memory. gdb, which I have no built, gives scary internal error messages and offers to dump core whenever I attach to process (and if you think I'm going to start SBCL in the debugger and continue manually through n-1 perfectly normal garbage collection SIGSEGVs just to get to the one that's actually broken ... well

Looking at the price of guitar effects pedals#

Thu, 09 May 2002 19:02:55 +0000

Looking at the price of guitar effects pedals. £220 for a nice modelling delay pedal, same again for distortion ... Alternatively, £500 for another computer and a soundcard and CLM or csound or similar, maybe £40 for a broken pedal from ebay to gut for the user interface, I get to design my own effects (I'm not yet sure if this is a good thing, though clearly it's the deciding factor), and I can probably watch DVDs on it too. Hmm.

On reflection, I don't think that was a correct use of "deciding#

Thu, 09 May 2002 20:33:46 +0000

On reflection, I don't think that was a correct use of "deciding factor". Given how upset I get about people using "begs the question" when they mean "provokes the question", I should probably be more careful.

Well, that was an experience#

Thu, 09 May 2002 23:17:26 +0000

Well, that was an experience. For the benefit of Google, to get XFree 4.1.0 running on a Debian GNU/Linux new-world Imac, I needed (1) not to use the kernel framebuffer support, because the kernel is determined to use the OpenFirmware console, which is apparently not much cop, (2) to configure for 1024x786 at 75Hz, because any other resolution results in a black screen (the power button goes orange, so I guess this is DPMS cutting in) with no explanation, and (3) that the XkbModel should be macintosh_old, contrary to what the debconf thing says.

In the spirit of cargo cult configuration file hacking (and when has Xkb been anything else?) I reproduce the revelant sectionn here

Section "InputDevice"
        Identifier      "Generic Keyboard"
        Driver          "keyboard"
        Option          "CoreKeyboard"
        Option          "XkbRules"      "xfree86"
        Option          "XkbModel"      "macintosh_old"
        Option          "XkbLayout"     "ma"
        Option "XkbTypes"        "default"
        Option   "XkbCompat"       "default"
        Option   "XkbSymbols"      "macintosh/us"
        Option   "XkbGeometry"     "macintosh"

I spent as long working this out as it used to take to calculate modelines back in the bad old X386 days. Yay progress!

I still can't get sound working on the blasted thing, though#

Fri, 10 May 2002 11:19:33 +0000

I still can't get sound working on the blasted thing, though. I have vague recollections of dmasound_pmac being the appropriate thing on a previous kernel, but now - well, it works apparently perfectly in all respects except that of actually producing audible output. Yes I have tried a mixer.

Score one for kernel audio drivers, though. I then tried alsa and it locked the machine solid. Hmm

So after that I tried my laptop, but its icky i810audio stuff doesn't understand full-duplex. The card in the Alpha does, but that machine is firmly ensconced in the rats nest of stuff under the desk and is not about to get lugged downstairs to be near the guitar. http://www.griffintechnology.com/audio/imicmain.html" >This thing looks rather slick, though. And cheaper from the Apple Store than either of MikroAnvika or Technomatic. How long it'll take to arrive, though, I have no idea. In the meantime I can get some software-type stuff written. I'm sure it's not really necessary to drop into C just to do audio processing (and if it is, it's time to do some SBCL hacking to fix that)

Despite claiming to take two-three weeks to ``build'' my iMic, I#

Tue, 14 May 2002 05:45:51 +0000

Despite claiming to take two-three weeks to ``build'' my iMic, I got email form the Apple Store the day after I ordered it saying that it was being dispatched. So, maybe it will arrive for the weekend.

I was going to merge Tru64 support for SBCL this evening, but all (which is to say, both of) the useful machines at the Testdrive are down or at least ailing. So instead I've started paging bits of SBCL MP back in. Apart from anything else it's the realisation that it's most of a year ago I started hacking on the thing, and even granted it's been more on than off since then and that includes at least one 90% rewrite, it's about time I had something to show for it. So I spent some time thinking about queues and about arrest reasons and run reasons, and eventually I think I ended up with something tidier than I started out with

<dan_b> so technically I have no problems, but aesthetics are botyher ing me

My standard of typing on the other hand I long ago ceased to give a monkey's about.

That was the shortest three weeeks ever#

Wed, 15 May 2002 09:43:36 +0000

That was the shortest three weeeks ever. The iMic arrived yesterday and is even smaller than I was expecting it to be.

Random observations:

  1. It does work in full-duplex mode. This is good, because it would be useless for me otherwise

  2. Plugging it in spewed vast amounts of autodetection and debugging messages into syslog, then created /dev/dsp1 and a pair of mixers. gmix can find the mixers

  3. Using read() and write(), latency is inaudibly little provided I set the fragment size down to 256 bytes or so. I may also have needed to recompile drivers/usb/audio.c without AUDIO_DEBUG to get this: I did that at some point anyway, but can't remember exactly what caused what any more.

  4. I messed around with mmap() for while, but trying to get it working without burning out my guitar amp by sending it evil nasty sounding random digital data is more effort than I suspect it's really worth. This is a USB device after all, it's not really DMAable.

  5. Simple time-domain effects (tremelo, delay etc) are dead simple. Silly twiddly stuff through a multitap delay sounds very Brian May-esque.

  6. SBCL is going about fast enough to keep up. I don't use read-sequence and write-sequence: they want to call select() at times that the audio device isn't expecting. Instead, I use array-data-address (from db-sockets or the CMUCL manual) to get the actual address to write data into, then call unix-read and unix-write directly

  7. Some frequency domain effects next, I think

Yes, that is an Irn-bru can. I like the stuff, OK?

So I started out by looking at FFTW, but (a) calling C is enough of a mess that I prefer not to,#

Mon, 20 May 2002 01:49:48 +0000

So I started out by looking at FFTW, but (a) calling C is enough of a mess that I prefer not to, (b) it wants doubles as input, not the shorts that I actually have, (c) I wanted to find out how an FFT works anyway. Lots of web trawling later I game up on most of the other FFT code snippets I could find, downloaded the appropriate Numerical Recipes ("In C" variant) chapter, and transcribed their C into Lisp. With a few type declarations it does a forward-then-reverse in-place transform in about 1.4ms.

Then I actually did try FFTW, and it's slower (2.2 seconds for the forward transforms alone). Could be C calling overhead, or my lousy measurements, or possibly that 2^10 is neither a very big nor complicated size anyway and I would have found it more of a win if I had some weirdo 31765 byte buffer, or something.

And earlier today I saw When Clones Go Bad. Trouble was, having re-read a lot of Jon Courtenay Grimwood books recently (he throws neuroscience terms around like confetti - or like confetti would be if it were heavier, slightly squishy, oxygen-dependent, full of chemicals and - and actually not very much like confetti at all, then) is that I kept hearing Princess Amidala's name as Amygdala

Lately we've been playing the exciting game called "hey, how about#

Thu, 23 May 2002 17:00:21 +0000

Lately we've been playing the exciting game called "hey, how about actually reading the specs".

Last night I found out that the cookie handling in CLiki was putting spaces in cookie data (it shouldn't). Anyone who has mysterious \ characters appended to their username probably wants to delete their cookies for ww.telent.net and try again. It seems to only show up with reasonably recent Galeon and Mozilla browsers, which conveniently enough are the ones that you can delete cookies in without farting around editing cookies.txt by hand. So, good.

This afternoon I found that net.telent.date's so-called UNIVERSAL-TIME-TO-RFC-DATE function isn't, because it should be printing a timezone (it's guaranteed to be GMT, but apparently needs to be printed anyway). Having made that change (though not in the released version, for which I still need to do other stuff first), the Apache proxy actually starts caching as God intended, and suddenly the pages/second count as seen by apachebench doubles (99 requests/second on a 4k document on my was-once-cool-but-now-obsolete 500MHz laptop). Cool beans.

SBCL 0.7.4 released (I didn't do it, I merely report these things)#

Sat, 25 May 2002 00:46:34 +0000

SBCL 0.7.4 released (I didn't do it, I merely report these things).

From the feature list it doesn't sound like major news, but when there are bug fixes involved it's better by far to get the new versions out regularly anyway. Otherwise you end up in ILISP country, where they're still telling everyone who uses Emacs 21 to get the CVS version.

(They're gearing up for a new release soon, too, which will be welcome)

Are You An Alcoholic?. ``If you have answered YES to three or more, you are definitely an alcoholic''. When it asks "Has your efficiency decreased since drinking?", I have to guess it doesn't really mean "since 9 o'clock this evening", though

I like to imagine that this diary has a host of dedicated readers#

Wed, 29 May 2002 15:41:14 +0000

I like to imagine that this diary has a host of dedicated readers who avidly search each new entry for every clue that might help them work out what kind of mysterious person I am.

Well, actually, no. The thought gives me the willies, in fact. But as a sop to any stalkers in the audience (it would make life simpler if they would set their User-agents appropriately, then at least I'd have stats) I can now reveal: the misshapen kind.

I'd never previously noticed, but it's plainly obvious from this afternoon's endeavours to buy a suit. If only I'd known earlier, I could have saved the details from one of those spams advertising "INCREASE YOUR SIZE BY 2 INCHES GUARANTEED", because, frankly, a 32" inside leg would give me a lot more choice.