Older blog entries for azz (starting at number 4)

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!