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
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
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
Identifier "Generic Keyboard"
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
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.
- It does work in full-duplex mode. This is good, because
it would be useless for me otherwise
- 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
- 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.
- 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.
- Simple time-domain effects (tremelo, delay etc) are dead simple.
Silly twiddly stuff through a multitap delay sounds very Brian May-esque.
- 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
- 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.
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).
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
(They're gearing up for a new release soon, too, which will be
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.