WebKit Support in Conduit
When I was at Guadec I met John Stowers, the developer of GNOME application Conduit Synchronizer. Conduit is something I had heard about a while ago but only vaguely remembered, I’d never seen it in action, and most people I talked to never really though it went anywhere or was still under active development.
So I went to his talk. Conduit was demoed syncing files and other data to Box.net, across a network to another laptop, a Nokia N800 Internet Tablet, a Windows Mobile phone and an iPod. All other Linux Synchronization software I tried sucks, so when I saw Conduit doing things in a way that rivalled Apples iSync I was impressed.
When I got back from Guadec one of the First things I did was install Conduit in my Foresight Linux 2 running Thinkpad. Conduit installed great, but would not launch. After about 20minutes of fiddling I decided the packagers had packaged it badly. No big loss I though, I can just package it again and use the latest version from SVN, I thought.
So I packaged and installed the latest version of Conduit. I tried to start it again but it failed, this time it was something to do with Python. A quick Google revealed that it was a bug in Pythons garbage collector, caused by over-aggressive optimization that the original packager had used. So once again I had to create a new package for Foresight Linux.
Finally, I had a non-broken version of Python installed. I thought this must be it. I launched Conduit and all seemed well. I created a sync group to synchronize my music with my box.net account. BAM. It crashed. So after another 20mintues of fiddling, I discovered it was to do with gtkMozEmbeded (Embeded Firefox). Conduit uses this to display the login page for various sync modules. As I’m sure every programmer that has ever had to deal with it knows, its as flaky as anything.
I remembered WebKit, a fancy new HTML renderer (also at Guadec) that is seriously fast and very simple to use. I installed it and its pygtk bindings and started to hack support for it into Conduit. About 2 minutes later I was syncing my music to my box.net account. WebKit is excellent. I implemented support for WebKit in about 10 lines of code, where as the already existing gtkEmbededMoz support was implemented in at least 100. WIN!
For everyone who is interested, WebKit support has been committed to SVN!