My walk was the walk of a human child, but my heart was a tree.

"Whenever you see an oak-tree felled, swear now you will plant two."

3/2/08 11:38 pm - And we'll all go riding on a rainbow

I had been feeling vaguely ill and sore-throaty most of the week, and on Friday when I woke up and the back of my nose was painful enough that I couldn't talk easily, I mailed in to say I was feeling sick. Then I decided I was well enough to come in as long as I stayed away from people and didn't talk much, so I sent a second mail saying I was coming after all. It wasn't so bad.

On Saturday, Amy and John came over and we went to the Frida Kahlo exhibition at the Art Museum. I will write about it, but not now, because I am too sleepy.

On Sunday we were going to go to church but woke up too late. Instead, I stayed home and fixed:

Do note that the Metacity blog is often more interesting than mine is. I think there should be a planet which mixes people and projects, but I don't know what it would be called.

I have a bunch of automated tests for Metacity, many in Python, some in C. I want to put them together so that we can run them and have it report "5 out of 20 failed" or something, the same way Test::More and friends do in perl. Anyone have any recommendations for off-the-shelf ways of doing this before I write my own, which I'm happy to do?

12/29/07 12:28 am - Nargery: How to write an Epiphany extension with both hands tied behind your back

Disclaimer: I am nothing to do with the Epiphany project.
Disclaimer: Do not actually tie both hands behind your back without supervision.

Epiphany is the official browser of the GNOME project. Today I want to ramble at you about how easy it is to write extensions for it, because it is crazy easy. I started writing this about two person-hours ago and now it's working, and the hardest part was getting the GTK stuff to cooperate.

So let's write an extension. I fancy the idea of colouring the tabs according to which domain you're looking at. There's a nonfree extension to do this in Firefox, so let's build our own free one. (Disclaimer: It will be pretty crap because I'm throwing it together in a few hours.)

First off, you need to declare the extension, which you do in a file ending with .ephy-extension which you put in a directory called ~/.gnome2/epiphany/extensions (it's not rocket science, folks). Let's call it colour-tabs.ephy-extension (because I'm British, okay)? It looks like this:
[Epiphany Extension]
Name=Colour tabs
Description=I like colour tabs
Version=0
URL=http://www.gnome.org/projects/epiphany/extensions.html

[Loader]
Type=python
Module=colour-tabs
I would go through this line by line, but I think you are clever enough that I don't need to. The last line, though, is the name of a Python file. Create this in the same directory, as colour-tabs.py. Now, you can add functions which get called, according to their names, when various things happen in the browser. What we want to do is to be called when tabs are created ("attach_tab") and removed ("detach_tab"):
def attach_tab(window, tab):
   embed = tab.get_embed()
   tab._colour_tab_handler = embed.connect("net_stop", _colour_the_tab, tab)
   # we don't call through like this when things are loaded
   # and we should

def detach_tab(window, tab):
   if '_colour_tab_handler' in tab:
      tab.get_embed().disconnect(tab._colour_tab_handler)
      del tab._colour_tab_handler
"embed" in attach_tab is the actual web page rendering engine in that tab; we are asking it to do something when an event occurs. In this case the event is "net_stop", i.e. when the page has loaded (because let's assume we can't know what colour to colour the tab before the page has loaded). When that happens, we call a function to deal with the situation, which I'll call _colour_the_tab because that's what it does.

All detach_tab has to do, then, is look to see whether we are already waiting on this and tell it not to bother.

I added the extra comment because it would be nice to call _colour_the_tab directly if a tab is attached when a page is already loaded (this does happen occasionally, but in situations which are too complicated to go into in such a simple example).

So what do we do when the page HAS loaded? Well, that's _colour_the_tab's job, as I said. (Conventionally, you add a leading underscore in case it clashes with a name that Epiphany might be calling.) _colour_the_tab has three jobs:

1) the trivial job of taking the URL and finding the domain; in real life it would be better if people could specify particular colours for particular domains, etc.
2) the job of turning the domain into a colour (we just use the last six hex digits of the md5 here, which is a bad idea because it could be black!)
3) the rather fiddly job of changing the background colour of the label (this is difficult in GTK for boring reasons)

I won't bother you with any more details here, but here's a place you can get the code I wrote above, and I thought you might like a screenshot:

Read more... )

Thanks to the folks on #pygtk who helped me figure out how to set the background colour of a GtkLabel.

Update: Oh, something I forgot to mention: If you run Ephy from a terminal, and your extension uses "print", it will go to that terminal. This makes debugging a snap compared to Firefox. Also, you almost never have to restart Epiphany. Just drop your extension in the extensions directory, turn it on from the extensions dialogue, and off you go. If you change the extension, just turn the extension off and on again and it will be reloaded. It is deeply awesome.
Tags: ,

11/15/07 12:15 pm - Last night was the first night Rio asked to be excused from the dinner table so she could go code

17:07 < marnanel> my daughter was complaining last night that Python by default cannot subtract strings
17:07 < marnanel> she says that if she can do 'mail'+'box' she ought to be able to do 'mailbox'-'box'
17:07 < owen> marnanel: very logical
17:07 < marnanel> well, indeed
17:08 < marnanel> I told her that it was actually possible to make Python do that if she wanted, if she learned a bit more about writing functions
17:08 < Trelane> as logical as "mail"+"box"
17:08 < Tybstar> i'm probably going to be working for marnanel's daughter in 20 years

[Tybstar provides this solution]

11/8/07 09:19 pm - Who's Justus, and what's a window manager?

This post was discussed for fifteen minutes or so on LugRadio series 5 episode 5. There is a forum page to discuss the issue over there.
Part of this is based on a response I wrote to Evan Martin's post about upgrading to Gutsy. Evan said that there was a lot of what jwz has called the "Cascade of Attention-Deficit Teenagers" model, in that people had fixed things that were fun to fix and added new features while ignoring routine fixes that needed work. Part of what he touched on involved window managers, but not particularly at a level I have to deal with; nevertheless, I thought I should respond there.

See, I work on a window manager. Sometimes people ask me what I do in GNOME, and I say "I work on the window manager," and then they say, "What's a window manager?" And then I know I've succeeded. I don't want to work on one of those window managers where it's right in your face taking up mindspace with million-dollar special effects. I want to work on a window manager which gets out of your way and gives you more time to live your life. If the window manager is noticable, the window manager has failed.

There is a bunch of sysadmins who administer various Anglican/Episcopalian things worldwide, including the anglican.org domain, and they are known as the Society of Archbishop Justus. St Justus of Canterbury (died 627) was an extremely minor archbishop in the big scheme of things, but he kept the church running in his day; similarly, sysadmins are doing their job best when nobody knows who they are. And it's a little like that with the Board elections currently; as Federico said, "If you are a rock star hacker... you will not be a good Board member." (and no, this isn't hustings, I don't have any spare time, and I am bad at persuading people to vote for anyone, let alone myself; but if you're planning to stand, think on that.)

Now in the end, it turned out not to be a Metacity problem at all. But for a while I was a bit put out by the idea that Metacity had succumbed to jwz's CADT model, because I don't think I've written much new code at all in the last year; all the spare time I've had (which has been squeezed a little in the last few months) has gone on bug fixing and patch review. But this is the thing that we really need: we don't need rock stars. You won't get your name in lights and your own Wikipedia page saying "Jane Q. Hacker is a rock star programmer", by fixing a ton of minor bugs and making the users happy, but really, in the final analysis, that's not the important thing. The important thing is to make the users happy and (as much as possible) not to let them know you're there. After all, one day you won't be.

So, anyway, Metacity still has a largish bug queue. Some things like patch review need a knowledge of the overall shape of the code, but some can be approached by people with various levels of experience. If anyone reading this has a little spare time, some simple programming experience, and is not particularly hungry to win riches, glory, and the Turing Award just this year, come and find me and I can probably find you some way to help, or take you to someone who can; you'll be making the users happy.
Tags: ,

9/20/07 10:34 pm - when you hurt when you suffer i'm your angel undercover

Spare room decorating - part 1We have been tidying the spare room. Actually, no: when I say "we", I mean mostly Fin, and when I say "tidying", I mean taking out all the random things which had appeared there while nobody had gone into it in so many years, stripping the wallpaper, filling, sanding, painting and putting a new bed in there. You could see what it was going to look like much better before we started on painting the walls. I have done a little bit here and there, but most of the work has been done by [info]firinel, who has been amazing about getting lots done in little time with a small budget, and I am very impressed. I'll post more photos later when you can see the overall plan. This is all because [info]ghoti is coming to visit us, but I hope some more of you I know in real life might come over another time too.

This means that the order of my life for the next few weeks will be as follows, although things might overlap (I suppose I really ought to publish my rememberthemilk agenda):

  1. Get the spare room, and as much as possible of the rest of the house, ready for [info]ghoti and armada. ~ 1 week
  2. Get a test version of the LJ code so I can talk to the journalfen, insanejournal, deadjournal, and so on admins about Joule talking to their sites. This is mostly done; the main BML redirects back to itself for no obvious reason. I need to spend an evening stepping through it and finding out why. ~ 2 days
  3. Get bugzilla 3.0 working on my ancient laptop (it mostly does already) and then finish retrofitting the attachment status patches for the 3.0 upgrade. ~ a few weeks
  4. Re-check in the code I reverted earlier because of freeze. ~ less than a day
  5. Finish the rememberthemilk CPAN module. ~ few days.

And keep replying to new metacity and fusa bugs, and trying to keep up with patch review, and of course being a parent and a partner and keeping things going at work. So if any of you need to find me I'll be getting on with things.

Poll #1058721 A traditional poll which hadn't had an airing for a while
Open to: All, detailed results viewable to: None, participants: 4

Tell me something.

Ask me something.

Rio and I are still reading The BFG. It is rather happy.

The video of the mayor of San Diego's press conference about changing his mind about same-sex marriage was really rather touching; I've never seen a politician that overcome by emotion except after a major disaster. (Transcript.) Joe had some interesting questions to ask.

9/16/07 09:09 am - [nargery] reattach

Nargery: Rudd-O's idea in Behdad's post about setting the cwd of a running process made me think that the same principle could usefully be used elsewhere. In particular, I have screen sessions which run for months; the connection to the server doesn't stay up that long, and so by the end of it DISPLAY is usually out of date, which means I'd either have to keep it updated manually in each of (perhaps a dozen) screens, or run X programs outside screen, which is icky. A similar thing happens with ssh-agent, when I'm using screen on localhost rather than remotely: the original agent is often weeks dead by the time I reattach, because I've restarted X in the meantime.

So I made this script, offered in case it's useful without warranty. Add or remove variables from @FIXABLE_VARIABLES as you have need. Feedback welcome.
Tags:

9/14/07 09:40 am - nargery: Emacs and changelogs

I'm learning Emacs's source code control integration. Someone give me a clue here; the manuals aren't being very helpful. So, I update a file and I hit C-x 4 a, and it takes me to ChangeLog and fills in all the details so I can add a description.

1. What now? Isn't there a keypress where I can check in all the modified files, including ChangeLog, using the comment I just added?

2. Does C-x 4 a go through and diff all the files in the directory, or just the current buffer? If just the current buffer, is there a way of doing all of them?

Thanks, lazyweb.

[ETA: Some projects just require log comments in the checkin comment for each file. That's not the way most GNOME projects work: you need to add the comment to the file ChangeLog, and check in both the ChangeLog AND the changed file(s) simultaneously using the same comment. I'm sure I remember Emacs supporting this.)
Tags:

9/3/07 09:13 pm - It's Kylie's body but the head is you

Today has not been as productive as yesterday, but it was still pretty good. We went to have a family photo taken, and we have the prints now but apparently the electronic versions take three days. Go figure. Anyway, I will post them here and if anyone who knows us wants a wallet one I will see what I can do.

Nargery: I have a working ssh key again. Thanks, folks. I Will Use It For Good. Actually, Remember the Milk has been quite amazingly useful in organising my life recently. I may make my GNOME task list public so that people can see what I'm working on-- I have a page on lgo for that, but it's harder to keep a priority list organised properly on a wiki. I've made a start on a CPAN module, WebServices::RememberTheMilk, to access their API. If it goes on being this useful for another week or so I'll seriously consider sending them their $25.

Nargery: Apache is down on the machine which serves marnanel.org and some other domains. I don't have permissions to restart it and the sysadmin is unusually incommunicado today (which is surprising, but it IS a public holiday, and it's not like I'm a paying customer). It will be back ASAP. Sorry for those of you missing your scheduled daily dose of drama. However, in rather nicer news, hachi has shown me this, which may be integrated soon. Update: Back up now. Thanks, plexq.

Chumbawamba, in their new folky incarnation, have written a new song called Add Me, about the people you meet on MySpace. You can listen to it here. You probably should.

This is a happy page.

And I always steal [info]dimethirwen's meme ideas, it seems: "Tell me a secret. It can be dirty, or funny, or awkward, or beautiful, or whatever you want it to be. Just leave it here and get it off your chest (or, I suppose, wherever else you've been keeping it). Comments screened." Let me know if they should be unscreened.

8/11/07 11:19 pm - Weird problems in programming

Joule has a message of the day (MOTD). At the moment, it says "To keep up with Joule news and discussion, join the [info]marnanel_joule community." So we need a file to keep this text in, and we include it, and that's the whole problem solved, right?

You'd think.

That works fine for the HTML output. But these days Joule isn't entirely (or even mostly, actually) about HTML; at least half the users read it most of the time via RSS and nothing else. Now, if I include the MOTD in the RSS entries, that will display them fine, but there's a problem: if I ever change the MOTD, all the entries in the past will change, and that will make LJ think the whole thing has changed and re-spew them all onto people's friends pages again.

So I can't ever change the MOTD with the current codebase (though I will solve this problem in the forthcoming version), and that's a nuisance. You'd think this would be an easy problem to solve, but it seems not.

(Obvious solution: keep a list of all previous MOTDs ever by date and use that to generate the RSS MOTDs. A relational DB would be a fine place for such a list, but other solutions work too. This works, but it's very clunky compared to just having a text file. It's also possible that if the IDs of the entries in the RSS were actual URLs (as is the case for most RSS feeds, but it's not required by the spec, and Joule ones don't do it), LJ wouldn't mind if the text changed, but I don't know and I'd have to try it out. Note that as far as I can see it's actually breaking the spec for LJ to depend on the text of an entry to see whether it's new, not that I've raised a bug. Joule RSS entries will be permalinks in the next version because some applications require it, notably firefox. No idea why. Again, I haven't raised a bug.)

Strange how complicated a simple-looking thing can be.

(ETA: Might I add how amusing it is that the page which the word "permalink" links to in the RSS 2.0 spec 404s?)
Tags: ,

8/9/07 08:32 am - productive

The last two days have been some of my most productive days so far at work, although that goes hand in hand with their being rather exhausting.

I would write about metacity but I'm not really feeling up to it at the moment. There is compositing goodness to write about. I am talking to someone about this at some point and will let you know what happens.

Today is my mother's birthday. Happy birthday, Liz! I phoned my parents to say happy birthday and to ask about what presents to send. I also asked my dad about my scarf, which I'd left behind because I emigrated in summer. (I didn't know I wasn't coming back, and left with only a single backpack of clothes and books. I had to phone my dad and ask him to clear out my room when it became clear I was staying here, so that the room could be re-let. I haven't been back since.) He said, "I don't remember what happened to it; it might be in the loft. A lot of things are. I'll have a look, and if it isn't, I'll get you a new one for Christmas. The thing I remember for sure that's in the loft is your bass and amp, because it was such a difficulty getting them up there. But some other things got thrown away or sent to the charity shop." I said, "What about my gown?" He said, "I wouldn't have thrown away a gown!" So it looks like I might have a scarf for Christmas, and I might have to wait until I'm back in England to be able to play bass again. :)

[info]hitchhiker may be pleased to know that there's a Wikipedia filk section, though it's not all very good.

I have known people in the past who wanted to be coders but never wrote any code. I found it hard to understand this because I write code constantly: if it's not for GNOME or work I'm working on little things like blt. I keep managing to convince myself that I'm like this about fiction: I used to write fiction all the time, and now I don't do it all the time or at all, and friends of mine who do do do it all the time, and so I have to realise I'll never be a writer. Then I find myself thinking about the motivation of $random_character for what zie does in chapter twelve of the next novel which will never be written. It's as hard to drop as unrequited love.

Planning for a major refactor of joule is underway, though the largest changes soon shouldn't be visible at all to end users (and if they are, something went wrong :) ). The refactor will allow me to add nifty new features and so on more easily, though. I am estimating that it will be released not this weekend but next. (I try to make joule releases on Saturdays, because our busiest day is Monday.) Patrick Dlogan's Python json emitter may have saved my bacon here.

It is International Blog Against Racism Week. This paragraph wouldn't appear at all except that I thought you might like to blog about it yourselves. I myself have nothing to say; not only do I have nothing worth saying on the matter, but it would be an expression of privilege to waste your time saying it. I am listening, however.

8/7/07 07:40 am - Of course, you always meet angels when you're naked in a supermarket

New version of metacity released (2.19.55). The most obvious change to an end user is that "close" appears at the bottom of a window's menu, like on certain other OSs I could mention. The new release does not yet include the forthcoming ability to tab through all windows rather than just the ones on the current workspace, which I am currently proposing new hints about. Also not in this version is an auto-enabled compositor: I was going to turn it on by default, but I thought that should probably have a minor point release of its own.

[info]dimethirwen came up for a couple of days this weekend and we dyed her hair (and there are photos!) and went exploring Philly. It was fun, and good to see her. Yay.

The AFA, whose mailing list I am on for shits and giggles, has sent out a bulletin which says no major producer of pornography has been prosecuted in fifteen years, but "there were a couple of prosecutions of small, mom and pop type pornographers", which last is a really rather disturbing phrase.

I recorded myself reading this piece last night using LJ's phone-post system, because I liked it so much and I enjoy reading things out loud, but I didn't post it publicly; the recording quality wasn't very good over the phone, and I was a bit worried about posting copyrighted material, though it hasn't stopped Language Log or Snopes from quoting it in full. I still have the mp3 lying around, though. Maybe I should have made a youtube clip instead.

Weird Al splices himself into the video for Alanis's Ironic.

Right, down to work.

7/26/07 06:55 am - blt and blogging

Good morning, everyone. Isn't coffee a wonderful thing?

1. I've been thinking a bit about the way I use LiveJournal. There are really three different things I do with it:

1) LiveJournal-specific stuff: communities, friendsonly posts (which are now the majority of my posts) and commenting in other people's posts, often friendslocked ones. This is something I'm reasonably happy with and plan to keep using indefinitely. Indeed, many of my friendsonly posts are things I'd rather make public; they're only friendsonly because otherwise they'd get mixed up with...

2) "days": making public posts about my day and the work I've been doing. I would like more control than I'm getting with these: I would like to be able to run log analysis, and to do geoblogging, and so on, and I'd like it all to be on marnanel.org because it's neater. It's generally nice to be able to run your own stuff, and since 6A took over I've been a little concerned by unilateral changes to the rules about what you're allowed to write about-- not that I was planning to write about such things, but unilateral changes to such rules bother me in case it happens in future. The outage last night when we weren't kept up to date with progress but TypeKey people were didn't help much either.

3) "writing": I used to write essays or mini-essays, using LJ as a kind of content management system. I don't do this any more, because all my public posts end up on the planet, and it would annoy people to have whole essays turning up there. I used to do this far more often, and I'd like to be able to do it again. This was part of the reason for experimentally setting up *FX MARNANEL, but that needs to be merged with marnanel.org for similar reasons to the ones given above. Of course, I could ask jdub to take only the posts with a certain tag, but the fact remains that pages which apparently belong to blogs are treated as second-class pages within a lot of systems. I don't know whether Google treats them differently (can someone enlighten me?) but, for example, they generally can't be linked to from Wikipedia (they fall under rule 11 of "Links normally to be avoided") and I suspect a lot of other places too. (A very short piece I wrote here on LJ in 2002 was moved to its own page on my site sometime the next year, and that was the page that got linked to by Wikipedia and the press; that's never happened any other time, and I suspect it's as much to do with a dislike of linking to blogging sites as my happening not to have written anything worth linking to.)

So, in my mind and tentatively, I'm turning over moving "writing" and possibly "days" to an installation of some simple free software blog system on marnanel.org, maybe Blosxom (recommendations and advocacy for other systems are welcome), and repointing the planet to read from there. There would be comments and an LJ feed of it and things. Thoughts welcome.

2. blt. My hack of the day yesterday was a script called blt which integrates checking twitter into your shell (well, bash, specifically) in a "biff"-like way:
marnanel@charcoal:~$ ls
core
<blt> released new version
<wombats> deliriously happy
marnanel@charcoal:~$


In other words, you can get in-shell notification of 120-char or less status messages from opt-in channels. (You could have one for build result notifications, for example, as well as just keeping up with what friends and coworkers are doing.) blt's very experimental at present, but I'd appreciate it if those of you who use twitter and spend a lot of time in bash would give it a whirl and let me know what you think. Eventually it will have a .deb of its own, and so on. (Follow blt on twitter so you keep up with changes.)

3. Release script. There are a few things I have to remember to do when I make a release which aren't on the usual list; I'd like it if I had a script which updated an RSS feed and the current release number on Wikipedia as well as freshmeat and places, maybe. Would it be appropriate to have such a script on window which updated these things and then called install-module? If it would, would anyone else want to use it too?

4. Release script again. Actually, I'd like to write a script which put together a NEWS entry and released the next point release of Metacity just by running one command. I could pretty much do it, but before I do, has anyone already done something similar for other GNOME applications?

5. Random linkage. Here's Stephen Jay Gould on the stories behind Buck v. Bell, and how the public aspect about eugenics was also a cover for other things.
Tags: ,

1/9/07 10:27 pm - Flexing like the lens of a mad eye

Sooo tired. Last night I came home, made dinner and fell asleep. Tonight I slept on the train and didn't write any code; when I got home I made a big pot of coffee and so stayed awake, but I think I'll go to bed soon. Four days to go until release, and everything's getting as hectic as you might expect. We have a data projector set up in the corral with a continuously-updating display of usage. Those of you who want to know what we're all so busy working on can go and read what I said about it on DailyKos. You can ask me about it here, if you like; I don't know much more than I did then, though, except that I now know the name of the project. I'm still pretty excited. Yes, this means that many of you who are reading this will be able to file your taxes for free. Yes, really.

I went to pick up some soap from Lush for Fin. I had four frequent-flier stamps by now, so they gave me free grapefruit soap, but they didn't offer me an invitation to a slumber party as they did to the customer in front of me. I wonder whether it's because of the whole XX vs XY thing.

Someone knew someone (who was not manufactured by Mattel) who knows how to fix washing machines, and they're coming tomorrow to see whether they can save us the expense of a new one.

Speaking of expense, I would like to go to GUADEC (especially since it would mean being able to see my family for the first time in five years), but I know I'd have to save like crazy to be able to afford it. Maybe I should be saving like crazy anyway, but I keep hearing that some companies are sponsoring people to go. How do I find out more about that? Is it just for super-amazing rock stars? Though it would be nice to be a super-amazing rock star, I have to say...

Speaking of super-amazing rock stars, I need to find a few of them. I believe now is the time for a metacity release, and one with the compositor compiled in by default (but turned off in gconf). I know that my attempted fix for the blue window problem in libcm last week didn't do the trick, and in order to solve this blue window problem we're going to need people who actually have access to computers which exhibit it. Thank you to everyone who's volunteered to help so far. Now we need to figure out quite what to do to debug the problem, which means I have to learn more about compositors. I feel like the IT teacher who always reads the chapter in the textbook on the night before the lesson. Or maybe if we went and asked the compiz maintainers they would give us a hint?

Other than all that, the release at work is sucking all my energy, and I think GNOME work and Welsh and poetry may be on hold for the next few days. So, no new sonnet for you lot today. Instead, here's something I wrote for a friend in a card in April 2001:

Among those born as humans on the earth
within their mind the mirrored planet lies:
the universe contained behind their eyes,
more tangible with every day since birth.
Within, each place you love is held for you
perfected; every friendship dwells therein;
and if you dare, a thousand tales begin,
and if you close your eyes you'll see it's true.
  Within that place a forest lies, more real
  than all on earth, and all you count as dear,
  wherever they may be, you'll find them here,
  just as in life of sight, of sound, of feel;
there you and I will stay, and always be:
and when you need a hug, come visit me.
Tags: , , ,

1/5/07 11:09 pm - "So the story's really about how she adjusts to being dead..."

I went to work. I fixed bugs. I moped about a bit. I came home again. I ate fried rice and egg rolls, and later had fantastic sex. Such was an ordinary but rushed day in the run-up to the release next week. (Someone here asked what we're actually releasing, and I'll explain that in another post, probably tomorrow.)

Also, our washing machine broke. The drum doesn't spin at all, though the motor's clearly running. In my inexpert estimation, the drive belt is busted. We will take the back off tomorrow and have a look.

And now some nargery about window managers, following on from yesterday's discussion:
Read more... )
Tags: , ,

10/7/06 03:52 am - disjointed

Most of today at work was closing bugs in my bug queue. I did some work on making bugzilla more useful. I also went out and got nuked with UVB again at lunchtime. My psoriasis is looking a bit better.

I got enough of the nonblocking GDM stuff working to check it in. Now half the work is done by the nonblocking code, and the other half remains with the old threaded code. It's fun. (I would explain what the difference is for those of you who aren't programmers, but do you really want to hear?)

I also tried to get all the ducks in a row for metacity-theme-2. I hope we can get it into the next release.

Rio asked to go to the town library tomorrow so that we could get out some books. I asked whether she was looking for anything in particular, and she said, no, she just likes to read. I like that.

Google's Image Labeller game is quite fun if you're bored.

I think I will not take a holiday on Native American Genocide Day Monday.

All the best for those who are attending the Boston summit. I have a clever and strong kid here who's eight tomorrow!

8/26/06 08:44 pm - as a Bear doth her whelps, to bring forth this confused lump, I had not time to lick it into form

There was a wayzgoose on Thursday night in the printing business which shares the building I work in. On Friday I came into work and found that the wayzgoose had left us a thing about five metres high and a metre across, printed all over with different patterns and weirdly shaped in a way that reminded me of a pregnant primordial bear-like creature. I should take a photo.

I soon fixed the validation problem I mentioned on Thursday, and worked on remaining iteration stuff for the rest of the day: it's something strange with graphviz that I don't fully understand and I was mostly reading up on it. Robert asked me to work on some stuff to do with college scholarships next week, so that should be interesting. At the end of the day there was a longish meeting, the most notable result of which is that Sam from upstairs (a former teammate of [info]ladynik0n) is joining the Systems team.

I'm the eldest of five children. One of the most interesting parts of Friday was that my youngest sister, who at sixteen is fifteen years younger than me, emailed me out of nowhere. We spent most of the rest of the day catching up and learning what's new in the six years or so since I last seriously talked to her (living on another continent makes it hard to keep up with your family). And it made me really happy to see how her life is panning out at the moment. (I'm fairly sure she has now created an LJ, but I'll wait until she sets up her profile before I know for sure it's her.)

I came home, and on the way stopped off at the wonderful Giovanni's Room to buy some stuff. The person behind the desk not only knew me but told me things which were new in stock since the last time I'd come in— and I can't have been into that shop six times in my whole life! I love it. And the shop's always a happy place to browse around, too. Then I commuted back out into the suburbs, bought Chinese food because it was Friday, and that was the day.

This morning we woke up early because it was the art day at Shupp's Grove (warning: this website plays really crap music at you), where [info]riordon and [info]smreigner have a stand, and [info]smreigner wanted Fin to take some of zir recent artwork up there to see whether anyone would buy some. Perhaps because of the thunderstorms last night, it was a very slow day and there were no buyers at all, but we did meet someone who wants to write an article about Fin's work for an art magazine. I spent most of the day rewriting a utility for work, which is another of my iteration tasks. There wasn't any power where we were, and I had to keep running back to the bath house to plug the laptop in and recharge.

With a little nudge from [info]hdp, the code flows beautifully:
    my $proc = main->can("do_$command");
    if ($proc) {
      $proc->();
    } else {
      print "$0: I don't know how to $command.\n";
      exit(253);
    }

and
  print "See also:\n";
  for my $name (keys %main::) {
    next unless $name =~ /^help_(.*)$/;
    print "\t--help $1\n";
  }


I am wondering what I should fix next in Metacity. I have tackled all the things I really wanted to look at at first glance; now I suppose what I should do is work methodically through all the open bugs and see what I can help close. I wonder whether I should also try to help out with some other part of GNOME as well.

Lizardy, wizardy,
Jamie Zawinski runs
Nightlife instead of the
Programming scene
Finding the process is
Characteristically
h0rken since back when the
Lizard was green

7/6/06 10:43 pm - Battle with the Seventeen-Year-Old Me

Firstly, [info]moominmuppet is on her way to be with us for the weekend! Yay!! There will therefore be less hacking for a few days, although the nargery will continue as ever.

I walked to the piercing shop today, about a mile away, and bought some O-rings for Fin. I really like going there; the people are all really friendly and welcoming. (Even the other customers are friendly. And today there was a friendly dog, too.) I should think of something else I want to get pierced and go back there; it's been over six months since I last got pierced.

Today I fixed a whole lot of bugs at work. The last one came up about fifteen minutes before I had to leave, and it turned out that it affected only 1) drop lists 2) whose values were used in validation rules 3) which were generated by the Cheddar subsystem (a bunch of JavaScript which generates controls on forms) 4) only under Internet Explorer. I was worried I wasn't going to get it done in time because I'm taking tomorrow off with [info]moominmuppet (yay!), but I think it affects such a small and well-defined area of the system that I'll easily get it fixed first thing on Monday morning.

I had the commute from hell commute from the small, inconvenient, Ingoldmells-like part of Purgatory they put you in for having too much tedium in your life this evening. In the morning, Sharon couldn't take her keys out of her car. She drove home and got it fixed, but that made her get less work done. So shortly before I left she phoned to say that she was staying late. That means that like the old days I have to catch the number 93 bus, which is very slow.

I'd been held up by that JavaScript bug, so I ran to Market East and got there five minutes before the train was due. I found that the loo was being cleaned, ran to the other end of the station, found that the loo there was being cleaned, got told to try the Greyhound station, gave up and waited for the train. It was fifteen minutes late. I missed the bus and had to wait an hour for the next one.

Nargery: During that time I played with Avalot, and got quite a long way towards cracking the encryption that my seventeen-year-old self had placed on the data files. I now have it down to a particular 25-byte string in cipher and plaintext.

Just then, my battery died, so I sat in the sunshine and waited. A man from Working America was coming around telling us about how it was important for workers to band together and work for their common interests, and generally talking about class struggle without mentioning the words "class struggle". I talked to him for a bit, and also read through Galatians.

I finally got home at eight. [info]moominmuppet tomorrow! Yay!!
Tags: , ,

7/5/06 10:47 pm - pick something up

It rained this morning, and I squelched through twenty minutes of Philadelphia streets before I got into the dry, where I worked on the SEIU portal some more. I'm doing interesting stuff with the Apache session and it's fun.

[info]desh has a plan to display the system status on an ambient orb. Today was a day when I decided to study some basic Hebrew during compiles, and [info]desh has been a goldmine of linguistic information, answering my (really really basic) questions such as "So how come א doesn't have any sound of its own?" and "How come there's a ו in שלום? I don't hear a V sound" and "Do the binyanim פעל and פיעל really contain the same consonants, or am I imagining it, and if not how the heck do I tell the difference when their words are written down?" I am trying not to bug him too much.

At St Mark's Fr Alton preached on the Gadarene swine story, about how Amos came along to prophesy, and because he was "not a prophet, nor the son of a prophet", the establishment hated him— and how the same thing applied to Jesus; when he started doing miracles in a place people would ask him to leave.

While I waited for the train in the evening, I switched GNOME to Hebrew mode and started typing random letters to see whether I could name them all. When the train came, I closed the laptop and boarded, then opened it again, and of course it asked for my password! I couldn't type it any more because the keyboard was still in Hebrew mode. In the end I switched to a virtual console and killed xscreensaver, but then the keyboard was still grabbed. So I switched back to a US keyboard using the mouse, then re-ran xscreensaver on :0 and told it to lock. Then I gave my password and got back in.

I got about three-fifths of a solution to #338660 on the train, but I screwed up the program, and then cvs diff showed me I'd been working with a copy with the metacity-theme-2 patch applied anyway. So as the knitters say, I had to frog it.

Later I played with Avalot a bit. I'd like to build an interpreter for the files in a modern language. I've found a way to undo the effects of lzexe, but can anyone recommend a good DOS exe→asm disassembler?

Those who can spare a good thought or a prayer: [info]firinel has been feeling ill all day, and my father [info]thuremund needs to have an operation soon.

6/30/06 10:02 pm - in a foreign land

Today I worked on the SEIU's portal at work.

I slept through the alarm, and was only woken up by Sharon honking her horn outside. I got dressed and out the door in about three minutes, but of course I didn't bring anything to eat; Sharon gave me her lunch, leftover Chinese food from yesterday, and said she could easily buy herself something else. I think that was very kind and thoughtful of her.

At St Mark's, the bald priest whose name I don't know preached on Psalm 137 (though both he and the appointed readings omitted the famous curse at the end, which probably needs a whole separate section to itself). He said that even though the question of "How could we sing the Lord's song in a foreign land?" was a rhetorical one when it was asked, eventually they were forced to find practical answers to it (building synagogues to meet in and so on since they couldn't meet in the Temple), and they found eventually that God is indeed in the whole universe and not just in Jerusalem, as their forefathers before them had discovered that God was indeed in the promised land and not just in the desert.

I think as an immigrant this particuarly gave me a lot to think about. (And I wonder whether if I go to GUADEC '07, how I'll handle being on English soil again for a week and then having to leave it for who knows how long once more.) Then again, on some level we're all transients passing through this life: someone asked me recently how I like the US, and I said I like it well enough, but I never really feel like I belong here. Zie said zie feels the same about the whole world.

I did see Brian the homeless guy there, but just to wave to briefly.

NARGERY: Havoc pointed out to me that if you set METACITY_DEBUG_XINERAMA, metacity will pretend you have two xineramas on the screen. Using this, I was able to test Stéphane Rosi's patch to #323820 and find that it works fine. I also looked at #304927 briefly. Gentle readers, do any of you actually use metacity's shaken_loose feature, wherein you can unmaximise a window by picking up its title bar and shaking it free? Or is its very existence news to you? If the latter, it might be going away soon.

Also, there was some talk on IRC about why Anne Østergaard's name appears as Anne Ã[]stergaard on the Foundation pages. Character encodings in XML and XSLT is actually the sort of thing I spend a whole lot of my time doing at work, so I took this on the train with me; I now know the answer, though I obviously don't want to commit it without talking to someone on the board. (If anyone's around on IRC tomorrow, I might grab you.)

As I was walking down the street in Philly, a well-dressed person called something out to me from the other side of the road. I asked zir to repeat, and zie halfway crossed the road before repeating, "You look... exactly like Jesus!" I was a little nonplussed before replying, "Well... hallelujah!"

[info]firinel has been doing a whole lot of work on some beautiful artdolls and making web pages about them. There are dozens more that don't appear on the site.

In the evening we went round to Robin and John's house and sat outside and drank beer and talked while Rio and Murphy-the-dog chased a ball around their garden. Fin bought me a chocolate ice-cream from the ice-cream van. *happy*

6/29/06 09:04 pm - two little dicky-birds sitting on a wall

Today I finished fixing up Kartouche and did some more work to prepare for this year's translation effort at work.

We had a number of interesting conversations in the office. They involved
  1. whether ethics is independent of metaphysical beliefs
  2. whether the good effects of organised religion in causing public discussion about moral philosophy can be divorced from its (perceived) bad effects in promoting dogmatism and human hierarchy
  3. whether, if going to church is considered a political act which may (for example) inform your opinions about same-sex marriage, whether watching football can also be considered a political act with the same possible results
  4. whether it is a violation of kosher law to eat a giraffe.
NARGERY: In the evening I tried to get xinerama working via xnest for debugging metacity's xinerama bugs. Someone on IRC told me that you can do this, but I can't remember how. I got as far as DISPLAY=":0" Xnest -ac :8 -scrns 3 -geometry 640x480 -bw 15 +xinerama, which certainly produces a xinerama X server (clients report that it is so), but it just displays screen 1-of-3 three times over, rather than screens 1, 2 and 3. Can anyone help me with that?

[info]moominmuppet is visiting soon, and so are [info]naltrexone and his wife and their baby! Yay!
Tags: , , ,
Powered by LiveJournal.com