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 :)

Friday, 26 December 2008

I pay my TV license

Therefore, I'll want to listen to 5 Live tomorrow lunch time, when I'm in France, but United play Stoke.

This is more a little for me, but could be useful for other expats :)

1. Create a Socks5 proxy:
ssh -D 9999 your.remote.host

2. Build the tsocks library

3. Create a tsocks.conf file:
server = 127.0.0.1
server_port = 9999
server_type = 5

4. Launch a (simple) player with proxy support:
TSOCKS_CONF_FILE=`pwd`/tsocks.conf LD_PRELOAD=`pwd`/libtsocks.so.1.8 mplayer -playlist http://www.bbc.co.uk/fivelive/live/live.asx

Voila. See also Bug 505456.

Tuesday, 23 December 2008

Tuesday, 2 December 2008

Serves you right

On Friday evening, for the GNOME London beer do (version 2.0 apparently), we went past the offices for the Express, a paper as high as the Daily Mail on the puke-tastic scale of yobbish prejudice.

A couple of weeks ago (seems like months now), Jonathan Ross and Russell Brand played a prank on someone in a BBC Radio 2 show that very few people listen to in the first place: 2 complaints. In comes media circus, the Fleet St. buddies in pole, and there the number of complaints rises. My despair rises.

Grauniad blogger and journalist Charlie Brooker vents his screenburn frustration at that lot, and I shake my head every day at their covers. You'll soon know about the dead girl corner, and the «free shit» banner. Just don't read their website, an immigrant plumber might get onto your computer.

Thursday, 27 November 2008

Momentous moment

Tonight, 3 months after ordering it, I finished watching the complete West Wing. I'd recommend it to anyone interested in politics, especially when put into context with the Clinton, Bush and upcoming Obama administrations, as well as the Gore, Kerry and McCain presidential races. Now maybe I should watch some episodes of the New Statesman again, to flush that too-political feeling.