Older blog entries for azz (starting at number 8)

1 May 2003 (updated 1 May 2003 at 00:06 UTC) »

Free-software-related stuff that I've been doing lately:

xhippo had a release to get all the small fixes that I've done in the last six months or so out into the world. My to-do list for xhippo is still fairly large; I really need to find a big block of time to catch up on all the stuff I want to do with it.

GARstow continues to grow; I was slightly surprised to count the packages and find I'd built 428 ports for it. (Most of which I have installed on my desktop machine, scarily enough.) I'm not aware of anyone else using it, but it's generated some interest.

onenetd now has at least one major user and is packaged in FreeBSD (thanks, Tim!). I haven't been able to break it lately, although I have a couple of ideas for new features; per-address limiting being the one that would be most useful at the moment.

I was surprised to get patches for freedt from two different people in the same week. It's now got a mailing list and (small) user community, and I've done quite a bit of development work on it in the last couple of weeks, shaking out bugs, improving interfaces and cleaning up the code.

vdesk was the real surprise. I'd written this way back when I used to use aewm, never really used it myself, and only packaged it up for completeness value -- so it came as a bit of a shock to peer at my web logs and discover that not only do other people use it, but evilwm actually has code explicitly supporting it...

Bram: if you're using a Mozilla-derived browser, you can put something like this in your user stylesheet (i.e. chrome/userContent.css in your profile directory):

A:link {
        text-decoration: underline !important;
A:visited {
        text-decoration: underline !important;

The same trick should work in other browsers that allow you to use a custom stylesheet, but I haven't yet persuaded Konqueror to like it.

Hm, I've done a scary amount of work on xhippo since I last posted here. Most of it has been code cleanups; for instance, it's now split up into multiple files, the configuration file reader is table-driver, and the argument-building code for the players is much more sensible. Now that I'm at UKC, it's easier to find tame xhippo beta-testers---thanks are due to Giles, Matthew and Tim for noticing stuff that I wouldn't have picked up on. Next job I'm planning on doing is moving the documentation to texinfo, since I'm thoroughly fed up with maintaining it in SGML. (I've also got a couple of bugfixes done in my current tree, but nothing major.)

I've also got around to fixing my web pages (spurred on by the apparent demise of netpedia's free-software hosting service). I went through my stuff-I-wrote directory and packaged up pretty much anything that someone might find useful.

keverets, the ncurses idea sounds decidedly interesting. I made an attempt to abstract out the UI in C++ before (see "hippo" on my projects page) before deciding that I really didn't like the language. Currently, xhippo is very closely tied to GTK, so you'd have to either fix it so it's not, or write a library which emulated enough of GTK on text consoles to run it. (xhippo's a bit more usable via the keyboard now, by the way...)

decklin, I'm currently on holiday. I'll respond to your mail when I get back. That goes for the people finding xhippo bugs too (apparently I broke GNOME support, which is sort of encouraging me to remove it since it doesn't do anything useful any more).

Yet another productive weekend. decklin merged my MWM hints stuff into aewm, and we both patched rxvt to support override_redirect and MWM hints. Did two releases of xhippo, the first (2.5) adding a popup menu and playlist editing, and the second (2.6) actually making it work (well, plus various other changes). Wrote a quick hack to watch the X selection and show a window with buttons in that depend on the selection (matching regular expressions); I'll probably "release" it some time next week.

It did make me start to feel mildly infuriated with GTK, though. No X resources support; no X geometry specification support; windows don't calculate their size until they are shown...

Argh, procrastination is a wonderful thing. I got sent a patch for xhippo to make it redirect output from players to /dev/null, which will probably go in at the weekend when I've actually got some time. Tried to build Interbase with no success; it seems to assume that you have the binaries already there. Added MWM decoration hint support to decklin's aewm, to make gkrellm work correctly; I'd also like to have borderless rxvts (for running log displays), so either I'd have to make rxvt use MWM hints, or I'd need to add name matching to aewm (the preferred option, because I know the aewm codebase rather better than I know rxvt).

I'm also juggling ideas for a DPS-like minimal window system---programs connect to the server and upload little bits of FORTH or Scheme code to be executed (so you can declare a "button" word, for example, and then everything will use it). I'll probably use SDL as a backend; it's quite pleasant to program for. The alternative approach would be to have a framebuffer in shared memory, so programs just need to write to it to draw their windows (you have a library which handles deciding which bits need to be redrawn).

Got a new 30G IBM hard disk, which I've put reiserfs on. Nice and quick. Hope reiserfs gets merged soon. Built 2.4.0-test6 last night; the only thing that got broken this time was umsdos, which I don't use anyway.

I'm also considering releasing webget, which is an offline web-browsing system that I've been using for the last couple of years; I have a Python CGI script which rewrites the downloaded pages so that following the links within them causes them to be added to the queue, and a threaded Python program that downloads the queued pages. I need to package it up and write some manuals, though, as it's rather scrappy at the moment.

Not much doing on xhippo at the moment; I released 2.6 and haven't yet had any bug reports, except for one guy who wanted playlist editing (which was the next thing I was going to work on, so that's all right).

jschauma, the reason you can't copy and paste from links is because it enables mouse support in the xterm it's running in. You need to hold down shift while selecting/pasting text, and then it'll work.

harvey, I've done an IRC bot in Python. You can grab the source here, or talk to it (aybot) in IRCnet #darknet.de.

Tried KDE 1.92 last night. I still don't like it. Back to aewm.

Did more stuff on xhippo last night. Fixed a few bugs reported in the last release (mostly caused by incorrect code cleanups), and finally got rid of the randomtab array in favour of a per-item songinfo structure. GTK lets you declare a destructor for a row, so this makes it easier to keep track of how many items there are in the list as well.

I haven't released it yet; I'd like to add some more stuff first. The cleanups will make it much easier to add playlist editing. I'm considering having a regexp engine for matching song extensions as well...

Well, I read Advogato often enough. I ought to start using the diary system, I suppose. (I wonder how well this is archived? There's a lot of information here that would be useful to a historian studying the Open Source/Free Software movement in a few years' time.)

Had a fairly productive weekend, software-wise. I made a new xhippo release, 2.3, fixing the bug I'd introduced in 2.2 and the problem with large playlists, which was actually quite interesting. The old xhippo used a GtkCList inside a GtkScrolledWindow, because that's what the example in the tutorial does. (More accurately, it's what the old GtkList example used to do, but the new GtkCList tutorial does it too.) This turns out to be the wrong thing to do, because GtkCList can handle adjustments itself; if you just create a scrollbar and get it to share an adjustment with the GtkCList, the CList scroll-to-entry method will work correctly and having more than 2000-odd entries won't cause the scrollbar to screw up (I'm guessing, in retrospect, that GtkScrolledWindow is limited to +/-32768 coordinates).

I managed to track down the problem I'd been having (windows inheriting other windows' borders) with decklin's aewm, and report it to him, which resulted in a quick fix; he also included my GtkMenu-based launcher and switch programs in the new release. Which was nice, because it means I won't have to patch them in in the future.

I was planning to sit down and learn a bit more Scheme on Sunday, but ended up having far too much else to do. I did spend a few minutes playing with guile-oops, which is pretty neat, and rather more trying (unsuccessfully) to get guile-gtk to compile, which wasn't. On the plus side, I acquired a large pile of Amiga User International (oh, yeah, I'm an ex-Amiga geek who collects magazines and old computers; I ought to stick that in my bio) and New Scientist magazines from a friend who was chucking them out.

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!