Older blog entries for malcolm (starting at number 85)

mx: I should point out that the non-review I did was really a non-review. There are a number of minus points about the book as well (for example, the author kept reminding the reader of how good he was in a non-obvious fashion). So if On Game Design is as expensive in your area as it is here in .au, you may wish to borrow a copy.

edd: Hopefully your prediction about the lack of new standards will not lead to a dying off of articles at xml.com. I really enjoy the articles there that talk about new and ongoing uses of existing standards. For example, Kendall Clark's articles, which often cover the bridging of the gap between commercial and more theoretical and general XML usage, are food for thought. As are a lot of the others.

New standards still have to prove themselves. Existing standards which are being used in commercial and non-commerical settings are already showing their resilience and articles which help reuse are encouraging.

25 Oct 2003 (updated 27 Oct 2003 at 01:23 UTC) »

A different way of saying the same thing

I was reading Chris Crawford's book On Game Design today. It is a mostly engaging combination of advice, philosphy and concrete examples. A nice read and a book that does not have to be read at all at once and you can jump around a bit inside it.

One particular page may change my thinking for a little while (the two paragraphs before the conclusion section in chapter 18, for those who own the book).

He was discussing how he handled suggestions from playtesters. Although his focus was on game design (rather than implementation), it had direct application to bug handling as well -- playtesting being in some ways equivalent to the beta-release phase of an open source project. Crawford classifed suggestions into four categories. The following is my own slight rephrasing into general software development terms:

  • Additions: new features. Reject them out of hand during the playtesting (beta) phase of the project. If you need the addition, then the game needs a redesign.
  • Embellishments: improvements to existing elements. Consider them, but the burden of proof is on the embellishment. Resist the urge to fiddle for the sake of it and only implement the improvements that are really worth it.
  • Corrections: things which fix clumsy (or broken) aspects of the design (a.k.a. real bugs). Fix them.
  • Consolidations: "Bring two dissonant aspects of the game into deeper harmony" (his words, not mine). Think of feature consolidation, reducing cluttered interfaces, or improving workflow. These you will generally want to implement, since they genuinely improve the product.

In the next paragraph he puts voice to some ideas that strike me as very applicable to open source projects. If lots of people are contributing, some will feel that their ideas are not being valued.

"...Some people think that open mindedness requires a designer to hear out every idea, to give every suggestion its day in court. This isn't noble; it's stupid. [...] If somebody surprises you with an idea you didn't think of, you should consider it a warning sign that you haven't thought through the design carefully enough. [...] Be courteous, but concentrate on doing your job."

Strong words and maybe not to everybody's liking (particularly in a partially edited quote like this, but I think I have kept the essence). Of course, this is not a universally applicable mantra. Many projects are lobbed out there as a mere framework in order to permit other people to brainstorm the future direction of the project. But at some point in most software packages that have a long life, features will be added after a certain amount of design. The design may be bounced around for a while and the rough edges smoothed off, but eventually we get to the point where the above quote becomes applicable.

I can think of maybe a half a dozen or so people in open source projects I am peripherally involved with whom I would immediately classify as "really good designers" (just considering people I have a lot of interaction with). Looking at the behaviour of these people, it seems that they have a good understanding of all of the previous points and apply these skills consistently. I think I realised this already as one of the things that separated this group from the crowd. But sometimes a restatement of known ideas can bring them into sharper focus, at least for a little while.

None of this is particularly revolutionary. Most of it is even fairly obvious. But today's reading is going to bounce around in my head for a bit; hopefully with some benefits.

Lately I have been feeling very comfortable/enthused with the way various big pieces in the Linux and GNOME universes are coming together. A conscious decision I made a month or so back to step away from some of the trivia that was annoying me may be paying dividends, or maybe it's just blind luck. The crap still annoys me; I am just trying to be disciplined enough to not respond for a few weeks (hopefully months).

For example, I would recommend that anybody even peripherally involved in Open Source contributions should read Nat's recent write-up for an example of how to intelligently incorporate a bunch of extra developers. Dave's version of the same event is also interesting. This type of management talent has to be a large part of the reason Ximian are still around and considered a worthwhile investment for Novell.


In local news... our friendly (sic) federal government has decided that corrupting Australian copyright law to match that of the USA was an acceptable point to concede during recent trade negotations. Really, if the US are that concerned about differences in their terms versus the rest of the world, they should stop messing around and just go back to life + 50 years like so many other countries. It is not really rocket science (unless you work for Disney, et al). Of course this example of yet another small chipping away at reasonableness will go unnoticed by almost everybody, since it is buried at the bottom of what is ultimately a fairly major trade deal -- but the copyright thing was just a bullying side point, rather than in any way significantly related to the trade talks.

And you have to love the treatment of the media in Australia. Well, at least the treatment we give to some foreign media elements, if not to the local ones. I am not sure what conclusion to draw from the fact that the report was filed by an Australian reporter in Washington (one assumes "D.C.", rather than "the state of...").

Maybe the Linux arena is only looking good in relation to the real world going on outside the window...

Some mornings you just need more coffee...

I spent more than a couple of minutes this morning trying to work out how a piece of spam had gotten through to one of the GNOME mailing lists I moderate. The sender was not on the membership list, I did not think I had approved anything for a few weeks (just cleaned out the spam). So I was confused.

Of course, I eventually went back and re-read the headers properly and it was sent to the -admin address. I must really be asleep this morning. More coffee is the only solution. :-(


It's a public holiday in NSW today (Labour Day). So I shall indeed labour; much code needs writing, including a couple of horribly bad, explode-with-pieces-bouncing-all-over-the-place bugs in my SMIL library that need to go before I can release something.

1 Oct 2003 (updated 1 Oct 2003 at 14:58 UTC) »
Look! The universe does have a sense of humour...

It is safe to say I am not the world's greatest fan of OpenOffice.org. It feels like the wrong shovel to hammer in your screws with (wish I could remember where I stole that from), but I have more difficulties in enunciating my real reasons. It's not quite the fact that I prefer my tools to do one job properly or that I dislike big programs per se. And I certainly don't dislike interoperability between separate software components; being able to easily drop spreadsheet results into a document and add a diagram or two and some dates from my calendar, or make a convenient presentation from the same is nice. But OO.o doesn't feel comfortable.

[No Michael, I still don't feel like hacking on it. The apparent motto of "It's so painful to read the code that you will bleed from the eyeballs, but at least you'll be amongst friends" is, sadly, not winning me over. :-) ]

Anywaaaaay, ... that being said, it felt somewhat ironic that I was writing an impromptu essay about keyboards and terminals (as opposed to the mouse addicts and "everything should be a GUI" counter-culture) and I found myself using OO.o as an example of reasonableness. I mean, I can't even keep my prejudices straight.

[Not really sure why I wrote the essay, but it was cathartic. Maybe I will turn it into a couple of diary entries here. Maybe I will just delete it in a week or so.]

It got worse: working on some file import/export stuff, I ended up spending a while at xml.openoffice.org, ploughing through some of their documentation. I may not wish to use the program much, but other people do, and my programs live in the same world as their data.

Couple all this with a day where I had some fruitful email exchanges with two KDE developers and I'll swear I have dropped into another reality. My world is becoming too well-balanced. It is disturbing me.

So much else going on at the moment. I should probably get a real website to write about stuff. Since the day job involves (at least today) trolling through tcpdump output trying to decode problems on a network that is thousands of kilometres away and has possibly attained self-awareness, the extra-curricular activites are quite a change. But instead, I chose to write about Open Office. Go figure.

A pleasant weekend where I have managed to get a fair bit of "for fun" (meaning not for work, rather than necessarily enjoyable) programming done.

Pretty much all the programming has involved XML in some way, so it was interesting to catch up on my mail this morning and see a huge thread about XML library interfaces; the pragmatists side was taken by hp, the "but that is a slippery and poorly defined slope" side by a few other people, led by DV. Naturally, there are good arguments on both sides when you are comparing whether to use a complicated, albeit complete, API, or to simplify things for one common case (not the common case, just one of them). Those are the type of threads I want to read more often: smart, experienced people trying to work out how to satisfy both parties without pitchforks and flaming torches being involved.

Somewhat shamed by the guys on the gnome-i18n list, I motivated to work on my document translation tool again. So I have been hacking at that all day. Converting back and forth between XML and PO formats and being neither too verbose ("be nice to translators") nor losing information on the return trip ("be nice to authors") is interesting. Coupled with the work that Tim "brother of gman" Foster has been doing for the translators at Sun, we might soon have some real applications for the translators to see what works in practice. The trade-offs between whether to use PO format, or XLIFF (or TMX) have been discussed at length on the mailing list and we now need to test some things out. Personally, I think XML-based tools rock, but I may be biased or clueless (he says, as the audience screams "both!"). At the end of the day, though, I don't have to translate documents into languages with funny character sets, so if the translators want PO format, that is what they will get.


For anybody else who is working on presentation tools, remember to be nice to Apple and import/export to and from Keynote format. They have done a Good Thing by making this format open and documented. There is a good place to start on their developer site, including links to the relevant Technical Notes explaining things in more detail. Now, if only I knew a Macintosh user who owned this product so I could test things.

major: Adding up the digits repeatedly like that gives you the remainder when you divide the original number by 9. All of your other results follow from this (e.g. the remainder when diving a+23b by 9 is the same as the remainder when dividing a+5c by 9).
3 Sep 2003 (updated 3 Sep 2003 at 01:59 UTC) »

Some bugs are just a sign of something having gone really, really screwy somewhere at some point -- they are not hard to fix, but you have to wonder how they happened.

One Scrollkeeper bug triggered this response from the i18n maintainer:

"Looking at the patch without knowing Japanese, I'd vote for applying it in every case. Translating 'WebML' as 'SuSE' is not something we'd want to ship with."

Yes, the PO file was that broken. :-)


Congratulations are in order to jamesh for getting PyGTK 2.0.0 (and 2.0.0 versions of the other gnome-python components as well) out the door. A small step in the incremental release process, but a good public milestone to have reached.

Pretty Photos...

I was catching up on a couple of websites over lunch and I saw that Dave Mason had updated his Photo A Week page. The recent ones are nice, but it is still hard to go past the two fantastic photos of young children (maybe it's the same child) in this collection:

  • "Newphew's new hat" is appealing because of the facial expression;
  • My favourite, however, is "First base". The photo is taken a moment before the subject has realised that things have gone awry (look at where the eyes are focussing, for example). How often did this happen to me in school sports? Both subjects in the photo (child and ball) are in focus and the background is plain enough that nothing is lost by it being beyond the focal region.
OLS redux

Like many other people here, I enjoyed OLS. The large number of kernel talks was probably a bit overwhelming, but the organisers have to work with what is submitted. I was not too thrilled with how my talk went, but I had some good discussions with people afterwards (and some excellent discussions with DV throughout the conference), so there appears to be some interest.

I am spending this week knocking out all the FIXME comments (57 to go! Down from 89 a couple of nights ago) from my SMIL library and will then drop it into CVS to see what happens. Releasing something that I have been working on very quietly for eight months should be interesting.


Downloaded and played with gDesklets last night. It's a bit rough around the edges, but most of the bugs I found are pretty trivial to fix and it seems to have real potential. I am not familiar with the equivalent KDE product, so I had no real expectations of how these would work. Having played around a bit, I can mostly see myself using some desklets I would write myself to add functionality. The whole build/test cycle is going to be easier with desklets than with applets.

As an added bonus, gDesklets are such a good advertisement for the GNOME Python bindings (in particular, pygtk). Anything which makes those bindings a required part of the every-man's desktop is a good thing. On a good day I agree with maybe 60 percent of what happens on the GNOME desktop, so anything making it easier for me to make my own desktop more useful is great.

76 older entries...

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!