Robotic Tendencies
The personal blog of Robert McQueen

June 2, 2006


In the office just now, daf complained at me that he finds it very annoying when people blog about how they havn’t blogged recently. I apologise, although in my defence, the post was mainly about C (I’ve subsequently learnt that -Wextra will warn me about such errors in future, thanks :D). The question is, is this post also annoying because of this meta-blogging property, or can it be excused as meta-meta-blogging?

Although, whilst I am talking about my blog, I found that Ross Burton took a reasonable picture of me at FOSDEM (I’m the one on the left, versus Iain Holmes on the right :D), which I’ve cribbed for my photo on the GUADEC speakers list. I was wondering if in exchange for beer (or cake), anyone would like to make me a hackergotchi for my various Planet appearances?

I’ve decided with mjg59 that when referring to Web 2.0, the correct pronounciation of RSS is ‘arse‘ (linked to the definition for people to might spell that word wrongly ;), leading to witty concepts such as ‘arse feeds’, ‘arse readers’, etc. It amused us in the pub anyway.

posted by ramcq @ 6:27 pm
Comments (8) .:. Trackback .:. Permalink

June 1, 2006

if (n00b); warning

I wasted a non-trivial amount of time yesterday debugging code in which I’d accidentally written:

if (...);

Is there any situation where if (foo); can achieve something which just foo; couldn’t? Could the compiler not warn about a conditional that contained no code?

Aggravating lapses in competence aside, I’ve realised I’ve not blogged for months, so over the next few days I’m going to try and write a little about what I’ve been working on recently.

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

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 21, 2005

When exactly is week 1 of 2006?

According to Jeff, I’ve become a smelly Nokia contractor (the reason he stayed with Luis instead of at Mako’s place in Boston, although I’m sure he was referring to Rob Taylor causing the smell). Part of this entails exchanging project schedules with various managers, where time is often talked about in terms of numbered weeks of the year, like: Foo task will be completed by week 42 of 2005. We ran into some problems with varying definitions of these numbers when exchanging schedules with people running on different platforms. Then we realised that even the software we’re using seems to have different ideas about what’s going on too…

  • Outlook and Evolution seem to agree, and define the week as starting on Monday, and the first day of the year is always week 1, even if this results in a truncated week. Hence, week 1 of 2006 starts and ends on Sunday 1st January, and then week 2 begins on Monday 2nd, etc. It’s my belief that this is the correct behaviour as defined by some ISO standard somewhere which governs week numbers.
  • GtkCalendar gets the week number correct, in that the first day of the year is always in week 1, but varies its definition of the first day of the week depending on your locale. This is presumably so that the display of the weeks is correct, but using it to number the weeks results in bogus week numbers. For me in LOCALE=en_GB it claims that week 1 of 2006 starts on Sunday 1st January, and ends on Saturday 7th January, making my week numbers one lower than the rest of the world.
  • Planner uses GtkCalendar for inputting dates, so gets it wrong there as described, but seems to get it wrong in its Gantt chart view in a different way. It has the week starting on Monday, but claims that January 1st 2006 is the last day of week 52 of 2005. This results in week numbers that, match those GtkCalendar give me on weekdays, but differ over weekends, and are still totally bogus when I try and talk about project plans with my managers.

The result is a whole world of pain, and at best causes extreme confusion when we provide documents referring to both dates and week numbers which are inconsistent with each other in their minds, and at worst makes our managers think we’ll have things done a week sooner than we do. I’m not using Evolution at the moment for calendaring stuff, so I can manage if I remember to add one to all my 2006 week numbers when interacting with managers based on GtkCalendar and Planner, but this all seems to be horribly broken. I really don’t want to have to do this for the whole year.

posted by ramcq @ 5:06 pm
Comments (10) .:. 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). :D

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

« Previous PageNext Page »