Older blog entries for edd (starting at number 73)

GNOME Bluetooth

Spent two days solid working on GNOME Bluetooth this week, great to get the hacking time. Have reimplemented the libraries extensively, excising the redundant and failure-prone Bonobo component, and adding in asynchronous device discovery and Python bindings.

All in all, things are heading in the right direction to give GNOME users a decent set of Bluetooth tools. Hopefully I'll be able to get a point release out soon, as a lot has changed.

Busy, busy. Just completed a slew of work on updating my strategy for XML.com. Actually got quite excited by stuff that's going on, but it's clear that the action has shifted away from the more traditional standards track of development we're using to following with XML. XQuery's just about the last core XML spec from the W3C that's likely to have an impact.

Been keeping my Debian maintaining work going on as usual. Trying to write more on my blog, but my scheme of regular writing fell flat when a friend came to stay and I spent my spare time having a real life.

My submission on Dashboard has been accepted for the O'Reilly Emerging Technologies conference next year, and I intend to pick up on some recent patches and work done on Dashboard. I also have a stock of airport codes ready to add into my location-sensitive Dashboard plugin.

Also on the level of things I need to get round to doing, I'll be showing off foafbot at the XML 2003 conference this year, so it needs updating and reviving.

Finally checked gnome-bluetooth into GNOME CVS. hadess has started to do some much needed clean-ups on the code. The consensus seems to be that using Bonobo is pretty pointless, and that the bonobo-centered bits of the code should die in favour of a normal GObject. The rationale for using Bonobo in the first place was that it might make interfacing to other languages easier, but it seems there is more will to generate a handful of language bindings for the GObject than to use Bonobo.

Unfortunately this means a little bit of code-rewriting. I have to say that writing GObjects in C isn't particularly pleasant either, but there we are. I think it's the right decision, although I feel a little guilty about it.

Finally got some more time for hacking on GNOME Bluetooth. Hopefully, fixed the service discovery so it works with Palm devices. Added a Nautilus context menu item "Send via Bluetooth..." and removed the crack-laden bluetooth:/// gnome-vfs hack. Got a few more tidyups and removal of lunatic bits to do, but I'm very near checking this lot into GNOME CVS -- finally!

There's a large amount of work needed to get it production-ready, but I hope that when it makes it into CVS then I might find some helpers who have the patience to write help files and make the dialogs conform to the HIG, etc, etc. Glade is a cool tool, but I always seem to fall foul of the way it decides where to put pixmaps, and end up hacking the Glade XML by hand. I need to fix that before checking into GNOME CVS.

Uploaded Epiphany 1.0 to Debian unstable.

Finally caught up with my Debian packaging work, including minor fixes for the BlueZ Bluetooth packages, and another new upstream release for the Epiphany web browser. Been able to close a few bugs, but also reminded of how annoying some Bluetooth hardware can be. As an early adopter I have a few less-than-reliable devices.

Expecting to take receipt of a new computer next week, with an Asus A7N8X Deluxe motherboard in it. Been spending some time researching exactly what's needed. Luckily, looks as though kernel 2.4.22 has the goodies I'll want in order to be able to install Linux right into a couple of SATA disks in RAID0 configuration. I found this page, which has a few hints on how to make a custom Debian net installation CD for newer kernels.

dajobe released Redland 0.9.13, complete with the revised Python API that mattb and I have put a lot of time into. Redland's getting to be a very classy piece of software, and should shortly be available in Debian unstable too.

Installed Linux (GNOME 2.2, Crossover Office) on my wife's PC while she was away on holiday, but don't have the guts to leave it booted into Linux for her to discover. There's only a couple of days before she needs to get back to work and she might be a little annoyed to have to learn a few new things. However, I will prevail, some day.

Distraction. My wife claims I'm too easily distracted, and maybe she has a point. One thing so easily leads to another when you're coding. Buoyed by interest in my GNOME Bluetooth stuff I decided that I needed to put more coding time in. I then decided that I should write new GUI-based stuff in Python in order to get further in less time. Then I found I needed the EggIconList widget from libegg, the experimental GTK widget library, and so had to find out how to wrap it for Python. Get the picture? Well, thanks to jamesh and ross I got there. Then, feeling the need to share the achievement, I wrote about it here and on my weblog.

Debian. I uploaded a new package of the Epiphany web browser and filed an ITP for the Epiphany extensions collection -- features such as gestures and zoom-level-persistence. There's also an accumulating amount of work to do for my BlueZ packages, which I hope to get round to soon. The announcement of the 'sarge' release plans are great news, and I hope to do what I can to help achieve the release.

Twisted. As part of developing FOAFbot, I've started using the Twisted network application framework for Python. The learning curve's quite steep, and there's lots of new nomenclature to get my head around, but it's looking very promising and I shan't be turning back. Very cool. Hanging around on the Twisted IRC channel is also pretty entertaining.

And now, to paying work...

Heavy duty sysadmin weekend. Moved my production web server over to Apache 2. All went well except for PHP4, which needed a little patching and to be compiled with the bundled pcre library, to avoid segfaults caused by some bug or other. I forgot what a bear it was to compile properly.

Also moved my mail server from exim3 to exim4. The main purpose of this was to get SMTP-time SpamAssassin going. Everything seems to be going well there. The Debian "conf.d" style of exim configuration makes a lot of sense once you get over the fear of its newness.

I've been using RT to track article lifetimes for XML.com. Overall I'm very happy. The big shame is that to get custom reports you really need to go right into coding, so I've got to set some time aside to investigate that.

In other news, I'm getting a little behind on my Debian packaging work, so I'll have to put some time aside for that this week.

jamesh, raph: thanks for getting those RSS fixes in so quickly!

23 Jul 2003 (updated 23 Jul 2003 at 11:34 UTC) »

Jolted by the work I've just been doing with RSS and Dashboard, I've been looking at the RSS provided by Advogato for my diary. The idea is I will link all the RSS files I generate from the <head> section of my blog using the <link rel="alternate" title="RSS" ... > mechanism, so that when browsing it with Dashboard enabled, I get not only my personal blog, but also my Advogato entries and O'Reilly weblog showing up too.

So, the Advogato RSS: it's a nice start, but there are one or two quirks.

The first is that the <title> element is missing. This is a mandatory element. Obviously Advo has no concept of title in diary elements so something like "Diary entry from edd on Mon, 16 Jun 2003" would do. But something is needed. Secondly, all the values of the <link> element are all the same, I suspect this is just a simple programming error.

(Being a purist, I have longer-term misgivings about cramming escaped HTML into the <description> field, but I am largely at war with common [ab]usage on that one.)

In hiding

Busy having too much fun to remember to write about. Recent work includes uploading new versions of bluez-sdp, epiphany-browser to Debian. I'm insanely obsessed with Dashboard. Splashing around with Mono is fun, I managed to find a test case for a race condition in the runtime the other day. It's nice that newbies like me can play.

64 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!