Saturday 19 December 2009

Looking for Leftfield

I bought Leftfield's “Leftism” audio CD a couple of weeks ago, and managed to scratch it to death trying to put it in the tray of a vertical CD drive (and closing the tray with the CD falling out of it).

Does anyone have some rips of the CD for my legitimately purchased music?

Wednesday 16 December 2009

Freezing Totem with text subtitles?

Then ask your distribution to backport the patches.

This has been fixed in Fedora about a month ago.

Thursday 26 November 2009

Sound Juicer "So give me a hug, it's your birthday" 2.26.2

Ross should be celebrating his birthday, so here comes a release of the old stable sound-juicer, with plenty of fixes you already saw in 2.28.1.

* Fix warning on startup when the configured drive doesn't exist (Bastien Nocera)
* Fix a number of leaks and crashes when the audio CD isn't known in MusicBrainz (BN)
* Disable paranoia when playing back the CD (BN)
* Fix CD-Text metadata using gvfs to work (BN)
* Don't truncate submission URLs (BN)
* Set MusicBrainz UUID in files, not a full URL (Philipp Wolfer)

Friday 20 November 2009

Sticky tape

Google might know how to write a web browser, but writing an OS certainly isn't their forte.

You might have seen Matthew's mention of the acpid hacks, some of the other sources are just as funny to read.

Thursday 19 November 2009

Fedora 12, and beyond

Fedora 12

Fedora 12 got released yesterday, with plenty of nice new features.

My hand in that was the running bluetoothd on-demand, work on gnome-volume-control and its profile switching (meaning dead-easy 5.1 support), enhancements in the GNOME Bluetooth UI (which you probably already saw if you use Fedora 11), the PAN support in NetworkManager.

The stuff I really like is:
- the Bluetooth PAN support, so I can install the non-free wireless drivers on my laptop (which lacks Ethernet)
- the new notification theme
- the awesome work on KMS, and performance enhancements, which means I now use a GL compositing manager on all my machines
- the out-of-the-box mounting of my iPod Touch, though music syncing is still some way away.

You might want to read Matthias' interview for the Fedora 12 release.

Fedora 13

More recently work has started on Fedora 13.

nautilus-sendto got its own plugin API now, so you can extend it whilst keeping the code closer to your application or library. Empathy in GNOME 2.30 will take advantage of that. Pascal Terjan worked on the Pidgin plugin to make it use the Pidgin D-Bus interface, which means we don't need a Pidgin plugin to talk to nautilus-sendto anymore. Both changes are in Fedora 12 and Fedora 13.

Totem finally got some of my time, and a number of bug fixes have gone into the GNOME 2.28 and unstable branches. In master, we now have a nice OSD, disk-buffering of streams, reverse frame-stepping, and RTSP/HTTP authentication. Much thanks to the GStreamer guys, and Wim in particular, for making those last 3 items possible in Totem.

There's a few more items I'm still working on that'll sure please the crowds :)

Wednesday 11 November 2009

A little OSD

Totem in master now has purdy OSD when you press a key, or a key on your remote control, and you're in fullscreen. Note that this requires compositing.

Screenshot streaming the Avatar HD trailer

Thursday 5 November 2009

Get Moblin, get GNOME

If you were to install the new Moblin 2.1 somewhere, you'd be getting a gnome-bluetooth powered Bluetooth panel.

All the code lives upstream in the gnome-bluetooth module on master.

Wednesday 4 November 2009

No more stuttering

Today, as some of you guessed from my teaser yesterday, I finished implementing on-disk buffering in Totem, using playbin2's new features.

Using Totem in master with this gstreamer patch, Totem will start playing back videos as soon as enough buffering has been done on disk.

Note that this will only work for QuickTime and FLV streams, but that means that the YouTube Totem plugin and streaming trailers from Apple's website just got better, and should allow us to implement stream saving very soon.

Tuesday 3 November 2009

Notice anything?

Answers on a postcard (or in the comments).

Thursday 29 October 2009

Bug fixing galore!

In the past couple of weeks, we've been hard at work fixing bugs for the next Fedora release, Fedora 12.

We've had new releases for Totem - with loads of warnings, crashers, and behavioural bugs fixed -, for gnome-bluetooth - with upstream fixes for some killswitch handling problems -.

I've also helped out fixing bluriness in gnome-settings-daemon, and made gnome-power-manager use the same OSD code as the volume pop-ups.

As a relief from all the bug fixing, I've started working on a Bluetooth input setup helper, which will help you set up a mouse and keyboard on Bluetooth should you find yourself without any connected to your computer. This should be helpful to users of Logitech, or Dell branded dongles.

Thursday 1 October 2009

Pushing patches

AFC backend

A couple of hours ago, I committed the AFC backend to gvfs. This means you should now be able to access the storage on your iPhones and iPod Touches. Note that this does not include music syncing yet, as the feature would belong in libgpod.

This feature has also available in Fedora 12 repositories for a couple of weeks. Just make sure you install gvfs-afc.

Moblin work

After updating gupnp in rawhide a bit too quick, I was left with the task to port bickley to gupnp 0.13. Rygel is working nicely with this after a bit of back and forth with Zeeshan. The preferences still need a bit of love though.

I also ported network-manager-netbook to NetworkManager 0.8 with Dan's help.

Finally, dalston's volume control bits got updated cut'n'paste code from the latest gnome-media.

All the patches are sitting in the upstream bugzillas or repos, and are already in the Fedora 12 Moblin packages.

Wednesday 23 September 2009

nautilus-sendto plugin API

As promised in the nautilus-sendto module proposal, I fixed up the plugin API, wrote API docs, and exported the plugin functionality.

I've already patched Empathy to carry its own nautilus-sendto plugin, and will be moving the Pidgin and Bluetooth plugins in the near future.

Monday 21 September 2009

Too many modules

Today I released GNOME 2.28.0 versions of:
- totem-pl-parser and totem
- gnome-bluetooth
- gnome-media
- and gnome-user-share

I also released a new nautilus-sendto, with a revised GNOME-ish version number.

Both gnome-bluetooth and totem are also due 2.28.1 releases to fix a couple of buglets.

Thursday 17 September 2009

Some little tools

GNOME 2.28 and Fedora 12 are approaching, so I'm in full bug fixing mode.

I've been using clang on totem-pl-parser as a test:

$ CFLAGS=-I/usr/lib/gcc/x86_64-redhat-linux/4.4.1/include/ scan-build -o clang ./ --prefix=/usr/ --libdir=/usr/lib64 --sysconfdir=/etc --localstatedir=/var
$ CFLAGS=-I/usr/lib/gcc/x86_64-redhat-linux/4.4.1/include/ scan-build -o clang make

All the little bugs will be listed in clang/index.html. I fixed most of those, and pushed them using git-bz:

$ git bz file totem-pl-parser/general HEAD~10..

And voila, a nice list of patches, ready to apply.

Saturday 25 July 2009

GUADEC digits

Have you been to 8, 9, 10 GUADECs?

Let us know! We're still looking for a GNOMie with a perfect attendance.

Thursday 23 July 2009

Bad at updates, Easy 5.1

Looks like I didn't blog one bit after GCDS (or usefully during). I won't do it usefully now either.

gnome-volume-control (in master) has profile switching support. You can now disable devices you're not interested in, and setup 5.1 support for your desktop in 2 clicks.

Input switches (and highlights of the volume control BoF) to come later.

Wednesday 8 July 2009


Remember, tomorrow (Thursday 9th July 2009), 15:00 to 17:00 ¹, is FreeFA.

Join in at around 14:40-45, join us in front of the main University Building. We'll get to the pitch by foot.

Summing up:
  • Bring your football kit (trainers, or moulded shoes, shinpads)
  • Bring T-Shirts of different colours (at least a clear and dark one)
  • Show up at 14:40
The teams haven't been set up yet, as we don't know whether we'll have smaller goals available (it's currently setup as a full-fledged 11-a-side pitch).

If you show up late, you won't be able to play...

¹: Might last a bit longer

Saturday 4 July 2009

«Todos es mejor con Bluetooth»

Ladies and gents. Tomorrow, the great Bluetooth presentation! Come and join in the chuckles. A superb presentation that the New York Times calls «Inexplicably enticing», an anonymous KDE developer say it's «Dumbed down, and not Cross-desktop und so weiter».

Where: Palacio de la Música
When: 12:00 to 12:30
Who: Y.T.
What: ¡la mejor presentación de Bluetooth en el mundo!

Thursday 2 July 2009

GCDS: Discrimination by accent

My level of Spanish being what it is, and my accent being what it is, my cab ride to Las Palmas cost me some €60 from the airport, and that's after the cabbie switched off the meter...

Apparently, the «Catalina Park» apartments booked by the nice people at the GNOME Foundation, have a namesake near Playa de Inglés.

From top to bottom: where I wanted to go, where I was, where I ended up (locations provided «by ear», do not try to replicate at home). Yippee!


In other news the FreeFA tournament is going to happen next Thursday, from 15:00 to 17:00. I'll put the details onto the Wiki when I can remember my password.

Tuesday 30 June 2009

Secure Simple Pairing support, now in Fedora 11

I updated gnome-bluetooth in Fedora 11, and that new version supports Secure Simple Pairing, an easier pairing mode for Bluetooth 2.1 devices.

The update currently lives in the updates-testing repository, but will be in the normal updates when we've had enough good feedback about it.

If you have Bluetooth devices in your possession that don't work as expected with your systems, and fancied a bit of playful testing, find me at GCDS, and we'll try and fix that.

FreeFA '09

If you're interested in joining in for some «Futbol» at GCDS, add your name to the list on the Wiki, and bring your shoes/shinpads/other bits of kit.

We don't have a date and time settled for it yet, so make sure you check the schedule when at the conference.

As every year, if you don't bring shinpads and you break your leg in two, you'll have little sympathy.

Monday 29 June 2009

fprintd integration with KDE

I was pointed today to this blog, which shows the integration work being done in KDE with fprintd. Happy to see all that work on the daemon and the documentation is coming to good use.

Friday 26 June 2009

DBusGProxy introspection, where art thou?

I tried to beat the wash cycle on my washing machine at doing something useful[1].

Tried to add Introspection support to gnome-bluetooth.

The result nearly works, as it seems that there's no bindings for DBusGProxy in gobject-introspection...
** WARNING **: Entry 'DBusGProxy' not found
If somebody knows...

[1]: I played football twice today, and needed to wash my kit again, as I'll be playing tomorrow, though I hope we'll play better than we did this evening, shrug.

Wednesday 24 June 2009

A little (geo)clue

Over the past week, I've been working a little on Geoclue stuff.

First up is a Geoclue plugin for gnome-bluetooth, which allows you to set up your Bluetooth GPS device.

This will work best with the patches in the Geoclue bugzilla, so that the selection is instant-apply.

The second piece of work is a Skyhook Geoclue provider. This code manages to put me within 20 yards of my house, though we should be getting NetworkManager's help to get the AP's MAC address.

Finally, my Geoclue Firefox patch should soon be getting reviewed. It's been long enough that I forgot how to build Mozilla (probably a good thing).

As an added bonus, I've sent a patch against NetworkManager to Dan with a gnome-bluetooth plugin, which should allow users to just tick a box to set up PANU Internet access.

Now, we just need somebody reviewing all those Geoclue patches. Maintainer, where are you at?

Thursday 18 June 2009

gdb trick

I had a problem with gnome-bluetooth's wizard, a couple of days ago, that I couldn't reproduce when running under gdb. Turns out that I'm too slow at typing or something, and the problem was a race (though a slow one).

There's a few tips and tricks in this class material. The one I was interested in was:
(gdb) break foobar_new
(gdb) commands
thread apply all bt

Then, every time you hit that break point, you'll get a backtrace, and the program will continue. I fixed that bug I saw :)

I'm upstream!

Or at least, my Wacom Bluetooth tablet driver is. I was wondering in which tree it was lost. You'll still need a patch to bluetoothd though.

Tuesday 16 June 2009

Simplez! Simple Pairing support now in gnome-bluetooth.

After a furious hacking session (and a bunch of paper-drawn mockups), Simple Pairing support is now in gnome-bluetooth.

Simple Pairing is an optional part of the Bluetooth 2.1 spec, which makes pairing Bluetooth device simpler. For most devices, simply check that the passkey matches on your computer and the device, or for headsets, do nothing, and voila, paired.

Code is in git master, release to follow shortly.

Thursday 4 June 2009


Just got back from France, where my best friend was getting married to his best friend. I didn't see civilisation for 5 days, and enjoyed food, wine, and the swimming-pool instead.

Just before I left Jackaboutboul interviewed me about the fingerprint reader support in Fedora 11. I hope I gave enough credit to Daniel Drake and Ray Strode for their work, without which mine wouldn't look half as good.

PS: I was tired when I wrote the answers, and my grammar and vocabulary is sub-par. I'm ashamed :)

Thursday 28 May 2009

Plugins, here they come

We now have plugins in gnome-bluetooth. The purpose is to allow third-party applications to offer additional setup steps for the Bluetooth device you just configured.

The above screenshot shows an example plugin that NetworkManager could provide, and with the click of a button, you'd have PAN set up between your computer and your mobile phone.

If your phone supports SyncML, then Conduit could show a button to allow setting up syncing, or when setting a GPS, you could have a button to set it up as the default GPS device for GeoClue.

Those plugin-provided widgets will also be available in a device properties dialogue for the Bluetooth preferences, when I get to it.

PS: Diego has kindly agreed to help out with the FreeFA organisation.
PPS: The widget layout is pretty broken, feel free to send patches through bugzilla.

Wednesday 27 May 2009

Dear Diego, let's have a wager

Diego, here's a little bet for you. The supporter of the losing team in tonight's final will organise the FreeFA tournament?

Friday 22 May 2009

Sixaxis support in BlueZ

Getting the Sixaxis PlayStation 3 joypad to work with Linux (in Bluetooth mode) is a bit of a pain. There were my various attempts at cleaning up the code lying around on the Internet, and hacks involving hidd.

The way to set the pad up in Bluetooth mode is fairly straight forward:
  • Open the USB device
  • Get the device's Bluetooth address through magic USB commands
  • Write your Bluetooth adapter's address in the pad (magic USB commands again), and then give the device back to the USB HID driver, so that it works as a pad through USB.
  • Set up the internals of bluetoothd so it recognises the device, and allows it to connect to your computer
  • When the device connects through Bluetooth, poke at it with magic commands again to enable its HID mode (code is already in bluetoothd's input plugin)
Yesterday I refactored my code as a bluetoothd plugin.

First up, detecting the device being plugged in. I wanted to use DeviceKit's GObject helper library, but it uses the D-Bus DeviceKit daemon which will be going away (note, this is just the DeviceKit daemon itself, not the -power, or -disks "sub"-daemons), in favour of libudev usage.

So I ported devkit-gobject to use libudev directly. Patch is currently being reviewed (it's in DavidZ's inbox), and it should show up soon in udev-extras under a different namespace.

After a bit of work, I had a bluetoothd plugin that detected PS3 pads being plugged in, and did the necessary work to make bluetoothd recognise it on plug.

Next, finishing up the libudev GObject helper library, and getting the bluetoothd plugin reviewed. And it would be nice to finally get the extra functionality merged into a hid driver in the kernel.

PS: Any info on the PS3 Headset or the keypad?

Thursday 21 May 2009

I really haz 5.1

As promised, gnome-volume-control in master now has fade and subwoofer support, as well as instant-apply for the default output selection. We just need to be able to set it up for 5.1 now...

I haz 5.1!

Monday 18 May 2009

Bluetooth support in NetworkManager

Over the past week, with rock star Dan Williams, we've been working on Bluetooth support in NetworkManager. You can now access the Internet using your Bluetooth mobile phone as long as:
  1. You want to use PAN, and not DUN
  2. You're ready to use the console to set it up
  3. and finally, you have the fixes lying on my hard-drive (or in Dan's e-mail inbox)
This should hopefully be working for Fedora 12.

Dell Mini 10, gah

A couple of months ago, I received a loaded Dell Mini 10, running a version of Ubuntu from last year, loaded up with proprietary and custom drivers.

If you look at it without giving a second thought at the kit inside, it's quite nice: nice 10" glossy screen, integrated webcam, 3G modem with GPS-A, dual-DVB-T tuner, Bluetooth, WLAN/Ethernet, HDMI output, SD card reader.

Try to run anything other than the shipped Ubuntu (and that even goes for a newer version of Ubuntu), and you'll be in the mud.

The graphics card is the PR problem that's Poulsbo. The wireless card is a Broadcom 4322, with no free drivers, the modem gives Dan Williams nightmares (see the Swedish Invasion part), and the touchpad's driver never got upstreamed.

Adam had a bit of luck getting the Poulsbo going on Fedora 10. I haven't been so lucky under F11 yet, and the wireless card could apparently work with the kmod-wl package from RPMFusion. As for the 3G modem, I'm sure we'll be able to work something out to make it work as expected with a bit of work.

I'll leave others to complain about the «Poulsbong» (as it's been nicknamed) graphics card, and focus on the touchpad. The Elantech touchpad is the kind of touchpad that would make me want not to buy this laptop. No separate buttons, you instead need to click at the bottom of the touchpad area, and that gets awfully tricky for drag'n'drops. Right, this laptop didn't cost me much.

The real problem with the touchpad is that it work to its full capabilities with the stock kernel's drivers (it will even stop working when psmouse can't resync with it). But the shipped Ubuntu could, and the kernel logs seem to point at a modified psmouse. So I drop a mail to Jorge Castro, who passes me on to the manager responsible for the Dell OEM stuff.

After many attempts at getting the source code for that obviously GPL driver, I get the answer:
I believe you're mistaken in assuming that the code we have is merely a
modified version of the psmouse driver, e.g. there's a user space
component as well.

Arjan's code appears to be different.
Arjan is the kernel maintainer for the Elantech driver, on CC: at the time. Well, I was pretty certain it was a modified psmouse, and strings on the driver proved that. Thanks to Jorge not wanting to let me down, we finally found the sources for the Elantech driver in 2 separate commits.

Why did it take 3 weeks of arguing with some middle manager as to whether the code was GPL or not to find out that it was 1) freely available but unfindable 2) it had Arjan's name in the copyright, but apparently wasn't open source, 3) never upstreamed.

We were not amused.

To sum this up:
  • Dell, stop putting Broadcom crap in your Linux laptops (that also goes for the fingerprint readers)
  • Intel, please get Poulsbo drivers up-to-scratch upstream
  • Broadcom, don't put crap in Dell's laptop unless you want to start doing real Open Source
  • Canonical, apply a clue-bat to your middle management to stop lying
  • Jorge, thanks for being patient with me
  • And thank you unnamed provider of laptops, you gave me a reason to rant

Wednesday 6 May 2009

An era comes to an end

I'm not changing jobs, or getting married, it's all a bit more important than that.

Totem's xine-lib backend is now gone in git master, for GNOME 2.28.

The GStreamer boys have come forward, fixed a lot of bugs, and implemented new features, which means that the GStreamer backend was getting held back by the features of the xine-lib backend.

Oh, and before people start complaining:
  • this is only in the development branch for now
  • if you haven't filed a bug about whatever problem the GStreamer backend caused for you, you're not allowed to complain

Tuesday 7 April 2009

Because I suck at glade

To port apps that don't use libglade to GtkBuilder, the easiest way is to start from scratch in a glade-3 window. But because I suck at glade, I posted a patch to gtk-parasite to dump a whole widget tree into a GtkBuilder UI file.

It works well enough for me to do half the work of porting the bluetooth-properties to GtkBuilder.

No excuses now.

Thursday 12 March 2009

Our new volume feature

The feature was some time in coming, but Jon bit the bullet, and created the new gnome-volume-control. I came in afterwards, and did bug fixing and small new features.

Compared to the old volume control, we're already winning in terms of ease of use: no more weirdly named ALSA mixers we need to work-around, easy selection of input and output devices, microphone level bar.

Even the applet (as well as the gnome-settings-daemon media keys plugin) is now simpler because it doesn't need to work-around weird sound cards, with weirdly named channels.

PulseAudio 0.9.15 brings a few new features that we'll be able to use in the near future, such as back/front fade, sound card profiles selection (one click to setup multi-speaker output), and probably even Bluetooth headsets integration. Speaker testing is also on the cards.

I haz 5.1!

Yay for the desktop with a modern sound system.

Tuesday 3 March 2009

Contributing translations

In a comment to my last post, somebody mentioned that the translations would be better on Launchpad than in GNOME. Adi Roiban posted two articles on his blog showing how to contribute to GNOME translations:
Enjoy collabaration in GNOME translations and Contribute to GNOME as a translator

I'm pretty sure I'll leave the GNOME translations as a feature in that list :)

Saturday 28 February 2009

We have a fork

After careful consideration, and a lot of discussions, bluez-gnome has its own fork in the shape of a revived gnome-bluetooth.

If you ever used bluez-gnome (and you probably have if you ever used Bluetooth on Linux), you'll be familiar with the solutions offered. Let me tell you about a few differences between bluez-gnome and gnome-bluetooth:
  • No analyzers (or analysers) in gnome-bluetooth. Not really an end-user tool.
  • We has widgets! We have a BluetoothChooser, and a BluetoothChooserButton exported in libgnome-bluetooth. Use libgnome-bluetooth-1.0.pc in your apps, and you're half-way to setting up Bluetooth in your app.
  • We are stetic! UI problem? File a bug in the GNOME Bugzilla. You have GtkBuilder-fu? Help us move away from hard-coded widgets.
  • Translators! Help! bluez-gnome was translated using Launchpad's Rosetta. While it was good for getting translations in the first place, it doesn't quite have the same level of community support the GNOME translations team(s) have.
  • Integration! bluez-gnome had to cater for people that didn't want to use GNOME, or people that didn't like our approaches. Hopefully no silly options, or duplicated functionality in gnome-bluetooth.
We still have a bit of work to be done before the first release, but it won't be too far off.

Try: gnome-bluetooth in GNOME SVN, file bugs against gnome-bluetooth, help out fix some of the gnome-love bugs. Mailing-lists is still the old one, hosted by Edd.

PS: I need to update the Wiki page. Feel free to help :)

Wednesday 4 February 2009

Things you shouldn't do

Things you shouldn't ever be doing.
  • Transform a filename into a URI like that:
uri = g_strdup_printf ("file:///%s", filename);

Use g_filename_to_uri() instead. Same goes for the opposite direction, where stripping "file://" isn't good enough to transform a URI into a local filename. Use g_filename_from_uri(), or g_file_get_path() if you're actually going to be opening the files.

  • Use GStreamer to play a single small pop sound:
Use libcanberra instead. It's portable, might use GStreamer in some cases, and very certainly requires less code for a simple use like this.

Bruno, you should get a Bugzilla component for Garfunkel.

Wednesday 21 January 2009

NB: It doesn't actually look like that

If you read the Phoronix article about the new gnome-volume-control (also seen linked from OSNews), don't worry, the upstream (and Fedora) applet doesn't look like that.

It looks like that.

Ubuntu's mixer applet is a different UI on the old mixer applet in gnome-applets, and not the PulseAudio-powered volume applet now in gnome-media.

In addition to the article being outdated (the treeview with the one-by-one sound event customisation is already gone), it also invents new features such as «the ability to adjust the alert volume on a per-alert basis». God knows where they got that from.

/The guy who did the last gnome-media release

Monday 19 January 2009

Thanks anonymous person

I'd like to thank the anonymous benefactor who wished me happy new year by offering me a copy of WALL·E on Blu-Ray. You just bought me my first Blu-Ray movie.

I'm usually a bargain hunter for films, and will usually spend a fiver at most on a film, so even the Blu-Ray "sales" of two films for £30 I find outrageously expensive.

Thanks again, and I'll mention that your message was a bit mangled and some characters appeared as XML entities, so feel free to send it again by mail :)