For a change from our normal blogging, have a cat with a box of cake mix on its head.

Have a kitty with a box of cake mix on its head

Someone has suggested a fix for the problem where Metacity doesn’t give up the selection on the compositor when you replace it. A solution should be coming soon.

I still need to write up our goals for 2.24. I think I know what they are now.

I’m putting the bugzilla attachments thing to one side for a while until we have more consensus about what to do with it.

A lot of good ideas on the Metacity testing post. Still thinking them over.

Fate of the attachment status patches

To recap, (henceforth bgo, of which I am nothing but an enthusiastic user) is running a rather heavily patched version of Bugzilla 2.x. One of the changes from 2.x is a system to let people set a patch’s status using a drop menu from any one of a number of options (including “obsolete”, “reviewed”, “rejected”, “committed”, “commit after freeze”, and so on), rather than simply the boolean “obsolete” or “not obsolete”.

In the meantime, Bugzilla 3.x has evolved a separate system of flags for greater control over a patch’s status, so that you can have a number of not-quite-boolean flags set on or off or maybe for each bug.

There is an idea, tracked as GNOME bug 433607, that bgo should switch to Bugzilla 3.x, which would be lovely and allow a lot more fun things such as XML querying of bugs, which is something I really want. Last year sometime in 433607 I said I would have a try at porting the bgo status system over to 3.x, and I’ve finally had time to do that over the last few days. Here’s the result.

However, I put this into Mozilla bug 431438 which was immediately marked as a duplicate of Mozilla bug 353690, which is saying that flags (in the 3.x sense) should be able to have arbitrary values. This won’t be released for another year until Bugzilla 4.x. So I suppose either we stick with 2.x, go to 3.x but apply the patch locally, go to 3.x and find a provable way to convert all existing statuses to 3.x flags, or wait for 4.x.

Lychee tea keeps me going!

Testing Metacity

I am aiming to build a set of unit and regression tests for Metacity for 2.24. The idea is to run Metacity in a sandbox X server (Xnest at first, and Xvfb when things have settled down) and run a test on it in a simple harness. This would be run automatically after every checkin, or every night, or both.

The usual way to do this would be using something like dogtail, but that’s not an option because Metacity’s menu and buttons are not accessible. (Should they be? That’s another question, but one I’d like an answer to.)

Perhaps the answer is to have a special window property called _METACITY_TEST or something which holds a ton of test information unless it’s compiled out (which it would be by default). We’d still need to find a way to simulate clicking certain buttons or whatever, unless maybe we could query the dimensions of a button and fake up a click message somehow.

I have a bunch of ideas about how to do this, but if anyone would like to hand me some clues, now’s a great time…

Metacity Journal

I was going to write a short essay here about the “given enough eyeballs” dictum, why and how code can grow old gracefully, and the excellent news that, thanks to Erwann Chenede, today’s Metacity release fixes the window-cascading bug that people have occasionally been complaining about, but I ended up writing it all in a Metacity Journal post, instead. I think you should all read the Metacity blog, of course.

Nor shall my sword

After I got out of work, we went to the hairdressers’. Rio decided that she wanted her hair cut short for the first time (like Kit Kittredge), and I think today I saw a strange change between little-girl Rio that was and teenage Rio to come, brief as it was. The hairdresser trimmed my hair and asked me about how it was working out that Rio had three parents living in the same house. Afterwards we went to eat somewhere and the server told me my hair was longer since last time; I think trimming the split ends causes an optical illusion of some kind. Rio and I played a maths game that she taught me, and I told her it would be ideal as a Python exercise. There was no time for a darts match tonight.

Several months ago I volunteered to help with the transition of GNOME Bugzilla towards 3.0, and I haven’t done much work on it since. However, I have come to the decision that potentially scriptable things which are unscriptable annoy me, and this particularly means websites which can only be interacted with by scraping. This has spurred me on to work on writing patches for upstream Bugzilla so we can get some kind of test version of 3.0 up for bgo. Things are going quite swimmingly well with this.

Alex was away on business, but he has returned. There was much rejoicing, for I missed him. Fin has a job interview tomorrow; think good thoughts for her.

Thank you to everyone who sent me suggestions and patches for blt; it’s been inspiring to get so much feedback. I have made a launchpad project for it. New version out soon-ish.

I have a big lazyweb/discussion post about metacity testing frameworks coming up, too, but that’s to come.

BLT – bash loves twitter

About a year ago, I wrote a simple client for called blt. The idea was to make a twitter version of biff(1), so you’d get new tweets printed before your prompt after pressing return. Making this fast was a challenge, because twitter often took tens of seconds in those days to respond to queries, and I didn’t want to have a daemon hanging around the whole time to deliver messages.

I wrote this as a challenge to myself, and put it on Google Code because that was the best place I knew to get version control without the bother of running it myself (these days I’d probably have used launchpad), and mostly forgot about it.

The other day, however, I thought of typing its name into Google, and discovered that people actually use it, and that people were asking questions about its workings and calling it “fantastic” and “freaking awesome”, and also reviewing it and saying it’s not much good yet and things. I was surprised. So I set about putting a few hours into cleaning it up a bit.

I used some of the negative comments in the last review I linked as a guide as to what to fix:

It’s a pain to install.
Not any longer, I hope, since it’s now in CPAN.
It requires weird dependencies.
See above; also I’ve removed dependencies on libxml since (again to my surprise) not everyone seems to have it installed; I thought it’d be more widely used.

It was good to write some serious Perl again. Thanks to the folks on magnet #perl who helped me with packaging questions.

So, it’s a little closer to stable, and while there are still some bugs (I think it loses tweets sometimes; it doesn’t deal with direct messages very well; the library API is ad hoc and frankly ugly) it shouldn’t be too hard to install to test and play with if you have the cpan program installed, which you should if you have perl installed:

cpan App::BLT

If you run this as root, you’ll get /usr/local/bin/blt installed; otherwise ~/perl/bin/blt, so I hope you have ~/perl/bin in your path. “man blt” should be helpful, but otherwise come and find me or comment here and ask questions. Follow BLT’s own twitter for further updates.

Photo: BLT on toast at Chez Moi, by Smokey Combs, cc-by-nd.

Carmen weekend

Carmen came over to spend last weekend with us, and it was a wonderfully happy time. She turned up (in Beatrice the car) on Friday after dinner, just as the rain was beginning and the dark had fallen. Rio was overjoyed to see her, and excited to see her reading pile extended with some books that she was giving us to lighten the load when she moves across the country; she got to bed rather later than normal. Fin and Carmen and I went out to the shops for crisps and so on, and the thunder was huge and magnificent and the smell of the rain surrounded us; we splashed around and through the puddles and got pretty wet. When we were safely home and watching the lightning, the adults stayed up pretty late too; we didn’t get to bed until three what with one thing and another.

Saturday morning was a drenched cleansed world. We went into Philly so Carmen could get her first tattoo, at No Ka Oi; the tattoo is a compass rose, on her back, and is beautiful. It took about an hour and a half and she bore the pain with admirable fortitude. (She hasn’t posted pictures, or I’d link to them.)

UPDATE: She has posted a picture; here it is.

Rio wasn’t allowed in the shop, so she and I went to the Shoe and she bought herself a children’s book, counting out the quarters. When we came back, Fin took Rio and brought Alex and me lemon cakes while we waited. After that we went back to the Shoe and bought a badge and a book and a shirt saying “Nobody knows I fuck women”, and then went to my favourite steak shop, Jim’s Steaks on South Street, for lunch. The parking meter was showing a DHCP error (no, really) and took too much of our money away. When we got home, Carmen took some photos of me, which I might post later.

Sunday mostly involved eating grilled cheese, talking about website design and infrastructure, hugging lots, and saying goodbye. We will probably see her again before she leaves, but it was a sad farewell nonetheless.

I could tell you what I’ve been fixing in Metacity here, but at the moment I don’t feel like writing it up. Maybe later.

“I felt like I could run forever, like I could smell the wind and feel the grass under my feet, and just run forever.”

Rio and I have been watching Dragonfire. She loved it.

Last weekend we went to Philly with Amy and John. After a bit of wandering, the others went off elsewhere but Rio and I ended up at the Shoe where they were just about to start showing a film (apparently they show them every Saturday night); Rio ignored the film, but accepted a cup of popcorn, and went off to the children’s section to read. She was very taken with the idea of zines and decided to try making her own. Later we all met up again and walked to the Passage to India, which has very good food for about $10 a head.

I have been playing with Carmen’s Next Great Adventure website. It now has a much nicer layout and the maps are properly designed, and it has the basic blog structure. I still need to make it so that people can put a “Where’s Carmen?” badge on their own sites. I’m really excited about watching this adventure unfold, and I know a lot of other people are too; if you have ideas about how we can get still more people watching and cheering her on on this journey, let us know.

Oh, I almost forgot to tell you: she’s selling a lot of her stuff. If you live near DC and you like nifty second-hand books, look into it.

A friendly person has actually asked me whether I can spend a few hours talking him through fixing Metacity bugs! I am delighted. I also have a long list of focus bugs to track down, starting with the slightly recondite GNOME bug 158626 (about ddd of all programs), and I have to talk to the gdm folks (and the downstream folks, too) about merging fusa with the similar gdm applet which is a partial fork of it. I also have a blog post on this journal coming up about themes.