Entries Tagged 'Uncategorized' ↓

RXMPP: an R library for XMPP based on Wocky

My friend David Lawrence Miller likes the internet, and also likes statistics. (He has many other admirable qualities, but these are the two most pertinent to this bulletin.) He spends some of his days writing programs in R, which he then runs on one of a number of servers. He wanted his R programs to send him messages over Google Talk to report their progress.

Naturally, I suggested he use Wocky, everyone’s favourite GObject-flavoured XMPP library. (Do not confuse.) And lo! he’s started RXMPP, a simple R library for sending IMs. He’s developing on Mac OS X; it should work on Linux and Windows just as well, though.

(As an aside: I wonder if anyone would be interested in maintaining a Wocky framework for OS X? Currently one has to install glib via MacPorts, and then build Wocky from Git, to hack on RXMPP on OS X.)

Sojourner 0.2: coloured and communitized

Another week, another release of Sojourner; this time in glorious 32-bit colour, and featuring its first community contribution!

Screenshot of Sojourner's favourites window Screenshot of Sojourner's event details page

The eagle-eyed reader will have noticed that, in the favourite talks in the screenshot above, Andrew‘s Django talk sadly clashes with Raúl‘s Folks talk. I hadn’t noticed, until Joaquim Rocha sent patches adding a button that shows which of your favourites clash with the event you’re viewing. Now I have a dilemma on my hands… Joaquim also cleaned up some of my less-beautiful code. Thank you!

The event lists are now easier to skim-read, with subheaders for the day and coloured swatches representing the track the talk is part of. I don’t know if in practice people will actually associate the colours with tracks, but I do think than the pastel stripe at the left-hand side makes the list easier on the eye. I initially wanted to re-use the colours on the official schedule, but didn’t really want to hardcode a massive list of colours (and the schedule XML doesn’t include them), so they’re generated based on a hash of the track name. (Thanks to Sjoerd Simons for the “vary H, fix S and V” tip for generating a palette.)

The package should be available from extras-testing by the time you read this.

Sojourner: a(nother) FOSDEM schedule app for the N900

Last year, I threw together a primitive FOSDEM schedule application for the N900. A year later—just in time for FOSDEM 2011, which I am attending!—it’s back, with more polish and a catchier name: Sojourner.

A screenshot of Sojourner's main window A screenshot of Sojourner's single event view

New since last time around:

  • You can refresh the schedule from within the app;
  • It works in portrait mode;
  • It generally looks a bit better, with margins and button sizes matching other Fremantle applications more closely;
  • It has, yunno, icons and packaging.

Most of those fall firmly into the “well of course it should be like that”. I told you it was primitive the first time around. :-) There are a few more screenshots on my Sojourner page, or you can install it from Fremantle Extras. It’s currently in extras-testing; please feel free to leave feedback there or here. The wiki on Gitorious has a laundry list of suggestions for improvements, as well as a few buglets I’m aware of. Of course, if you want to get involved, I’d be delighted. It’s written in Python, using Gtk+ and Hildon. Non-code-wise, the artwork could definitely use some love (I just threw it together in a few minutes in the Gimp) and some more careful thought about the user experience might be nice.


Today, in “ridiculous specification I’ve come across in the course of entirely legitimate work” …

In case just typing a status message wasn’t good enough, XEP-0108: User Activity defines an XMPP extension for telling your contacts precisely what you’re up to in a machine-readable form … as long as it’s one of a rigidly-defined taxonomy of activities. Buying groceries is a kind of chore, whereas shopping is supposedly a form of relaxation; I think some might disagree that you’re inactive while praying.

RFC 4480: Rich Presence Extensions to the Presence Information Data Format goes a step further and allows you to specify that you’re in a location that’s too dark for video, too noisy for audio, and inappropriate for IM. Your mood can be “invincible”, but—distressingly—neither “quixotic” nor “apathetic” are permitted. I think I’ll stick to LiveJournal.

MeeGo Conference: Telepathy 1.0 roadmap

The queue for registration

Along with something like 15 other Collaborans, I’m at the MeeGo Conference 2010 in Dublin. I’ve somehow managed never to visit Ireland before, so I’m hoping to find some time to explore a bit while I’m here.

I’m giving a talk titled The Road to Telepathy 1.0 tomorrow at 9am (yerk!) in the Vavasour Suite. I’ll be sketching out a rough roadmap, or rather collection of related goals and schedules; also, there’ll be an update on ongoing feature development. Right afterwards, at 9.30, the inimitable Mikhail Zabaluev is speaking on Developing Communication Protocol Implementations in Telepathy, based on Nokia’s experience developing SIP, cellular and Skype backends for Telepathy over the past years.

Also, at the Collabora stand we’re demoing DSP-accelerated video calls on an OMAP board using GStreamer, and integration with various services in MeeGo Netbook via Telepathy. Collabora folks working on all kinds of projects will be around; see you there!

Bustle 0.2.3: now with pairs of D-Bus traffic charts side-by-side

I just released Bustle 0.2.3. The notable improvement is that you can now view a pair of D-Bus traffic logs side-by-side on the same chart. So if you’ve taken a trace of the session bus and the system bus, and want to see how the bus traffic matches up on the two, this is the release you’ve been waiting for! (If not, well, I made the ugly pink lines a more tasteful grey, and fixed some bugs you never noticed.)

While I was refactoring to support the second log, I would have liked to have been able to run Bustle in a “batch” mode to render straight to a file, and then run some kind of visual diff tool to compare the output of the branch versus the last release. Coincidentally, when I opened my inbox, I found a mail requesting the same feature! I imagine that this could come in handy for producing automated reports: maybe you’d have a weekly cron job that produces some stats about the traffic using bustle-count and, if it goes significantly up or down, sends an email to tick off or congratulate the relevant team as appropriate with an attached diagram. ;-) If anyone fancied having a crack at this, it shouldn’t be too hard.

Sending SMSes with Empathy and Telepathy-Ring

Early last month, Lassi Syrjälä released Telepathy-Ring, Nokia’s Telepathy connection manager for GSM telephony, under the LGPL. The version used on the N900 talks to a proprietary daemon to drive the cellular hardware, but this new 2.x.y series has been ported to oFono, Intel and Nokia’s Free cellular modem daemon. I was trying out Ring using oFono’s phone simulator backend, until it was pointed out that oFono also supports my laptop’s built-in GSM chip. Oh really? Let’s see…

A few minutes of tweaking later, and I was looking at an apparently-unremarkable Empathy conversation window:

Screenshot of an SMS conversation in Empathy

Ring needed a few little hacks to get this going, mostly because laptops’ GSM chips don’t generally support making GSM calls, which Ring expects to be able to do. But I didn’t have to touch any other Telepathy components’ source: I installed my Ring branch, opened the Empathy accounts dialog, created a new “tel” account, and here we are. +447771██████ in that screenshot is my real actual phone, and this conversation looks just how you’d expect.

Of course, right now this is a proof-of-concept; it’s not really ready for non-developers. I’m planning to clean up my Ring patches for submission upstream over the next few weeks, and will try to trick someone into writing a custom account configuration UI for Empathy; hopefully we can get this working properly pretty soon! Thanks to Lassi, Pekka Pessi (Ring’s original author), and others at Maemo; the oFono team; and other Telepathy and Empathy hackers for making this so straightforward!

Foschart: a FOSDEM schedule app for the N900

Hello internet! I am at FOSDEM 2010 in Brussels. I tried the fosdem-maemo schedule application for my Nokia N900, and decided to write an alternative app which is easier to use with my fingers, and looks more like a Maemo application.

The result is foschart. It’s just something I knocked together in a few hours yesterday, but it’s pretty usable already. It supports showing talks grouped by track, by room, and just in chronological order, and a list of favourites. It’s all happily kinetic-scrollable, etc., and is very snappy once it’s started.

There’s no proper release or package yet; if you want to package it up properly, please do! But for now, apt-get install python-hildon, then copy foschart.py and schedule.xml to /opt/foschart, and foschart.desktop to /usr/share/applications/hildon. Then it should show up in your application list, and away you go. As ever, patches welcome. Enjoy!


The illustrious Jonny Lamb has made a package!

Clearing unwanted recent tags from the N900 photo viewer

The camera/photo viewer on the N900 has a pretty nice tag cloud widget, which lets you quickly label your photos before you upload them to Flickr. (The novelty hasn’t yet worn off!) But an autocompletion accident left me with a tag in the widget that I’d really prefer not to be there when I’m showing off my nice new phone to people.

I spent a happy¹ few hours trying to figure out where it gets the set of tags from. The viewer asks Tracker for the most commonly-used tags, but this tag wasn’t used on any of my photos, so wasn’t coming from there. In fact, it didn’t appear in any of Tracker’s database files! After a bit of investigation, I discovered that the photo viewer keeps its own independent set of recently-used tags, not in Tracker, but in GConf, at /apps/osso/image-viewer/recent_tags. Lest you should find yourself in my position, a quick

gconftool --set --type list --list-type=string
/apps/osso/image-viewer/recent_tags '[]'

will expunged your undesired utterances from the cloud. Bug report time. Next stop: finding a tool that lets the user remove typos from the autocompletion database …

1. Grr.

Bustle 0.2.1

A couple of days ago, I released version 0.2.1 of Bustle, someone’s favourite D-Bus profiler. As the version number suggests, there aren’t really any big new features; most of the changes just make it a bit nicer to use, like showing you all the bus names a service owns, ellipsizing strings, a slightly less spartan UI, etc. Having finally gotten around to cutting a release, I’ve started wondering what to work on next. There are various small things I have in mind, such as searching, filtering, integrating the various statistic tools (bustle-time and friends) into the UI, and so on, but it’d be nice to have a larger goal to work towards.

One recurring feature request is the ability to see messages’ arguments. This isn’t currently possible because the simple plain-text logs produced by the monitor (which is a variation on the theme of dbus-monitor --profile) only includes the message header. I’ve thought for a while that the right thing to do would be to log the raw dbus messages, together with a timestamp, but wasn’t sure what the files would look like. (Maybe shove the timestamps into the message headers?) Rob had a nice idea: why not log to pcap files? This avoids inventing a new format—the UI would just use libpcap and feed each message through the dbus parser—and would also let you look at the logs in WireShark, if you’re into that kind of thing. I’m hoping to find some time to give this a shot soon. (Maybe on a cold Christmas evening, in front of a fire?)

In the meantime, have a peek at what your D-Bus-using applications are up to, and let me know what’s missing!