diary at Telent Netowrks


Fri, 16 Nov 2001 09:50:30 +0000

This is not a blog(sic). There's a whole weblogging culture out there (if `culture' is not too strong a word for it), which is nothing to do with this diary. You will not find a URL with every entry, gratuitous use of CSS, all-lowercase entries or XSLT.

There are several arguments I could make for keeping a diary on my own site instead of using the Advogato one. The actual reason, though, is that Advogato is just too big these days; when there were fewer people there the non-software-related entries were interesting, but there are too many people posting them now to get worked up about.

I'm on a train. This is another reason for not using the Advodiary, actually: emacs and rsync is a much friendlier interface than html forms, and makes it easier to write offline. I'm on a train to Sunbury, where I am going to install exciting new features in an aging Perl/Oracle/Java web application, about which client confidentiality would prevent me from giving more details, were self-preservation instincts not doing a perfectly good job of that already. The problem here is that Google likes me enough that any comment I write along the lines of

"The Oracle 8i graphical installer sucks so much and so hard that we suspect it was actually repurposed from its original use dividing the waters under the firmament from the waters above the firmament"

will inevitably turn up when some potential customer googles "daniel barlow oracle" in two years time. This would obviously be Bad if I were to write anything that's actually controversial - happily, in that particular case the only dissenting voices are going to be the faction who claim that the installer doesn't suck, it just blows. <question type="rhetorical" answer="sparingly">What were they thinking</question>

Daniel Barlow
Local Variables:
eval: (local-set-key [f11] (lambda () (interactive nil) (insert "<" "h2>" (current-time-string) "<" "/h2>\n<" "p> ")))


Fri, 16 Nov 2001 12:58:35 +0000

ORA-00600: internal error code, arguments: [17090], [], [], [], [], [], [], []
"Each argument has a specific meaning which can only be interpreted by an Oracle support analyst. The arguments may also change meaning from version to version therefore customers are not advised to memorize them."

"Not advised to memorize them"? Why would I even want to when I could just write it down somewhere? Clearly there is an orac?le? tradition here that I'm missing the cultural context for.

Back on the train, gang#

Fri, 16 Nov 2001 19:12:32 +0000

Back on the train, gang

The other day I had a look at db-sockets again. This is a fairly low-level interface to BSD sockets for SBCL that I started about two years ago and then never really revisited - I wrote a couple of other things layered on top of it (Araneida and CLiki) but only the bits of socket implementation than I actually needed ever happened. And nobody else (that I know of) ever used it either - probably either because they wanted something more abstract, or because they wanted something CMUCL-compatible (or indeed both).

Writing db-sockets the first time around convinced me that Unix APIs are pretty damn sucky in places. I'd mostly forgotten about this, but it's starting to come back to me now. The other thing I hadn't realised at the time, though, is just how sucky db-sockets also is. Was. Whichever. Garbage collecting objects-which-represent-file-descriptors is so horribly the wrong thing that I don't want to think about it.

New db-sockets will probably be even more low-level. It will deal in file descriptors, will use Lisp memory for the sockaddr and other structures lying around the place, will have suitable macrology for managing fds so that we don't leave them lying around open until the next time the user happens to GC, and will, we hope, be a sensible target to port net.sbcl.sockets to, so that people who want cmucl-compatible stuff can have it as well without feeling they're getting two of everything. Then I will sort out Araneida, and then I will fix CLiki. And hopefully someone will package CLX for SBCL so that - actually, I'm not sure it would be so cool for that to happen because then I'd probably start hacking on Eclipse again. And that's a time sink.

Repeat x20. I love gnome error messages too


Though note that despite the preceding (lexically following)#

Fri, 16 Nov 2001 22:34:16 +0000

Though note that despite the preceding (lexically following) entry, db-sockets is not what I intend to hack on this weekend anyway. No, it's sbcl threads time

I see that Nat has changed his 12th November diary entry. Boo hiss. I loved the idea of

indenting to pun

Was pointed to Why compilers are doomed by superant's Advodiary#

Sat, 17 Nov 2001 01:33:31 +0000

Was pointed to Why compilers are doomed by superant's Advodiary

I bristle when I hear the phrase "scripting language", because it seamlessly combines "great for quick hacks" with "vomit-inducingly ugly for anything more than 200 lines long or where performance is an issue", and although there's legitimately some kind of trade-off there I really don't believe it's the straightforward x + ay = k that people make it out to be.

Yes, it's good to use expressive high-level languages that have vast prebuilt libraries, that let you write "hello world" in a single line of code and execute it less than a second later without waiting for the compiler. That doesn't mean it has to be slow as molasses, have one implementation and no external standard, and have insane syntax or horrible support for building big programs.

<opinion>Any language you can't implement in itself is not general-purpose. Any language you wouldn't want to implement in itself is not usable. </opinion> Granted, that doesn't leave a lot of options.

Opinion on the article itself: so many other problem spaces in IT map onto something that has been solved as part of compiler design, that you'd be damn foolish to decide that compilers were not worth studying any more just because silicon is fast these days. I've never needed, say, to write a grep(1) clone, but that doesn't mean I haven't found finite automata theory useful on other tasks.

I love the way you say just#

Sat, 17 Nov 2001 02:38:05 +0000

I love the way you say just

Hacking in abeyance today, in favour of starting to clean house,#

Sun, 18 Nov 2001 01:06:14 +0000

Hacking in abeyance today, in favour of starting to clean house, and visitors. Visit bottle bank, walk through the university parks and over to Marston, then back for coffee. Then we went out for dinner to celebrate the first anniversary of my vanity company. Tomorrow more cleaning (received notice that landlord is coming round to inspect the place sometime during the week when I'm out, causing me to look at the skirting boards and think "hmm, when did I last dust that?") and hopefully some writing of invoices. The company first traded on Dec 31 last year, but I'm hoping that I can actually close the accounts at the end of November to coincide with the VAT return.

Now let's see if we can finish a roadmap for the next stage of SBCL threads before bedtime. The thread switching primitives work fine (and have for months, in fact) so we just(tm) have to worry about writing a scheduler, queueing, locking, timer events, and doing enough integration into the stream io system that the thing will still actually run. Preferably without rendering the whole thing completely unusable for people who elect not to use threads, too.

OK, it seems to make enough sense#

Sun, 18 Nov 2001 04:16:59 +0000

OK, it seems to make enough sense that I think I can start writing actual code in the logical-morning.

I need to find some asdf hacking time. Really.

I realise there's an ambiguity in the last-but-one entry#

Sun, 18 Nov 2001 15:44:14 +0000

I realise there's an ambiguity in the last-but-one entry. Yesterday I started to clean the house. I did not however start to clean the visitors. OK.

Threads lead to queues and queues lead to locking, and before we know where we are, we have the alpha asm reference open again to look at how LDQL and STQC work. Cool.

On the train again, and realising that the new SBCL checkout on my#

Mon, 19 Nov 2001 08:11:49 +0000

On the train again, and realising that the new SBCL checkout on my laptop is from the HEAD, whereas all my recent work is on the 'threads' branch. What I should be doing, then, is asdf. What I'm actually going to do is lean my head against the window and doze.

Fun with Network Solutions(sic)#

Mon, 19 Nov 2001 16:01:35 +0000

Fun with Network Solutions(sic). Every time I visit their site (which I try to do as infrequently as possible, I admit) they have moved it all around again. These days it appears that despite there being three independent contacts associated with a zone, they will not take updates using the email forms any longer, but instead want you to use the web-based interface. For which they give you only one username/password. So what are the other two contacts for then?

Among the things they haven't changed are the length of their telephone queues. After fifteen minutes of being told that my call would be answered in just a moment, I decided they were lying.

But at least now I have the right SBCL sources for the trip home. Hackety hack.

End-of-day roundup#

Tue, 20 Nov 2001 23:56:54 +0000

End-of-day roundup

I'd not seen Easy Rider before last night, when Channel 4 showed it on TV.

Today was driving lesson day, and I think probably the first time I actually got the car up to 70mph. There's not much else I want to say on that subject.

Started a thread on comp.lang.lisp about what happens to the language's ordering guarantees in the presence of multiple threads. Consensus seems to be that they don't apply (which is half of the answer I was hoping for) but no real useful information on what the application programmer can typically do about that. Disabling pre-emption for the critical section is not a particularly good answer in my mind. I remain convinced that CL can often be written to be close enough to the machine that programs can do most of what C programmers do - it doesn't end up as portable CL, but it's not portable C either - it's just that if the accumulated output of comp.lang.lisp describes the Common Lisp community, they really don't seem to be too too interested in that stuff. Which is a reasonable choice to make, of course, but not the only rational choice. Once upon a time there must have been lisp programmers who were interested in the low-level grunge, or we wouldn't have had OSes written in the language.

I see more name registration antics in the near future, as telent.net will be up for renewal early next month. register.com are incorrigible spammers to whom I'm not intending to give any more business than I can help. Let's see if I can transfer to Joker.

And so to bed.

:; whois cliki.net#

Wed, 21 Nov 2001 15:05:41 +0000

:; whois cliki.net
domain:       cliki.net
status:       production
origin-c:     dan@metacircles.com#0
owner:        Daniel Barlow

Bagged cliki.org and cclan.org likewise, though still need to point them at some nameservers with actual records in them. Current plan is to host multiple cliki sites on www.cliki.net, sbcl-internals.cliki.net, diary.cliki.net, etc

The Jargon File now has an entry for "muggle". I thought I remembered a time when it actually was a guide to hacker culture and not just a list of everything Eric Raymond thinks is cool. Which is not to say that I didn't enjoy the Harry Potter books - or the film - but that so did everyone else in the known universe, and should we expect entries for "chair", "window pane", "tuberculosis" and "derailleur gear" next because sometimes hackers have some of those as well.

As I was shuffling piles of stuff from one place to another around#

Thu, 22 Nov 2001 09:14:35 +0000

As I was shuffling piles of stuff from one place to another around the house last night, I found the book that I'd forgotten I bought on Saturday. "Cosmonaut Keep", Ken MacLeod. I have this weird feeling that he's taking the piss somewhat:

"What's with the fucking news", someone's saying [...] "I can't get CNN, can't even get Slashdot ..."

This particular clique aren't all programmers. Sometime half a century ago, back in the nineties, their social circle overlapped that of the Scottish literary intelligentsia.


  1. Is this man an EdLUG member? I think we should be told
  2. If people are still reading Slashdot in 2045, I want a new career now, please. That's just too grim.

Still, I laughed.

How to write error messages, part n: when reporting#

Thu, 22 Nov 2001 13:53:36 +0000

How to write error messages, part n: when reporting filesystem errors, include the pathname of the associated file. We take our example, as usual, from Oracle.

ORA-00443: background process "PMON" did not start
ORA-09922: Can't spawn process - background log directory not created properly
Intel SVR4 UNIX Error: 2: No such file or directory

Which is to say, not like that.

Today (Friday) was cold#

Sat, 24 Nov 2001 02:12:05 +0000

Today (Friday) was cold. In fact, it still is - I have four computers turned on in this roughly single-bedroom-sized room and I'm still having to wear a jumper. I could maybe turn the Mac back on.

I know it's cold because I spent half an hour this evening standing outside Milton Keynes Central railway station waiting for a bus. Still, an hour each way by coach beats the train journey I've been doing for most of the last three weeks.

An hour this evening playing with the guitar. My neighbours must love me. I think I'm actually getting better at it, though I have no doubt that an objective observer would still be pretty rude.

Three hours reading the Alpha arch ref manual to find out whether atomicdecand_set is a sensible thing to want to do, and if so, a possible thing to do. Seems kind of plausible so far.

For some reason I seem to be getting a lot of mail lately from orinocoplx users (including some from people for whom it actually works, which is tremendously gratifying, because it never actually did for me in any useful way). Perhaps it recently got merged into a -linus kernel, or something. orinocoplx is for Linux users unfortunate enough to want/need to use PLX9052-based PCI/PCMCIA adaptors with PrismII wireless lan cards - e.g. the Netgear MA301. My advice to any such people still in a position to do so remains "go back to the shop and trade it in for something that actually works". Especially if you want to do ad-hoc; prismii cards seem to have ad-hoc problems.

Either my laptop is developing hardware problems, or my local Debian mirror is corrupting packages on the fly as it serves them to me. Neither situation is desirable, really.

Today the weather was lovely and I had a chance to get out and ride#

Sun, 25 Nov 2001 03:40:02 +0000

Today the weather was lovely and I had a chance to get out and ride my bicycle (in shorts and short-sleeved top, even. Unusual for a UK November). This was the first time in something like three weeks (not entirely the weather's fault, I've been out of Oxford a lot recently and lazy when I was here) and I feel much better for it.

As compensation for that, the hard disk in my laptop gave up. Which was something of a surprise as it wasn't even ill yesterday. I got a backup which seemed to include most of the important data, but I managed to lose my package list, so reinstalling onto the new one took longer than I wanted it to, and there are probably still packages missing from it that I will find I need. It has no cclan yet

I took the opportunity to upgrade to emacs 21. Anyone know how to get rid of the irritating vertical grey strips down the sides of the frame?

Two days later, and I'm still using emacs 21, which is longer than#

Tue, 27 Nov 2001 00:37:12 +0000

Two days later, and I'm still using emacs 21, which is longer than I've managed to stand it for on any previous occasion. It might be a goer this time. Additional fluff for the .emacs: (custom-set-variables '(smiley-regexp-alist nil))

Sunday was a do-nothing day, so not worth diarizing about. That you get no diary entry for it has less to do with any such concept of value than it does that the day was punctuated by a bottle of wine and the Channel 4 "100 best films" program. Monday, post-hangover, involved a driving lesson, a timesheet (one step closer to invoicing), a weird Solaris problem, more Alpha assembly and several hours with a guitar and the tablature (courtesy of OLGA) for White Queen. I feel quite unreasonably positive about life just now, which is an improvement on Sunday.

More on last Saturday's work - how to install Debian using a PXE boot» . It turns out to be quite easy if you have another local machine that can do tftp and bootp service. Almost all the work is done on the server

  1. Install tftp-hpa

  2. Install and configure dhcpd. In the clause that describes your clients (subnet, host, group, whatever) you need to say filename "/var/tftp/pxelinux.0";

  3. Get the debian rescue image, loopback mount it, copy the files into /var/tftp

  4. Copy /usr/lib/syslinux/pxelinux.0 into /var/tftp

  5. Copy syslinux.cfg into /var/tftp/pxelinux.cfg/default

  6. gunzip root.bin, loopback mount it, copy an appropriate ethernet driver onto it, umount, zip it up again

  7. Restart whatever services you just edited the config files for.

  8. Boot the client. It should come up with the normal Debian bootstrap thing.

  9. Before you can install kernel + modules, change to the shell (Alt+F2) and insmod your network driver

  10. When you're ready, proceed at your own pace to an installed Debian box

Handy if you have a laptop like mine (no CDROM, floppy is USB and only emulates a legacy floppy at BIOS level, so Linux doesn't see it)

Sorted a bunch of orinoco_plx mail, sent off a new version to David Gibson. No exciting changes, just more PCI IDs that people keep sending me.

The Oxford Byzantine#

Wed, 28 Nov 2001 02:41:48 +0000

The Oxford Byzantine Society were showing slides of their visit to Constantinople this September; trotted along on the promise of wine and mince pies. Given that this is an English November, it may be excusable that the impression I took away was mostly of sunlight and blue skies.

We (not the society; a bunch of friends) went to Istanbul back in April, so I recognized some of the pictures. It would be nice to be outdoors again. At a cafe, with a coffee, by the Hippodrome, listening to the muezzins call the faithful to prayer.

After slides and a post-slides beer, it was time to stick pizza in the oven and "Crouching Tiger, Hidden Dragon" in the VCR. Awesome. I wish I could fly like that. </orville>

Also today, read Paul Graham's proposal for Arc, a new Lisp. Has some interesting ideas, but I can't help wondering if a new language designed to run server-side applications is not, like, several years too late to get really enthusiastic about. More on this later when I've thought about it.

Day 3 with emacs 21. Still haven't tried to start ILISP, though.

Accounts day#

Thu, 29 Nov 2001 01:42:11 +0000

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, 30 Nov 2001 21:01:41 +0000

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.