I've been meaning to set up a blog to keep track of random things that I
run into and feel like sharing. One of those happened today, so I finally
figured out how to install blosxom. I haven't gotten around to making a
pretty CSS for it yet (not sure if I ever will, but I can pretend...) so
for now it's somewhat utilitarian and default-looking.
Blosxom is pretty bare-bones without plugins, and while Blosxom itself
seems well documented the plugins are much less so. I spent about
ten hours mucking around with the minimal set of plugins I needed to
get something acceptable (timezone, autoblock, feedback, entriescache,
interpolate_conditional, permalink, cooluri2, lastmodified, and a
bunch of modified templates to use feedback and permalink). I tried
and then discarded followsymlinks and metadate (for not playing well
with other plugins I was using) and entries_index (lastmodified wanted
something which set %others, so I used entriescache instead).
I needed to hack lastmodified to work with entriescache, since it
cleverly gets the timestamps from the cache, which are now publication
dates. So here's a
slightly modified lastmodified plugin which stats files directly.
I spent a while getting RSS to behave, too. I used lastmodified to set
lastBuildDate, modified the story template to use permalinks which were
acceptable to feedback (it wants .rss on the end or it decides they
aren't story pages), and eventually figured out that I needed to set
<guid> to prevent
liferea
from thinking each modified post was new by comparing descriptions.
All in all it was far more work than I meant to do last night when I
decided this was a good idea. Hopefully I haven't messed it up too
badly. We'll see whether I upset Planet. Leave me a note if
it makes your feed reader unhappy, or something.
I was actually going to use
ikiwiki,
but chickened out at the last moment; blosxom had fewer dependencies and I
didn't want to mess around with getting ikiwiki to install on sarge. And
it still seems to be evolving - so while it's wicked cool, I think I'll
let it have a little more time to settle first.
I spent most of this morning messing around with
OpenWRT. I bought a LinkSys WRT54G quite a while ago (to replace a flaky
D-Link DI-614+), and put OpenWRT on it. It took a little work to get it to
do what I wanted, including fixing a quoting bug in the WPA startup script
and tracking down an updated dnsmasq, but eventually I got it set up. Mostly
the stock things: NAT, firewalling, wireless with WPA2, DHCP, internal DNS.
Except that it can do one thing that none of the stock firmwares could:
provide static DHCP addresses to specific boards, including custom options.
This was absolutely essential for me to retire my old DHCP server, since
I keep an embedded board lab in my office. I need the DHCP server to be
able to tell boards where to get kernels and root filesystems.
Anyway, it works well. Except that I've been having too many dropped
connections lately and I have no way to track down whether it's the laptop
(Dell Latitude D400, ipw2200 - mostly in Windows lately, I haven't retested
it in Ubuntu in a bit) or the AP. I updated the Windows drivers and now
it periodically tries to rekey, fails, reports "duplicated RSN" whatever
that means, and periodically reports authentication failures. About the
same as before except that now it has better diagnostic tools to tell
me in undocumented messages what went wrong, instead of just telling me
that something went wrong.
So I next went looking for an updated driver for the other end. Which
was a mistake. Note to others: if most of your packages are on a cromfs,
running "ipkg update" is going to tear through your available MTD space
really fast.
And ipkg is not graceful at updates the way dpkg is; it failed to
upgrade base-files due to file conflicts, leaving the updated dnsmasq
unable to start. These are the same sorts of conflicts that you see
in apt-get upgrade periodically: files moving from one package to another
without sufficient package relationships (or in ipkg's case, maybe
sufficient package manager support) to do it seamlessly. Then when
I retried the update it succeeded, but it wiped out my firewall config
and password file without asking.
I don't really blame OpenWRT for this. "ipkg update" just isn't a good
idea with their tools. But I miss apt. And I really miss 2.6 kernels;
the binary-only Broadcom drivers that power the WRT54G only work on 2.4.30.
And it's tight on flash/RAM anyway.
So I went looking at options. Obviously, I can't get something that does
exactly what I want for the kind of mass-market price the WRT54G sells
at. But a suggestion from a coworker sent me looking at Mini-ITX systems,
like the nice-looking
Mini-Box M200. And at smaller things, like the
WRAP WiFi
and
Soekris boards.
I haven't done a hardware project of any sort since last summer, so I'm
thinking about building myself an access point with benefits. I haven't
decided what the benefits will be yet - if I get something like one of the
Soekris boards, probably just bigger compact flash and back to
dnsmasq for internal DHCP. But if I get a Mini-ITX system, I can throw
a hard drive in it, arrange over-the-network backups, and use it as
an incoming mail hub. This would let me decomission one of the
always-on computers in my office. A mighty attractive proposition,
although a bit less so now that the heat wave has broken.