Older blog entries for dan (starting at number 47)

OK, so I've been doing a little web-surfing lately to find out about capabilities-based security (in general - not in Linux specifically) and it seems to distill down to this: a capability is a bundle of an object and some actions that can be performed (with|on) that object. If you don't have the capability to do y to x, you can't - in fact, you can't even describe the operation involved.

Which seems quite tidy, though in all honesty pretty obvious really. So I'm left thinking there must be more to it than this. Where do you get the capability from in the first place? Or is that Policy (a.k.a "we haven't really thought about that yet")

So, a busy couple of months and not a lot of free software stuff done. This evening after failing to summon the necessary enthusiasm to hack any of SBCL/alpha, i810 APM support or CMUCL webby things - or do my invoicing - I decided to spend some time updating CLiki. I love it when I visit that site and find out that others have added software to it.

kdb and ext3 are cool. The usual failure mode of the i810 after an APM suspend/resume is to lock the system up so hard that even VT switching doesn't work, but not having to fsck before trying it again speeds things up marvellously. If you were thinking about linux device driver hacking, go ahead and try it - as a kernel newbie, I have to say that (so far, anyway) it's not as hard as it looks.

Does anyone have the IRDA working on a toshiba portege 3440CT? The chip is apparently register-compatible with the Oboe in earlier toshibas except for using a different PCI id; changing the appropriate constant in toshoboe.c makes it able to successfully insert the module, but doesn't appear to do anything further. I'm wondering if I should have run some kind of setup tool before trashing the preinstalled win98

I read both Jonathan's and Michael's thoughts on freelance vs permanent employment, and tend to side with Jonathan. Most open systems people and free software people would agree that vendor lockin is a bad thing. Why is employer lockin any different? Let them compete on merit, not on crummy "stock options" bundling deals involving ambiguous promises of unspecified (and often unrealized) future reward. The world does not owe you a living just because you are a company. If you can't motivate staff to see your project through to completion, is that your problem or theirs?

... and as for "long-term commitment", you can have mine when I can see that I have yours. It cuts both ways.

(And that's about the nearest I'll probably get on Advogato to long angsty rants about recent personal events. Please proceed directly to whatever conclusions you find most entertaining)


(defun symbol-hash (symbol)
  "Return the hash value for symbol."
  (symbol-hash symbol))

No wonder it was looping ...

For the curious, the x86 port has a VOP for symbol-hash, meaning that calls to it are open-coded (inlined) by the compiler, so the above function is not actually recursive. In fact, it's not actually called at all, except from interpreted code. Inspection of CMUCL code indicates that symbol-hash is never supposed to be used at all except when the generational gc is in use, so it looks like I have to drag more code from cmucl that sbcl has managed to junk since it split.

So, finding recently that I unexpectedly had several days of uninterrupted hacking time, I started hacking. SBCL on the Alpha is four days closer to being a reality than it was, uh, four days ago. The C bit builds, CMUCL builds the SBCL crosscompiler, the SBCL crosscompiler (running inside CMUCL) can build the final compiler, and it generates a core file of plausible size and shape. But then when I start it, it blows up at random in COLD-INIT

I just noticed though that I'd left :gencgc (the generational conservative gc, only works on x86) in the target features list, which can't exactly be helping. So, time to rebuild it all from scratch. Wheee.

As a matter of curiosity -does anyone care?

``The past is another country''

So, coming through Customs and Immigration from last month, what have I got to declare?

OLS was uniformly excellent - except for the Helixcode party (especially excellent; congrats Nat, Miguel, everyone else involved) and the ZKS party (less excellent; blame their marketers). Apparently something I ingested at the Helix party had an unfortunate disagreement with my nervous system, because I'm suffering memory loss about some aspects of the evening. And people keep asking me about doors; can't figure out why.

Memorable talks included

- Miguel's keynote. My position: yes, Unix sucks, but it's not absence of policy that does it, it's (a) non-uniformly applied policy - why does ls(1) behave differently when it thinks its output is a terminal?, and (b) the paucity of the everything-is-a-stream-of-text model, which is basically too limited (see ioctl(2)) and too brittle to rely on (are you sure that works when your filenames have spaces in them? What if I change $IFS?)

- Berlin, which looks really elegant - insofar as anything can be elegant when it's based on CORBA.

- XPCOM, the Mozilla thing. Most notable is that they've been developing it for two years and they're still counting references by hand. Half the talk was about memory management. Weird. They should have written the whole browser in javascript, they'd have got on much faster.

And of course, met many interesting and cool people (which is basically the point of these events, as far as I care). Many of these meetings I can still remember, which is good.

After OLS, I went on vacation in Canada for a couple of weeks. Four timezones. OK, three and a half. That was entertaining too, even if I did learn just how badly supported GSM mobiles are in North America. Didn't get a whole lot of computing done; no Internet access.

And now I'm back in the UK, back at work ("oh, what fun", parse that how you will), and back into the inline skating thing again. Thanks to advice from lkcl, who I met at the UKUUG Linux 2000 conference (damn, I forgot to mention the UKUUG conference already) I worked out how to stop efficiently using the heel brake: keep the knees together. It feels a lot safer, and after watching someone not do it (instead putting his right leg straight out, squirreling all over the place, and falling over) yesterday, I'm pretty sure it is safer. And feeling safe means I can go faster. So now I like to get out for a quick spin(sic) around the park after work each evening. My earlier advice ("find a smooth level place") I still consider to be valid.

Currently reading: Beowulf - the apparently-quite-famous Seamus Heaney translation.

Wed Jul 19 04:24:00 2000: OLS day 0

London Heathrow -> Boston -> Ottawa

Not only am I jetlagged, I'm turboproplagged.

If like me you've only ever been on big planes, here are some notes you may find useful about small ones.

1) they're small. On the Saab 340, for example, each row has seats denoted A, B, C - you stand almost a 70% chance of getting a window seat. Even in the worst case you at least get an aisle seat. Rows are numbered 3-14. Go figure

2) they're noisy. After some half an hour zipping around the taxiways waiting for the weather to clear, the pilot eventually got permission to leave, pointed the nose down the runway and whacked the throttles open. Or whatever it is that pilots do, anyway. Shortly after that came the usual magic-gravity-defying-hang-in-midair-moment-that-never-grows-stale which most regular flyers sleep through (I don't care. I still think it's neat), and after that the road noise did _not_ go away.

Ah. Looks like that was engine noise then, not road noise.

3) they're slow. This is actually good because you stay long enough at a low enough height to be able to see some scenery; not so usual with an airbus 300

4) they've no seat back tv. yay! where _do_ AA get the programming for seatback viewing? it's so bland and inoffensive as to be completely unpalatable - actually, now I think of it, so is the food.

We were late out of Boston due to the weather, which was inclement and highly charged. Small planes have this feature in common with big planes: their pilots are no more willing or able to take off during electrical storms with quantities of falling water which lead purple writers to start talking about dancing raindrops. They weren't dancing. Just coming out of the sky, hitting the ground and bouncing up again.

Can an aeroplane aquaplane? What happens?

After we did get off the ground we found that we were in the middle of a glorious sunny summer evening, for most of the flight. Until the plane began final approach and we found out that everyone actually living here is _below_ the cloud layer. Seems odd when it's so much nicer above, but they probably have reasons. I'm only visiting, what do I know?

Nobody in airport security, customs or immigration at any of the airports I've been though bothered asking to see my laptop. Given that I flattened its battery before landing at Boston, this may not be such a bad thing. Canadian immigration officers are however extremely friendly and will talk to you for ages, given half a chance. At 1:02 Dan Standard Time I had a difficult time excplaining what I was doing in Ottawa without using any form of words that could be equated to "I'm going to meet a bunch of people that I know from the Internet." Hmm.

Arrived. Found hotel, etc. Slept.

The story so far

After spending a weekend in Nice (variable weather, sunburn, nice forested hill with remains of ancient settlement on top, small stones all over beach making it marginally less comfortable than it might be) I decided that it was time I got some inline skates. I used to be able to ice skate, so how hard can it be?

After two attempts, I have the following to say:

  1. Actually, not very.
  2. But harder than ice skating. The important thing to bear in mind is that ice skating requires merely that you can skate in a straight line and turn left at the end of the rink. It doesn't involve speeding up, slowing down, or stopping to give way to traffic.
  3. I started under the impression that stopping was the hardest part. This is not true. Staying stopped (and upright) is the hardest part.
  4. There is no point in messing about with the brake thing (chunk of rubber attached to back of right boot) until you are moving at a high enough speed to make it worthwhile. If you brake from a slow speed, you will become stopped very quickly and start wobbling or rolling slowly down the kerb again. You may as well slow down by aiming for something inanimate to grab hold of, because you'll need it a minute later anyway
  5. Once you are moving at reasonable speed, the chunk-of-rubber is a lot easier to deal with
  6. Choose somewhere smooth to practice. Rough asphalt can really shake the ankles. `Level' is also a good attribute.

Look out for the next thrilling installment of "Dan attempts to sprain his ankle" later this week.

I could almost believe that this CLiki thing is actually taking off.

$ grep POST /var/log/apache/access.log | grep -v my ip |wc -l

(The log last rotated at 04/Jun/2000:06:43:24 +0100)

Not bad for a dead language!

In other news, somebody got :sockets running under Solaris with what looks like comparatively little pain. Though it was always supposed to be portable to different OSes, this is as far as I know the first time anyone has tried it in practice. It's kind of gratifying

Open Source seems to be more about kicking something out the door and letting people play with it.

That's Open Source? I thought that was ContinuousIntegration and DoTheSimplestThingThatCouldPossiblyWork ;-)


38 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!