Home

GCDS, D-Bus, Telepathy, and other items

  • Jul. 6th, 2009 at 12:45 AM
bw

Hello, internet! I'm at the Gran Canaria Desktop Summit. I'm a big fan of this "conference beside a beach" concept: interesting people, talks and projects, in the sun beside the Atlantic. There are a *lot* of Collabora people here; the head-count on the roof of the hotel last night exceeded 20, with still more people arriving today (and others stuck in Madrid). As ever, it's good to catch up with colleagues and others!

Bringing GUADEC and aKademy together seems to have been a partial success. It’s interesting to learn about projects from the other side of the fence, and I've had some productive conversations about the state of using Telepathy in KDE. That said, it’s a bit sad that so much of the cross-desktop schedule seemed to be a talk about a GNOME implementation of a concept, followed by a KDE implementation of the same idea. Maybe putting the duplicated effort in people's faces could help improve matters, but that seems unlikely.

Earlier today I gave a talk about profiling and optimizing D-Bus APIs (grab the slides!), including Bustle, a D-Bus visualization and profiling tool I've written to help visualize bus activity and find issues. I think it went quite well, and it lead to some interesting questions and discussions afterwards. In the talk, I mentioned a few examples of sub-ideal API design in other frameworks, but largely focused on the problems we've found in the Telepathy API, and how we’ve gone about fixing them. A couple of people mentioned that this might have reinforced the impression that Telepathy is really hard to use, which was not what I intended at all! On the contrary, the improvements I talked about have made Telepathy a lot more developer-friendly than it was when I first got involved: both the D-Bus API (if you ignore the deprecated bits) and the higher-level client-side convenience libraries (telepathy-glib and telepathy-qt4) have become significantly easier to use. It's telling that a lot of the changes that have made developers' lives easier have also made the D-Bus API more efficient, sane, and correct.

Of course, there's still room for improvement. As I mentioned, contact lists are quite awkward to work with, which is a shame because most Telepathy UIs would like to use contact lists. :-) libempathy-gtk has a couple of contact list widgets you could reuse, some of which I'd like to see in a smaller, API-stable libtelepathy-gtk; I hear that there's talk to extract the Python contact list widget that's being written for GNOME Games to a library that other Pythonic Telepathy applications (such as pyhallebard for which I can't find a website right now — thanks Anonymous!) could use.

In other news, Tracker 0.7 sounds (among other things) like a potential solution to the silly unfortunate situation where every music player uses its own library database, and thus your DAAP server either needs a separate database or to be built into your music player. Mojito looks pretty interesting; I'd love to see a UI for it on my desktop. It annoys me that I have to check so many disjoint sources at the moment. It might be nice if it could show me blog post titles from my LiveJournal or Facebook contacts; I suppose I should start hacking. :)

Empathy 2.27.0's Private Mode

  • Apr. 1st, 2009 at 1:40 AM
bw

An oft-requested feature in Empathy and Telepathy is support for OTR (Off The Record) encryption of messages, interoperating with the OTR plugin for Pidgin and other popular IM clients. We've been resisting implementing it so far, mainly because we think there are better ways to do end-to-end encryption of messages and audio and video calls over XMPP, which we hope to implement in the not too distant future.

However, a nice aspect of OTR as compared to other encryption solutions is that it allows you to plausibly deny having taken part in a conversation. We believe this to be an example of a wider trend towards deniability on the internet, a position which is backed up by the growing popularity of Tor, and by several modern browsers allowing you to cover your browsing tracks out of the box.

As a result, we've been working hard to help secure your privacy while you're using Empathy. We've had to do this quietly for various legal reasons, but we're proud to announce Empathy's new Private Mode. When enabled, your contact list will be anonymized, as will your entry on your contacts'. Thus, you can conduct conversations with anyone without fear of repercussions from their discovering your identity, or of anyone else knowing the conversation took place:

It's not obvious how to bring these privacy benefits to Jingle video calls. We came up with a technique we refer to as Kitten Secrecy (patents pending in all relevant countries), and managed to integrate it with Empathy with the help of our friends at Collabora Multimedia, who constructed a fantastic GStreamer element using only two leaky queues!

We think the results speak for themselves. The source is not quite ready for release yet, but (lawyers permitting) we hope it'll be public by the end of the month. Hope you can wait until then!

the Telepathy and Empathy teams

bw

Yesterday night mostly featured Psapp at Cargo. I was expecting to have a great time, and they didn't disappoint: it was easily the best live show by a *tronica band I've seen. (Though, that's not really a fair comparison: all of their music is readily re-arrangable for a live band, particularly their more recent tracks.) Energetic, accomplished, quirky, etc. etc. Kazoos? With squeaky lobsters duct-taped to the side? Oh yes. Plus, closing on Everybody Wants To Be A Cat was a fun touch.

Meanwhile, back in a different genre, Pure Reason Revolution have just released their new album, Amor Vincit Omnia. Apparently, at some point in the three years since The Dark Third they decided that their largely guitar-based nü prog sound could be improved by, well, replacing it entirely with synth bass and some more synths and heavily processed downtuned guitars. To my surprise, it works pretty well: it's not what I was expecting, and it feels a bit overproduced, but they haven't got rid of the vocal harmonies, and the songs are still interesting. That said, for a band who go in for Latin titles and general pretentiousness, they should really have learned to pronounce all three words of Deus Ex Machina. It should be interesting to see if and how they adapt older songs to their new style live.

Which brings me to a question: dear readers, is anyone interested in seeing them play at Dingwalls on Tuesday? I have come to have a spare ticket, and it would be nice for it to be used. If so, let me know via whatever means you feel is the most appropriate.

Tags:

It's lunchtime at Collabora Towers!

  • Dec. 10th, 2008 at 12:53 PM
bw

Following the wild success of Telepathy, we're proud to announce our new project:



burgers floating between two heads

Bustle: a D-Bus activity charting tool

  • Nov. 13th, 2008 at 6:37 PM
bw

When working on Telepathy, I've often wanted to be see which D-Bus methods are being called on whom, when signals are emitted, and so on. Timing information is also handy: I'd like to figure out why cold-starting Empathy takes 12 seconds, and it'd be much easier if I could look at a diagram rather than staring at the unreadable output of dbus-monitor.

Previously, Alban wrote a tool that used a patched version of mscgen, and produced appropriate input with a dbus-monitor-like Python script. I wanted some more D-Bus-specific diagrams, and ended up reimplementing both the monitoring component (by forking dbus-monitor, as its --profile output did not contain quite enough information) and the diagram-drawing component (using Cairo). I'm happy to present an initial release of Bustle:

Screenshot of Bustle 0.1

There's a Telepathy-specific hack in the tool to shorten object paths, but it shouldn't make the tool any less useful for looking at other D-Bus traffic.

I haven't made binary packages yet, I'm afraid, so you'll need to grab the source tarball and build it if you want to try it out. In Debian-land, the dependencies are libdbus-1-dev libglib2.0-dev libghc6-mtl-dev libghc6-cairo-dev libghc6-gtk-dev libghc6-parsec-dev; see README in the source tree for how to build and use it.

The astute among you may have noticed from the dependencies that the diagram-building component is implemented in Haskell, using the excellent bindings to Gtk+ and Cairo. I got a prototype going within a few hours, and the strong correctness guarantees that the type system provides meant that I could refactor it mercilessly with confidence. I'm sure that I would have spent many frustrating hours chasing type bugs had I written it in Python, which is a more conventional high-level language for prototyping and writing tools like this. Next time you're frustrated by such bugs, you should give Haskell a try. :-)

Edit: Bustle now lives at willthompson.co.uk/bustle.

Tags:

Fridays at Collabora Towers

  • Oct. 24th, 2008 at 3:57 PM
bw

In what onlookers are already calling “potentially unwise”, our robot overlord ordered various toys from ThinkGeek.

Office toys

Today — being as it is Friday, always the most productive of all days — they arrived! Apparently appropriate tools to control the missile launchers are not yet packaged for Debian. :(

bw

I'm going to the Cambridge Folk Festival this coming long weekend (Thursday 31st July–Sunday 3rd August). The person I was camping with is probably not going to make it, having just had an operation; does anyone want her ticket? The face value is a hundred British pounds; she'll take substantially less. Let me know by the medium of your choice if you're interested!

Tags:

Jonathan Coulton in London in October!

  • Jul. 13th, 2008 at 5:48 PM
bw

It comes to my attention that Jonathan Coulton is putting his clogs back on and coming back to the UK in the autumn. His first show here was great fun; you should go out of your way to see him this time around! Tickets are on sale for a show at Shepherd's Bush Empire on October 30th, which is the city I'm most interested in going to. I'll buy some tickets in the next day or so, so if you want me to get you one (and thus sit with a mostly-known set of people) let me know!

(Oxford people might prefer to see him there two days later, but I'm moving out in 10 days. Sniff.)

Le coming-out du cochon

  • Jun. 7th, 2008 at 1:41 PM
bw

I find the different onomatopoeias used for the same sound in different languages entertaining, not least for the ensuing hilarity when you mispronounce them as English words. When I was in Paris with two of my housemates in December, we found a postcard which serves as a perfect illustration of why I enjoy mispronunciation. According to the back of the card, it depicts “Le coming-out du cochon”.

Le coming-out du cochon.

In the same shop, we found another card featuring a painting of a startled-looking boy playing his accordion, with a monkey dancing on his shoulder. I can’t decide how best to interpret the monkey’s expression.

Accordion Jimmy and his Jivin’ Monkey

bw

The camel has two humps[pdf] was an interesting read; a bit wooly, but believable. One of my favourite paragraphs, tangential to the paper's findings, concerned IDEs:

Programmers, who on the whole like to point and click, often expect that if you make programming point-and-click, then novices will find it easier. The entire field can be summarised as saying “no, they don’t”.

bw

or, How to disable Bug Buddy in recent Gnomes

Apparently Bug Buddy is now a Gtk module. This is great because now every Gtk program gets it for free, not just libgnome applications. But it turns out to be kind of annoying when you're hunting a GHC bug using a test case that uses Gtk2Hs, and it keeps popping up in your face, crying that it doesn't know how to report bugs in the test case.

Some rummaging revealed that it's enabled by gnome-session setting GTK_MODULES=gnomebreakpad at login, so you can export GTK_MODULES= to shut it up.

Update: Sjoerd Simons pointed out that setting GNOME_DISABLE_CRASH_DIALOG=1 is probably what I actually mean. There might be other things in GTK_MODULES which you actually want, so blowing them away might be detrimental to your health.


(Brought to you by the why does Google not give me a useful answer to the search disable bug buddy? department.)

Tags:

First class

  • Apr. 6th, 2008 at 8:11 PM
bw

It's kind of a long story, but I have a massive pile of stamps of various denominations. Returning a keyboard to Amazon cost £6.50, so... I used a few of them.

First class

Tags:

Hidden preferences for useful behaviour

  • Mar. 12th, 2008 at 11:31 AM
bw

I took a look at Thunderbird again today. My main frustration with it in the past has been trying to convince it to check all my IMAP folders for new mail; there are lots of tickyboxes that I would expect to do this, but which don’t, and there’s a tickybox on every single folder enabling checking that folder, which is tedious. Today, I decided to keep at this for more than a few minutes, and use the Google, which turned up:

Thunderbird can download mail from all accounts when you start the program. Just open the Config Editor, search for the preference mail.check_all_imap_folders_for_new, and change its value to true.

I don’t really think that the word “just” belongs in that sentence. I don’t even really know why this is an option, rather than there being a “no seriously, check my email” setting on the account if people really don’t always want this turned on. I thought the point of using something like this was not to have to learn all the knobs you need to twiddle to make it work, but perhaps I’m wrong?

Tags:

Boddington Bees

  • Jan. 31st, 2008 at 1:37 AM
bw

Have you ever noticed that the Boddingtons logo features a pair of bees? I'd vaguely spotted them before, but until earlier today, when someone pointed it out while buying one, it hadn't occurred to me that they're pretty incongruous. What association with bees does Boddingtons have? The only other beer with bees in its logo I know of uses honey as an ingredient (and is much tastier than Boddingtons).

Boddingtons logo

The boring explanation is probably that the Boddingtons company colours have always been black and yellow, or something. Why those colours? We just don't know. But I'd like to think that it's actually a bad pun on the Poddington Peas.

Tags:

Grandstream Ringtone Generator

  • Jan. 30th, 2008 at 6:26 PM
bw

I have a Grandstream GXP2000 SIP phone, courtesy of a special offer and a parent who likes SIP. It's kind of bulky, and is overkill for my uses of it: I don't actually care about it automatically downloading my address book from an arbitrary server, or running quizzes on its OSD. (Seriously, why would anyone do this?) But once I upgraded the firmware (to 1.1.2.27, which apparently you can get from Grandstream if you whine loudly enough, but I just grabbed it from, uh, GrandstreamSucks.com) to stop it crashing whenever I made or received a call (which only happened on one LAN I tried it on), it is pretty good at making and receiving calls, which is what I want it for.

You can stick custom ring tones on it, but they have to be in some bizarro format. Happily, Grandstream ship conversion tools, both for Windows and for Lunix. So I downloaded the latter; it turns out to be a modified SoX. And, oh look: they don't provide the source, or an offer to provide the source. *sigh* So, I requested the source, pointed out that they're violating section 3, and remarked that they could just throw a tarball into the same place they threw the binaries and never deal with any emails like this ever again.

I got a reply pretty quickly!

Attached per your request.

Attached was a zip file, expanding to:

% ls /tmp/sox
handlers.c  ring.c  sox.c  st_i.h

which is clearly not the complete source, and does not include build scripts.

You did not include the scripts used to control compilation. May I have the Makefile, please?

They sent me the Makefile (in a zip file).

% make
make: *** No rule to make target `Makefile.in', needed by `Makefile'.  Stop.

It appears that you have omitted the autoconf-related foo.

Please may I have complete working build scripts, please?

They sent me Makefile.in (in a zip file. This makes it much faster!!!). Of course, the rest of the build scripts and source still aren't there, so this still won't work. But let's play along:

% make
make: *** No rule to make target `configure.in', needed by `configure'.  Stop.

No double pleases this time:

Is it really too difficult to just zip up the entire directory and send it to me?

And apparently showing some anger did the trick:

We were using sox 12.17.4. You will need to use the patch based on that version.

Lo! A tarball containing the entire modified source tree, which when compiled works identically to the static binary they distribute. They still provide no source offer, but I got bored at this point. Here's a copy of the source in case you don't feel like repeating this process to get it.

(I meant to write this back in September, but never got around to it. I finally got sick of the thread sitting in my Inbox. It turns out that I never actually bothered making a custom ringtone...)

Tags:

bw

So you know all those irritating “oh hai i lost my phone” groups that people set up because it’s way too tedious to click through your entire friends list? With any luck, they should become a thing of the past. Behold the Facebook Phonebook!

But wait, what’s this? There’s no “export to VCard” button! Thanks. Thanks a lot.

First person to write a screen-scraper gets a cookie!

Tags:

Compsoc Lightning Talks

  • Nov. 24th, 2007 at 2:25 PM
bw

If you’re not a massive nerd, I was just shown a joke which you might enjoy more than the rest of this post:

What do you call the blood that comes out when teenagers cut themselves?
Emoglobin.

On Thursday, Compsoc had a lightning talk session. Four people spoke:

  • Andrew, the President, spoke about LastGraph (slides);
  • I talked about ikiwiki, which we use behind the scenes for Compsoc’s website;
  • Luke gave a talk about virtual worlds in general and Second Life in particular, and gave a demo;
  • David spoke on “Windows Vs. Linux: Which Is Better?”, featuring a hilarious sketched-and-scanned graph which I would like a copy of.

I’m more impressed with Second Life than I thought I’d be. If only my laptop were speedy enough to run the thing, I’d take a look. (I tried to run it on my i855; the CPU pegged itself then everything died. Hard reset time!) I like the idea of a scripting language where everything is a state machine. It’s a bit of a shame that the only way to get code into or out of Second Life is to copy-paste between the built-in Notepad-alike editor and your proper editor of choice, which presumably does new-fangled things like “version control”. Oh well.

In case you care what I said about ikiwiki, I stuck my slides on the ’tubes. I’ve figured a few things out since the talk, such as how to get post-commit hooks working in Mercurial. Dom has some plans to add branching to Ikiwiki, so that you can make a test instance of the wiki to play with a new plugin just by making a new branch in svn or whatever. I like this idea.

S5 is pretty slick. I’d not used it before. (I didn’t actually use it directly, though: I relied on Pandoc to convert a file written with [Markdown] into an S5 slide show.) Anyway, there’s a lot to be said for having a slide show that you can just fire up in any web browser. (Except Andrew’s Konqueror apparently didn’t understand it. I wonder whether this is S5’s fault or Pandoc’s fault.)

Pandoc is a highly slick piece of software. It converts from any of Markdown, reStructuredText, HTML or LATEχ to Markdown, rst, HTML, LATEχ, man pages, ConTeXt, DocBook, RTF, or S5. It does all kinds of nice things along the way like curlifying quotes, making proper en-dashes, rendering LATEχ expressions as images so you can use it inline in Markdown and have it exported properly as HTML, and so on. It turns out to be a better Markdown processor than markdown itself, and supports extra things like tables, footnotes and so on. It turns out that the output from a practical I finished today was very nearly valid Pandockian table markdown, so I got a well-formatted project report pretty much for free. Oh, and for extra winning, it’s written in Haskell. I like the idea of being able to write man pages and documentation in something other than raw groff or DocBook XML.

I think the lightning talk format worked pretty well for Compsoc; it strikes me as a good way to get people involved. Nice work, committee!

bw

I have a spare ticket for the Zodiac this Friday (19th October). Oceansize are good. You should come see them.

In other news, I'm thinking about going to see God is an Astronaut in London on the 30th. Anyone up for coming along? Also, Porc!

I'm still not sure whether to pretend to be a goth and go see The Birthday Massacre.

lolegg

  • Oct. 7th, 2007 at 1:04 PM
bw

While eating brunch, I decided to make a lolegg. May I present:

two eggs; one says 'does my albumen look big in this?'

Tags:

Latest Month

July 2009
S M T W T F S
   1234
567891011
12131415161718
19202122232425
262728293031 

Syndicate

RSS Atom
Powered by LiveJournal.com
Designed by Tiffany Chow