Older blog entries for azz (starting at number 1)

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!