Robotic Tendencies
The personal blog of Robert McQueen

April 19, 2006

Summer of Telepathy

I put a few ideas on the wiki page for some Summer of Code projects based on getting the Telepathy Framework used on the GNOME desktop. We’ve hacked out a spec for doing most IM & VOIP stuff via D-Bus so that you can add whatever functionality you want into any program like Nautilus, Evolution, Gossip, etc, and share the use of your server connections from wherever in the desktop makes the most sense. We’ve been working hard on our flagship XMPP backend implementation, telepathy-gabble, and Raphaël Slinckx & Adam Lofts have been working on some UI implementations in Python and C#, but we need to get some more people looking at different backends and integrating frontend functionality into the desktop. Get those SoC applications going if you think this sounds cool… 🙂

As well as my ideas, I should also mention I’d be happy to mentor for other deserving ideas such as eikke’s CDIS plans, and I’ve also got some ideas about how cross-program (and cross desktop) music databases should be achieved. I’m particularly keen on helping people with D-Bus related projects because I know that not enough people understand how all this stuff works, so I think it’s worth spending a bit of my time to spread the love (and pain) which I’ve learnt working on Telepathy.

posted by ramcq @ 12:00 pm
Comments (5) .:. Trackback .:. Permalink

March 8, 2006

Now hiring

My company, Collabora, is seeking one or two experienced free software developers to hire or subcontract. We are working on VOIP and Instant Messaging software using Glib, D-Bus and GStreamer, and our focus is creating and working on completely open source projects.

As well as contributing frequently to D-Bus and GStreamer, our main projects at the moment are the Farsight library for negotiating and setting up GStreamer pipelines for peer-to-peer voice and video streams over a variety of protocols, and the Telepathy framework for allowing IM/VOIP server connections to be implemented as D-Bus services, so that the connections can be shared and integrated into your desktop, exposing the different functions of the servers in the appropriate parts of the UI.

If this sounds up your street, drop us a line with a CV and details about relevant experience or free software projects you have contributed to.

posted by ramcq @ 12:12 pm
Comments (3) .:. Trackback .:. Permalink

November 11, 2005

On contributing to Gaim…

Whilst I can’t claim to have done anywhere near as much for Gaim as Christian Hammond has, I did contribute to Gaim some time ago, and for my efforts I managed at least to attain the status of “Crazy Patch Writer”. However, I gave up trying to contribute to Gaim about three years ago.

After starting out as the Debian package maintainer, and one of the founders of #gaim (yes, I know, I’m sorry, it wasn’t always like that), I spent about two years submitting patches which were ignored by almost all of the developers, being forced to beg people with access (including the support/bug triaging guy, who doesn’t really code C) to review and commit them. At the time, nobody was being given CVS access because of a recalcitrant and unresponsive former developer holding the reigns of the Sourceforge project.

A few developers came and went, and in what I thought was a miracle, the now lead developer was made an administrator of the Sourceforge project and gradually started handing out access to other people who had been contributing. Except… I was passed over time and time again, and other contributors who had around for less time than myself were given access. I could accept this if I was given some justification, but I was ignored when I asked about getting CVS access and never given any reasons, despite having contributed hours and hours of my time and helped rewrite and clean up sizeable chunks of code. It actually had me close to tears on several occasions, and still upsets me a huge deal that no explanation was ever offered to me.

After starting out with packaging work in Debian, Gaim was the first project where I became involved with actual development, and I learnt a great deal from hacking on it, but when I started at university I decided I’d spent enough time pouring my heart into such an unwelcoming recipient, and I moved on quietly.

posted by ramcq @ 2:43 am
Comments (4) .:. Trackback .:. Permalink

October 19, 2005


Does anyone know of a Thunderbird extension to check for words like “attach” and remind you if you failed to make any attachments?

Does anyone know of a way to stop Firefox interpreting Ctrl+W as “throw this window away including the wiki post/bugzilla comment/blog entry you were writing”? It doesn’t need to be mapped to delete word, I just don’t want it to close the entire thing. It’s most upsetting.

posted by ramcq @ 1:44 pm
Comments (11) .:. Trackback .:. Permalink

October 19, 2005


Just a quick post to reply to the comments I’ve had on some previous posts.

On Missing entropy on my server box, I received lots of comments on how to feed random other stuff into the entropy pool or make it bigger or other hacks, but Alexander Reelsen pointed me to the real cause — a kernel bug in older 2.4 kernels which causes the entropy pool to deadlock on SMP systems, and never get refilled. There is a patch from RedHat which backports the fix from 2.6, and is included in recent 2.4 kernels.

On the topic of kernels, now I’ve upgraded from 2.4.29-rc1 to 2.4.32-rc1 I get lots of errors like hw tcp v4 csum failed in my syslog. I’m using the e100 driver which as far as I can see hasn’t changed between versions, but there have been some changes to TCP checksumming code which I havn’t quite been able to grok. Google finds mailing list posts with other people asking what the cause is, but nobody answering. Anyone know what’s going on there?

On Windows accessibility, many people seem to not listened to the first couple of minutes of the tasteless song I linked to, and hence taken my comment completely seriously. Thanks to everyone who told me about sticky keys etc in comments, but I did already know about the existence of Windows accessibility support (warning: mjg59 in furious anger mode). 😀

On the topic of blog comments, how do I cut down on the comment spam I have to moderate without requiring people to go through a completely unaccessible captcha image thing, or the annoyance of registering and acknowledging an e-mail? Would prohibiting comments and URIs containing words like ‘mortgage’, ‘casino’ and ‘ringtone’ ever cause false positives?

posted by ramcq @ 12:55 pm
Comments (6) .:. Trackback .:. Permalink

October 15, 2005

Windows accessibility

While pondering the delightfully tasteless Snippets song from Amateur Transplants (authors of the London Underground song), I realised that until the requirement to press Ctrl+Alt+Delete is removed, Windows will always remain unaccessible to certain users.

posted by ramcq @ 5:03 pm
Comments (4) .:. Trackback .:. Permalink

September 25, 2005

Missing entropy

One of my servers has apache2 and mod_perl on it to play with some crazy stuff like dyamically looking up virtual hosts in postgres, but every time I restart apache2 for whatever reason, it blocks reading /dev/random and never starts up. A little research shows this is mod_perl trying to initialise its UUID generator with some quality system entropy (why? is it strictly necessary? are the UUIDs that important?). The problem is, it never succeeds because this machine never has any entropy:
$ cat /proc/sys/kernel/random/poolsize
$ cat /proc/sys/kernel/random/entropy_avail

It’s a headless box with no serial, mouse, keyboard or USB devices, so the only IO it sees is disk and network. How do I find out what’s eating all the entropy, or does it in fact just never have any due to nothing feeding it in the kernel? What can I do to identify and address the actual source of the problem (ie not just making /dev/random a link to /dev/urandom or patching mod_perl to just read /dev/urandom or use /proc/sys/kernel/random/uuid to make its UUIDs)?

posted by ramcq @ 12:35 am
Comments (11) .:. Trackback .:. Permalink

September 20, 2005

Oh baby baby…

I apologise in advance. It’s all Rob Taylor‘s fault, while we were looking at garbage collection (or not) of Python D-BUS service objects. In my defence, I was thinking of the Travis cover rather than Britney’s version.

Oh baby, baby
How was I supposed to know
This memory’s from the heap
Oh baby, baby
I shouldn’t have let it go
And now its out of scope, yeah
Show me where I should have called free
Tell me baby ’cause I need to know now, oh because

My memory leak is killing me
I must confess, I still believe
When all my objects are hard to find
Give me a count
Ref me baby one more time

posted by ramcq @ 5:01 pm
Comments (7) .:. Trackback .:. Permalink

July 29, 2005

Courier… WTF?!

I noticed this error today:
Jul 29 00:54:50 light imaplogin: malloc: Input/output error

Note helpful lack of pid, so I had to strace all my imapds to track it down and then grep through source code for calls to perror (random guesswork). And it’s caused by… wait for it… famd not running (see #294656). Of course!

No, really. WTF?!?! I’m switching to dovecot. Utter utter crack.

Update: Corrected the bug number. #308313 is the other problem I’ve been debugging today, the combination of the two leading me to believe my machine was rooted or had f🤬d hardware. I utterly hate both courier *and* proftpd, and will be switching to dovecot and vsftpd as soon as possible.

posted by ramcq @ 1:17 am
Comments (6) .:. Trackback .:. Permalink

May 20, 2005

Resizing LVM2 physical volumes

People keep running into situations where they’ve grown a block device (by repartitioning or md-fiddling) and want to grow the LVM2 physical volume on that device. Once when I wanted to do this, I managed to find a post to the linux-lvm mailing list explaining how to resize an LVM2 physical volume given that LVM2 has no pvresize. I’ve blogged it here so that I don’t have to remember the exact search terms to find it again, and hopefully Google will find it too and help others in the future.

posted by ramcq @ 4:29 pm
Comments (2) .:. Trackback .:. Permalink

« Previous PageNext Page »