Apologies for disappearing

Looks like I haven’t blogged since my plane troubles to Barcelona (btw, the trip back went pretty smoothly, which was a pleasant change). I probably need to apologize to lots of people, as I’ve been swamped and have been completely unable to respond to lots of emails. And lots of patches are sadly rotting right now without my reviews. Sad thing is that we have tons of great metacity patches right now from lots of contributors. Bjorn has several that have gone for like a month without review. 🙁 I suck. Luckily, though, Havoc has jumped on some of the patches and reviewed them (Wahoo!); I think mainly the ones from Thomas but I could be forgetting.

Between two conferences preventing me from getting work done[1] and the extra huge amounts of work to prepare for both, compounding the difficulty of keeping up by giving me lots of catch-up work, I felt like I just haven’t been as active as at other times. Sorry, everyone. release-team tasks is about all I’ve been able to keep up with right now. We’ll see if I’m able to actually catch up after getting back from this conference, though it’s not looking optimistic right now.

[1] And yes, GUADEC definitely was not conducive to getting work done due to lack of air-conditioning, wireless problems, lack of ethernet ports, and, um, lack of air-conditioning. Oh, and my sucky laptop that hard freezes multiple times per hour — though that isn’t GUADEC’s fault.

Continental airlines, me, and GUADEC

I know I should probably be positive, but I’ve never taken much of a liking to travelling (to put it mildly), and yesterday and today aren’t helping…

I had been trying to wake up earlier this week trying to naturally adjust myself to European time. I left to the airport yesterday at 7:30 am and was expecting to have arrived in Barcelona at 9:15 am today (Barcelona time) — about 8 hours ago. Continental airlines wasn’t very helpful with those plans, and seems to have forced me into Hawaiian time or something to boot. Between an unexpected layover in Detroit where we weren’t allowed to deplane (because no gates were available for the plane), a huge delay in my second flight from Cleveland to Newark (that was even worse than the first flight’s delay through Detroit and back to Cleveland) and several hours waiting in their customer service lines (5 different lines at two different airports, the last one requiring two hours alone and at which they took about 10-20 times longer trying to fix my schedule than they did anyone else’s), all that travel time that should have gotten me to Barcelona merely got me into a hotel on the east coast of the U.S. (specifically, Newark). I got to a hotel (after three tries despite Continental supposedly having found me a space at a first one) at about 2:30 a.m. this morning (within an hour of when my flight to Barcelona would be landing), and since I was in some line or another every second I wasn’t on a plane yesterday trying to figure out how to get to Barcelona, I had no meals other than a quick breakfast yesterday. It hasn’t been very fun hearing “everything is full” with details from Northwest, Delta, and Continental out of a dozen different airports (why am I the one that gets the short end of the stick when I had a confirmed flight months ago that I didn’t miss through any fault of mine?) Yesterday they confirmed me on a flight to London tonight and they think they can get me from London to Barcelona on a different airline, Iberia, but Iberia apparently was closed and not-answering-calls-from-Continental late last night so I have to check today to find out for sure whether this will work or they have to give me a different set of flight plans. 🙁

Good thing GUADEC is longer this year; I’m afraid that if it were only a couple of days, I’d be missing a huge percentage of the conference (if not the whole thing) due to the lovely Continental airlines. I’ll see you all in GUADEC whenever I finally make it.

simpler-dup-finder

I’ve been experimenting with a method to make it easier to check if a bug has already been filed. Not perfect by any means, but appears to be good enough to be useful. Definitely seems a lot better than showing users the most frequently duplicated bugs (which are likely to be totally unrelated) and just asking if their bug is a dupe of one of those. That’s what we currently do with bug-buddy, though to be fair, that was a big improvement over trying to use the bug-buddy keyword for the same purpose.

Biggest problem currently is that it can list the same bug multiple times (once per comment that appears to be related). My SQL skills really suck, so I haven’t been able to find a reasonable fix for it. Using ‘distinct’ on the bug_id appears to have no effect unless I also group by bug_id — but grouping by bug_id slows the speed of the query down dramatically. So for now, the same bug can be listed several times.

It can also be used in a format similar to the current simple-dup-finder, and works on both bugs with a stacktrace and those without. A few more details are here.

In other news, Vincent stopped letting me shove the work of coming up with an announcement email off on him. That’s unfortunate, as it means everyone has to suffer with a much more lame announcement (vuntz, J5, kmaraas, jdub, and federico all send out far more creative announcements than I do). I kind of liked the format we had going — take (possibly uneven) turns making releases and if it was my turn then get Vincent to do the announcement part. But, Vincent left early yesterday, so I did the only thing I could do — I copied what I could from Vincent’s last stable release announcement and used it.

Metacity 2.15.3

Metacity 2.15.3 has been released (yesterday, I’m a bit late on the announcement), and will appear as part of the GNOME[1] 2.15.2 release scheduled for tomorrow. Not as many changes as other releases, but still a couple nice improvements:

  • various code cleanups (Søren)
  • prevent long titles from “sticking” in the tasklist (Elijah) [#330671]
  • handle sync counter notifications in the compositor (Søren)
  • notes/documentation updates (Elijah)
  • plug a small leak (Paolo Borelli)
  • remove a lot of dead code obsoleted by the new edge-resistance stuff (Björn) [#341561]
  • prevent a crash when changing resolution (jylefort FreeBSD org) [#340847]
  • revert an accessibility module loading workaround from GNOME 2.6 (since it has long since been fixed for us in gtk+) (Elijah) [#123372]

[1] Yeah, yeah, I know. Jeff emailed me off list after the recent (what I thought was just humorous) thread and I discovered that spelling, for whatever reason, was really important to him. While I don’t like this version as much and think it’s inevitable that it will change to non-caps, I don’t care that much. Sure, I was somewhat persistent, but it was all in good fun. I really don’t see why anyone else would care that much; it just doesn’t make sense to me how it could be important. But, it apparently is to some. So, if it matters that much to him, I can use this spelling. *shrug*

Odds and ends

  • It’s pretty amazing to watch Vincent work; he does so much. Recently, he’s been reviewing libwnck patches like mad. I was supposed to help with some of those, but never seemed to get around to it. It makes me feel much better that Vincent has taken care of it so that people have responses now. 🙂
  • I didn’t realize that when I had posted the last Metacity Goals that I had changed the build system such that my instructions for doing a minimal cvs testing environment of metacity wouldn’t work anymore. Ooops. Fixed by adding the note about install gnome-common in the HACKING file.
  • Made some progress on fixing DND bugs again. They’re in a kind-of-works state right now, but unfortunately I’m getting swamped again and haven’t had time to look at it for a few days… 🙁

Go fejj!

I’m a couple days late blogging about it, but no less excited. Jeff nuked the longstanding can’t-access-your-inbox bug in Evolution without the need for a kludgy workaround to be performed on your IMAP server. (In slightly more detail, the bug was that Evolution, when using IMAP, wouldn’t show the INBOX if you need to override the namespace for your mail folders.)

Metacity Goals #2

So, the first round of Metacity
Goals
seemed to be pretty successful. Dan Sanders fixed bug 335076 (Maximizing and unmaximizing windows doesn’t raise them) and bug
334899
(close-window verification dialog not shown when main window is minimized), while Thomas Andersen fixed bug 335524 (need to warn when apps set WM_TRANSIENT_FOR to an invalid window). Two other people found good starting bugs on their own; Brain Pepple added support for
po/LINGUAS
from Gnome Goal #2
and Andy Morum fixed bug 336605 (needs to build with –disable-xsync). And I should mention that while new developers fix these tasks, Björn and Thomas keep plugging away fixing issues all over the map. And Soeren has been very prolific in providing a near constant stream of improvements while hacking on the compositor, but has kind of gotten the shaft limelight-wise, being co-maintainer and all.

So, here’s a new round of Metacity Goals. These are simple coding
tasks for those wanting to get started in Gnome. As before, the first step is to build a CVS version of Metacity — this is much easier than you might expect because you do not need to build all of Gnome (or even any other modules) and you don’t have to actually install it. Just follow the few steps in the “Minimal Building/Testing Environment” section of Metacity’s HACKING
file to do this. The second step is to pick a bug, and I have a few
suggestions….

First, the bugs that are still left from last time:

  • Bug
    335351
    — Support sibling from restacking ConfigureRequests

    This is just an unimplemented FIXME, basically. In the bug, I
    point out a section of code having stuff very similar to what’s
    needed to implement this.

  • Bug
    338361
    — Focus with maximize/unmaximize keyboard commands
    and sloppy/mouse focus

    Has good steps to duplicate, and I provided directions showing
    where a similar bug has been fixed elsewhere to help you fix
    this one.

Plus a round of new bugs:

  • Bug
    126497
    — Can’t revert or undo either drags or resizes with
    the escape key

    There’s a couple steps to fixing this, but I outline them in
    the bug with pointers and all of them are pretty short.

  • Bug
    323820
    — Moving maximized windows from one xinerama to
    another broken

    Should just be a few lines of code, and I even point out where
    to look. Hurry, get it before someone else!

  • Bug
    322840
    — Missing synthetic configure notify makes windows
    walk up the screen

    This one probably doesn’t fit in this list, but I can’t resist
    throwing it in. It will probably be harder than the others,
    because I’m first asking that someone write a testcase
    displaying the bug (for both testing and patch verification
    purposes).

    If you can get that testcase written though, the patch to fix
    the bug in metacity is almost certainly a one liner (just
    making sure send_configure_notify() gets called when it needs
    to be). I’m even fairly sure which function needs to be
    modified (though it’s not exactly a simple function), so the
    big thing really is just getting a nice simple testcase.

  • Bug
    333328
    — constraints borkage with titlebar

    People can lose the titlebars of their windows, having them go
    off the screen. (oops! One more bug from the rewrite of
    constraints.c for Gnome 2.14…) Fixing this means writing a
    new constraint in constraints.c; I’ve outline all the necessary
    steps in the bug.

Those interested in getting started in Gnome working on some other
module, may want to have a look at the Gnome Goals, bugs in
bugzilla marked as being suitable
projects for new developers
, and other general information on the
stupidly-named GnomeLove
page containing information to help you get started.

Metacity 2.15.0

Metacity 2.15.0 has hit the streets as part of the new Gnome 2.15 development series. I’m particularly pleased with this release, because we have contributions from nearly a dozen different people, and the only thing I did was one measly trivial fix. 🙂

  • An endless array of compositor updates, not all of which are
    well explained in the ChangeLog. 😉 Includes an ability to
    enable and disable the compositor at runtime, fixed up wobbling
    effect and new explosion effect, special magnification handling,
    different opacity for different window types like menus, a way of
    scaling windows, handling of foreign displays, improved handling
    of window moving/resizing, various code restructuring, special
    runtime checks for correct extensions and other compositors, lots
    of bug fixes, and possibly other stuff I’m missing or not
    understanding (Søren)
  • Removed “move to another workspace” menu when there are exactly
    two workspaces (Thomas) [#151183]
  • fix type for compositing_manager schema entry (Elijah)
    [#335901]
  • Port more properties to our async system for code cleanliness
    and speed improvements (Havoc, Thomas) [#309567]
  • Lots of code cleanup, even more code cleanup, wow our code was
    messy (Björn) [#335177, #337507, #336890, #338359]
  • Abstract out the functions for setting/unsetting demands
    attention hint and avoid doing it when the window isn’t obscured
    (Thomas) [#305882]
  • Change strings to make them more readable, and more
    translatable (Gora Mohanty) [#335720]
  • Reduce compiling warnings — add a number of casts and change
    signedness on a number of variables (Björn) [#336032]
  • Fixed broken links in README (Alejandro Andres) [#333303]
  • Add a tabbing function, bound to alt-f6 by default, to cycle
    through the windows of the current application (Thomas)
    [#94682]
  • Fix the build with –disable-xsync (Andy Morum) [#336605]
  • Raise windows on maximize/unmaximize (Dan Sanders)
    [#335076]
  • Don’t have confirmation windows make applications appear to be
    locked when closing via the window list (Dan Sanders)
    [#334899]
  • Allow more than one keybinding for any action, by checking
    a gconf key of the form <foo>_list where <foo> is the gconf
    key giving the first/normal keybinding for that action. (Thomas)
    [#164831]
  • warn and ignore if transient_for is set to a non-top-level
    window (Thomas Andersen) [#335524]
  • Use po/LINGUAS for listing supported languages (Brian Pepple)
    [#337951]
  • Nearly 3 dozen language translation updates

Enlightening mankind about the correct spelling of Gnome

Alan Horkan had some very
enlightening words worth repeating for all of you out there who misspell ‘Gnome’:

We know you like Gnome but there is no need to shout.

Okay if it is an acronym then the only correct way to write it is G.N.O.M.E. and then it looks strangely reminiscent of a James Bond villian. If that is too difficult for you to type then by all means type “Gnome” and stop inflicting ALL CAPS on people.

R.A.D.A.R. and L.A.S.E.R. stopped being treated as acronyms and I look forward to the time when Gnome is mature and popular enough to do the same.

GUADEC ‘n stuff

Finally got registered for GUADEC yesterday, and got the flight plans and lodging taken care of (just in time, too). A big thanks to Quim for the huge amount of work he’s putting into organizing GUADEC…and for showing superhuman patience with me and my dumb questions (especially the repeated ones). :-/ Deborah usually doesn’t like me being gone for very long, so I was wondering what she was going to say when I told her how it was, uh, longer than expected. In her fairly typical style, though, she brushed off her preferences and instead encouraged me about the whole thing. She’s so cool. 🙂

I also got my passport application done today, and was a bit surprised by its cost; I guess it’ll probably have to count as much of my birthday present (several months early) this year or something. I also didn’t realize that the birth certificate had to become part of the application instead of just being shown to the relevant people. Annoying, since I only had that one copy. Do they send it back after processing the application, or do I have to try to get another one from somewhere? I guess I should have asked when I did the application, but between moving around for pictures and other interruptions during the process (mainly from other people who had questions while filling out the forms), I forgot about it at the time. *sigh*