Robotic Tendencies
The personal blog of Robert McQueen

January 21, 2009


(Apologies in advance for the shameless plug.) It’s possibly a little late to talk about new year’s resolutions, but if anyone is a Facebook user and has given up smoking (or plans to), you might be interested in Quitclock.

My brother Alastair is a health editor for the Bupa private health insurance company, and thought of this neat project which was implemented by my housemate Martin Kleppman, and announced at new year. It helps you keep track of how long since you’ve smoked, how much money you’ve saved, lets you and your friends know how you’re doing, and has health tips about the improvements that you can expect from your new-found abstinence. I’m not a smoker but hopefully someone will find it useful.

posted by ramcq @ 7:47 am
Comments (1) .:. Trackback .:. Permalink

January 21, 2009

My new font rendering technique is unstoppable

You know it’s time to call it a day and write your talk tomorrow when…

I just upgraded Gtk+, Cairo and Pango to the versions in Debian experimental while I was upgrading some Telepathy packages, and got this the next time I loaded OO.o. Magic. But seriously, anyone got any ideas what’s going on?

Update: I switched my Debian mirror to .au and downloaded 3.0.1~rc2, and installed the Gtk+ and GNOME stuff too, and not only did the fonts came back, but it no longer looks like the 80s. Score! Thanks for the tips. Back to my talk…

posted by ramcq @ 7:29 am
Comments (18) .:. Trackback .:. Permalink

July 10, 2008

GUADEC, Telepathy and a Party on a Boat

For everyone at GUADEC, there’s a boat party sponsored by Collabora this evening. Our sponsorship was confirmed after the program was printed so it’s listed anonymously, but it’s mostly sponsored by Collabora, of course with huge thanks to Baris and his team for the organisation, and local sponsors for food and discounted beer. The boat leaves from Kabatas at 9pm today (Thursday). It’s actually pretty close to the 3rd anniversary of Collabora’s incorporation, so I think we could call this our birthday party. 😀

I gave my presentation earlier today about using Telepathy to make collaborative applications. My slides are available, as well as the apps I demoed, which are the python VNC demo based on telepathy-python’s examples, Elliot’s Tic Tac Tube game, and Guillaume and Alban‘s quick hack to Empathy and Vinagre to share your desktop over a stream tube. I was followed up by Senko‘s presentation (slides also available) which had an overview of the libraries and APIs currently available to embed Telepathy functionality in applications on the desktop. The talks were all recorded so hopefully some videos will turn up on-line too.

Speaking about collaborative stuff with Telepathy, we’re really keen to hear from the authors of applications like Abiword, Inkscape, Vinagre, Jokosher, Tomboy, Gobby, etc, to find out how we can help you integrate with Telepathy, what features you need before you can get started, or just try and convince you that it’s a good idea. 🙂 If you’re at GUADEC, come and grab one of the Collaborans or drop by on #telepathy on FreeNode and tell us what you’d like to do and how we can help.

Yesterday after the talks on Soylent and the People project, Travis and I met up with the guys behind the People project (Ali Sabil and Johann Prieur) and some of the Online Desktop team (Owen Taylor and Marina Zhurakhinskaya). We sketched out a way of plugging together Telepathy, People, Soylent and the Online Desktop to deal a lot better with meta-contacts on the desktop, providing “first-class” people objects. It all looks pretty promising and hopefully we’ll all find some time to make moves towards our vision.

This afternoon at 3:30pm, Olivier is also presenting our work on Farsight 2, which is really cool stuff and should include some exciting demos of the multi-person video conferencing stuff we’ve been doing.

More generally, GUADEC is awesome. I’m having a great time in Istanbul (despite it being pretty hot for a pale-faced Brit like me), and enjoying the sights and sounds of such an interesting city and culture. I’ve caught up with many of the usual suspects (like Lennart, who never turns down the chance to turn up at a conference and sample the local bars and clubs), and had some great discussions.

posted by ramcq @ 11:33 am
Comments (1) .:. Trackback .:. Permalink

June 9, 2008

Xen virtual interfaces with more than one IP

I’ve got a load of boxes running Debian etch with Xen 3.0.3 with routed networking (rather than bridged, so I can do iptables and reverse path filtering etc in dom0). Since upgrading from Xen 2.x many moons ago, I’ve not known how to configure one virtual interface to have more than one IP. In the meantime, I’ve ended up doing nonsense like providing a VM with two interfaces just to give it two IPs. However, this interacts really badly with reverse path filtering unless you do a bunch of source-routing rocket science in the domU to send out through the right vif.

So, I looked at the vif-route script and it seems to support iterating through a space-separated list of IPs, but I was totally unable to find any documentation or mailing list posts explaining how to format the IPs within the formerly-Python key/value Xen domain config file syntax. After a while playing with the parser and various levels of quoting, I found that actually, the correct amount of quoting is none at all, and also uncovered a bug in another script which prevents it from working correctly. In the hope that this might help others using Google and trying to achieve the same as me, here is my recipe for configuring Xen vif devices to have multiple IPs (note that I think this might be specific to Xen 3.0.x, as I believe 3.2.x introduces config files in the S-expression format which is what xenstore uses internally):

  1. Configure your VM using this surprisingly obvious, but somewhat dubious syntax (including a second argument just to prove that yes, it really does work like that):

    vif=['ip=, mac=00:16:3e:01:23:45']

    When parsed into SXP by xm create, this sets the ip value correctly as a space separated list as the scripts expect:

    (device (vif (ip '') (mac 00:16:3e:01:23:45)))
  2. Fix the bug in /etc/xen/scripts/

    --- /etc/xen/scripts/ 2008-06-09 01:14:23.065065119 +0100
    +++ /etc/xen/scripts/ 2008-06-09 01:11:06.599986274 +0100
    @@ -103,7 +103,7 @@
    if [ "$ip" != "" ]
    local addr
    - for addr in "$ip"
    + for addr in $ip
    frob_iptable -s "$addr"
  3. Set up multi-homed or aliased interfaces as normal in the domU (depending if you’re a ip or an ifconfig kinda guy).
  4. Profit!

posted by ramcq @ 12:40 am
Comments (5) .:. Trackback .:. Permalink

June 5, 2008


In the office, Christian has just unwrapped a very carefully packed box containing a bulging tin of Surströmming. Apparently due to the “unique” smell you have to open it outside, and he’s invited people to come to his house to try it. Now, I’m not keen on various types of fish even at the best of times, so add a year or so of fermentation, and I am very, very scared. In unrelated news, some people in the office have decided to take up vegetarianism.

posted by ramcq @ 11:08 am
Comments (8) .:. Trackback .:. Permalink

April 18, 2008

Lazyweb request: gadgets I would like to have

Last night I thought of a few gadgets which I’d like to have, and although I’m pretty sure you should be able to get hold of them, I had trouble finding anything that looked quite right:

  • Alarm clock which makes coffee: I can’t be the only one who finds it hard to bootstrap my days because I have to get out of bed and make the first coffee of the day before I’ve had any coffee. My parents had a machine which was an alarm clock which made tea (very noisily) at the appropriate time in the morning. Surely there should be a similar device which can display the time and make (at least passable) coffee instead? Be it an alarm clock with a sideline in making coffee, or a coffee machine with a built in timer. I’ve noticed some of Gaggia’s bean-to-cup machines claim to have 24-hour clocks, but does that mean they have a timer function? We just don’t know.
  • Decent watch with USB storage: I found some watches online last night which had USB storage built in, some with a little USB connector that folded out, some with a mini/micro USB connector on the side, with the idea I could store (maybe parts of) my GPG and SSH keys on it, and maybe a bootable Debian installer/rescue system. The thing is, I have a reasonably nice Timex Expedition watch at the moment which I quite like: it has an electro-luminescent analog display for the middle of the night, and a digital bit for the date, alarms and multiple time-zones. The USB-enabled watches I saw didn’t look that great as watches, but I might be wrong. Does anyone have a watch that features USB storage that doesn’t compromise too much on the watch functionality? Maybe I should just give up on this one and go for the rugged USB stick on the keyring approach.
  • Video output over USB: I have a reasonably new HP 2510P laptop which I also use as my main machine at work with a docking station, TFT, keyboard, mouse, etc. However, as a machine for watching DVDs or other videos on at home, it’s a bit on the small side. I have an olde-worlde big flatscreen TV at home (which is not as good as Christian‘s flat-screen blueray surround sound movie set-up, but I think I retain the moral high ground on taste in films), but my laptop doesn’t have any video out. Is there a USB 2.0 widget which produces composite or S-Video output which I can feed to my TV, that will work with Linux, or should I just get a scan converter of some sort so I can use the VGA output?

So, answers on a postcard…

posted by ramcq @ 11:42 am
Comments (19) .:. Trackback .:. Permalink

May 11, 2007

Tubes and Planets

Daf blogged earlier about some of the work we’ve done thus far for the One Laptop Per Child project. Tubes (although the picture looks more like snakes if you ask me :D) are a really cool technology which should let the OLPC activity authors just work on their activity, and use D-Bus and Telepathy to take care of the communications.

At the moment our implementation for Gabble (Telepathy’s XMPP backend) is pretty rudimentary and sends all data via the server, but this already lets us layer multi-user tubes over XMPP multi-user chat rooms and have it act like a bus where each member of the room is also a D-Bus endpoint. You can export objects, call methods and emit signals just as normal.

Next up we’re going to implement them in Salut (the link-local XMPP backend, which we’ll use for communications over OLPC’s mesh networking) using good old TCP for the one-to-one connections, and some of Sjoerd’s more exciting link-local multicast stuff for multi-user tubes. To make tubes work for desktop clients we’re going to go on and look at more advanced Jingle-based ICE NAT traversal stuff.

Maybe one of our next ports of call should be raw stream tubes for existing TCP protocols, then we can make a reality from X over Jabber (or whatever other protocol) that Matthew Allum was wondering about. 🙂

I’ve also just stolen Planet Collabora from Daf’s home directory and put it on its own subdomain, so you can add it to your feed readers and keep track of what we’re up to with Telepathy, Farsight and friends.

posted by ramcq @ 2:03 am
Comments (1) .:. Trackback .:. Permalink

January 18, 2007

LCA and hiring

I’m in Sydney for LCA 2007 this week, and this should also be my debut post on the conference planet. This is the first time I’ve made it to the other side of the world for this conference, and I’m really glad I came. It’s definitely one of the cooler conferences I’ve been to, slickly run and with an excellent programme of talks, so massive congratulations and thanks are due to the organisers and volunteers. The weather’s a stark contrast to the French Alps (I was skiing last week!), although thankfully it’s quite mild at the moment and not gotten too hot for a Pom like me. 😀 It’s always cool to catch up with people who I’ve not seen for a while, and put names to faces for a whole load of others I’ve not met yet. If you’re around, reading this in time, and interested in the Telepathy VOIP/IM framework, my talk is today (Friday) at 11am. If shameless bribes help, I’ve also got some funky Collabora and Telepathy shirts I need to give away before I head back to the UK.

The second bit is that Collabora‘s looking for a couple of people to either join us in Cambridge (UK) or work with us as a subcontractor. We’re currently doing loads of cool and totally open source stuff with IM, voice & video streaming and collaboration technologies. We’re looking for people with experience with some/many/all of C, Python, Glib/Gtk, D-Bus, GStreamer and RTP. If you’re interested, send mail to jobs(á), or if you’re around at LCA then come and find me if you want a chat.

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

December 16, 2006

Telepathy and OLPC (part 2)

I’ve been away from the office for a couple of days, but when I got back to Cambridge, Daf and Sjoerd had some pretty cool stuff to show me:

These screenshots are taken by using an environment variable to tell stream-engine just to create an xvimagesink for any call, but Daf’s writing a simple pygtk UI which handles embedding the output window into the UI properly and should make placing/receiving calls slightly less mystical. Even so, a graphical video call APP in ~150 lines of python… not too bad if you ask me. 🙂

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

December 12, 2006

Telepathy and OLPC

We got an OLPC prototype at Collabora last week, and have been playing with the Telepathy VOIP/IM framework on the devices. Using telepathy-gabble’s (our XMPP backend) Jingle implementation, and telepathy-stream-engine with the Farsight GStreamer RTP library, we got a bidirectional voice/video call going pretty quickly using a few lines of python and a bit of hackery (patches to follow :D).

We’re going to polish this up into an activity you can install, and also Sjoerd Simons has been working with us on telepathy-salut, an XMPP Link-Local (also known as Rendezvous, Bonjour, iChat, whatever) backend which we’re hoping to also get working as part of the OLPC platform.

posted by ramcq @ 8:37 pm
Comments (4) .:. Trackback .:. Permalink

« Previous PageNext Page »