I was going to post about my life, but I forget what was happening.

My life has many parts, and one part is free software work.  Most of that is Metacity.  There are three main parts to my work on Metacity: fixing bugs, writing tests, and “oo, shiny!”  Fixing bugs is the most important, at least critical or blocker bugs.  Writing tests is important for the long term.  (I’m including fixing up commenting in that, otherwise I can’t know what the tests are supposed to do.)  “Oo, shiny!” is rarer, but keeps people happy when it’s something they asked for.  Sometimes real life takes over and I can’t do any Metacity work for a while.  Other times I do work on one at the expense of the others.  People sometimes get impatient when their bugs aren’t fixed, but there’s mostly just me working on it (there are others, but they’re busier on other projects).

The other day we went to the all-you-can-eat Chinese restaurant in a thunderstorm late at night and discussed Java, and because it was late and there was a storm, there was hardly anyone else there.  The staff were sitting at another table having an apparently very amusing conversation in Chinese.  They came over to apologise in case they were disturbing us, and I said they weren’t, and they said that there wasn’t much food out because of the paucity of customers at that point, but that if there was anything we wanted they’d cook it specially.  There was tons of food.  I should write a guide to local restaurants and put it up on the web.

We went to buy a wheelbarrow the other day, as you do, and they had to get a manager to come and unlock one because they were all chained together at the front of the shop.  The sales clerk said, “Yes, we have to get the manager because these are locked with a lock I can’t possibly open for you.  You see, it can’t be picked, it can’t even be shot off.”  I can’t believe he was expecting me to whip a revolver out of my pocket, shout “Hi ho, Silver, away!” and ride off with a wheelbarrow, so I was a little puzzled to note that this wonderful lock was attached to an ordinary length of steel cable which an ordinary pair of bolt cutters would have made short work of.  Maybe living in Cambridge makes you look out for these things.

Speaking of Cambridge, it seems I’m going to miss my college’s Commemoration of Benefactors this decade.  Oh well.

And now the politics: here is what a South Carolina senator believes is a funny picture.

Playground Patches

Today I was thinking, “Wouldn’t it be nice, and save me quite a bit of time, if when you look at a patch on Bugzilla, there was a Test link next to the Edit and Diff links?  And when you clicked it, it would apply the patch to trunk, and if it worked it would configure and make it and then drop you to a shell so you could see what had happened.”  So I made it.

What you will need:

  • Firefox.  Anyone wanting to port this to Ephy is welcome to do so.
  • A suitable build environment for whatever module it is.
  • A svn account.  You can’t do this anonymously, but only because I didn’t write it to do so.  (See below.)
  • gnome-terminal
  • wget (I would worry if you didn’t have this)
  • svn.  I wanted to make this use bzr-playground (hence the name) but I decided to make it use svn to begin with.
  • The actual Firefox extension itself.  You can get it here, but save a copy to your local disk and then open it up in Firefox.  You will have to restart when you install it.  This will also give you the opportunity to go into the XPI and have a look around. Did you realise that XPIs are just zipfiles and you can go in there, change them, rezip them, and reinstall them, and it’ll just carry on working?  You should.
  • A bug with un-applied patches on it.  Here’s one that I am going to get to on Sunday night or Monday, so try “Edited Patch” from there.

Things it should do in the future:

  • Have preferences, and let you specify that you don’t have a svn account.  Also, whether you want to use svn or bzr-playground. (Actually, you can do this for yourself already, by unzipping the XPI, modifying the commands, re-zipping, and reinstalling.)
  • Be clever enough to note who uploaded which patch, and store the information in a hidden file in that directory.  Then there would be a commit script which figured out what to put in the ChangeLog, commit message, and (for bzr) –author switch accordingly.
  • Not be a toy that Marnanel threw together in a few hours.

Warning:  If you run “Test” on the same patch twice, remember to delete in between;Playground Patches doesn’t do this for you in case it overwrites your work.  If you don’t, the patch will be applied twice, which won’t work.

Credit: This started out as a Greasemonkey script (for the sake of easy editing) until it was advanced enough to need XPCOM, and was then originally compiled to an XPI using the arantius.com Greasemonkey compiler.

I love this planet (in homage and parody)

NASA Endeavour (by NASA)

A free desktop… where anyone can help out.
Yep.

It kinda makes you want to…
Contribute patches?

I love the coders,
I love the Guadec folks,
I love translators,
I love the planet jokes,
I love the GNOME world
And all its GTK,
Boom de yada, boom de yada, boom de yada, boom de yada…

I love the D-Bus,
I love Epiphany,
I love Anjuta,
I love Metacity,
I love this desktop,
It’s such a people place,
Boom de yada, boom de yada, boom de yada, boom de yada…

Parchment

HOLY CRAP SOMEONE HAS FORKED GNUSTO
IS THIS NOT SO COOL
THIS IS SO COOL
THANK YOU WORLD
the end.

Update and explanation, now I have calmed down a bit: In 2002 I wrote a program called Gnusto. It took game programs written in the eighties and translated them into JavaScript. This meant that a browser could run them. But then I discovered that the difficult part was the user interface, in other words actually doing the windows and text and so on on the screen, rather than making the game work. In those days it was a weird black magic to make web applications work on IE and Mozilla, so I specialised it into a plugin for Mozilla (i.e. Seamonkey), and then Firefox. At about this time Eric Liga came along to join the team, and that is how we all originally got to know one another.

But then Firefox 2 was so different from Firefox 1 that the user interface needed to be practically rewritten, and I didn’t really want to take on the work, and although Eric tried some things out I don’t think it ever ran as well as it once had. And then Firefox 3 came along and things were all over the place. So Gnusto doesn’t run much any more, which is a shame for something which had at least a year of development time put into it.

Anyway, we talk a lot about Free Software. Some people suppose it means software you don’t have to pay for. It doesn’t mean that: it means software which grants you certain freedoms. One of those is the right to change the way it works and make that into a whole new program, which is called “forking”; this right is often called “the right to fork”. Last week someone announced he had forked Gnusto into a new system called Parchment, which will let you play any of these hundreds of games on the web with almost any modern browser. People took what Eric and I had done and mashed it up and made something beautiful with it. That is the power of freedom. That is why I’m happy.

Sous les pavés, la plage.

I’ve been working at the new job for a week now, and I’m enjoying it a good deal. The coworkers are friendly and the work has a lot of new challenges. I’m not sure how much I’m allowed to blog about. I’ll find out.

I spent a good while playing Packrat cooperatively with Fin this evening.

I have started microblogging over at identi.ca, which is synched to my twitter account. There are two reasons I’m using identi.ca rather than any of the dozens of others: firstly, its engine, laconi.ca (which somehow my brain keeps thinking has a far more interesting name) is free software and you can modify it or run your own; secondly, it uses an open protocol based on XMPP (like Jabber) so that anyone who wants can run their own microblogging site and join a big distributed network. It will be interesting to see how this develops.

There’s a fair to celebrate the Fourth of July, and we went there yesterday. After about an hour the entire field had a power cut, and there was brown smoke going up in the air from one corner and an acrid smell. The field was full of people groaning with disappointment. Five minutes later the power came on again, only to fail once more soon after: it kept doing this for four or five times. In the end they gave out cards if you’d arrived recently enough to let you come in free another time.

The Fourth of July fireworks in neighbours’ gardens are also making the dogs around here bark. There are some interesting Metacity bugs I’m working on, but I think I’ll get an early night.

And! Happy birthday to Carmen, who is of course one of the most awesome and special and wonderful people in California or anywhere! Many many happy returns.

Link soup: