05 Feb 2012
Planet GNOME
Olivier Sessink: Debugging a reference count bug

Last days I have been debugging some weird reports. They all show the same characteristics:
- the users are on Ubuntu 11.10
- they use bluefish compiled against gtk 3.2 (so not the bluefish package that is provided by Ubuntu, but a newer one)
- in the Bluefish run the sort function of a GtkTreeModelSort is called after the GtkTreeModelSort should have been finalized and free'ed.
First I used gobject-list.c from http://people.gnome.org/~mortenw/gobject-list.c to see all refs and unrefs on all GtkTreeModelSort objects in Bluefish (luckily there is only 1 used in Bluefish).This showed that there was indeed a GtkTreeModelSort with lots of references left after it should have been finalized. I tried the same thing on Fedora 16 (also gtk-3.2), but it can only be reproduced on Ubuntu 11.10.I tried to get backtraces with gobject-list (which uses libunwind for that) but those backtraces turned out to be useless.
Luckily I received some help on IRC #gtk+ from Company and alex. The first idea was to use systemtap, but since there is no useful kernel for systemtap available for Ubuntu I had to use something more low tech suggested by Company: I set a breakpoint on gtk_tree_model_sort_new to retrieve the pointer of the GtkTreeModelSort. Once I got that pointer I could set a breakpoint on g_object_ref and g_object_unref with a condition on this pointer. Then I created an automatic backtrace on each breakpoint:
break g_object_ref if object == 0x123123123 commands bt c end
I configured gdb to log everrything to a file, and did a bluefish run. This resulted in a 2.1 Mb logfile with backtraces. This log also showed there were more refs than unrefs.
In this logfile there were a lot of similar backtraces, with an identical function doing a ref and an unref. I wrote a short python script to parse the backtraces and skip all 'valid pairs'
After this step I had only 15 backtraces left. And from these backtraces the leaking references were easily identified.
Because I was unsure if this is a Ubuntu specific bug or a generic gtk bug the resulting bugreport can be found both at https://bugzilla.gnome.org/show_bug.cgi?id=669376 and at https://bugs.launchpad.net/bugs/926889
Now I am wondering if this approach would work for any reference count leaking problem. I guess the most difficult issue is to find the value of the pointer that is leaking if you have many objects of the same type.. Any suggestions how to do this?
05 Feb 2012 8:40pm GMT
Jovanka Gulicoska: Using git add -p

Currently I'm working on changing the look of the dialogs in Empathy. So here is the problem. One button was not the same size as the other buttons because it had size group. I had to remove the size group to make that button look same as the others. That's where the problem occured. Removing the size group made more changes to the file because of the version of Glade. Some important rows were also deleted, and some were added.
Here is what I had to do:
* reset the patch
* see that your changes: git status
* type: git add -p and this will take you to this:
(following the instructions you can let the rows to stay changed or remove the rows that you didn't change)
* when you have only the rows that you need you can make git commit
* format patch: git format-patch HEAD~1
And that's it. You have what you need. ![]()
05 Feb 2012 7:23am GMT
Karen Sandler: FOSDEM, part 1

My day started out bright and early, meeting Tom Marble, Richard Fontana and Bradley Kuhn to get breakfast and prepare ourselves for the legal issues and policy devroom. I have to credit Tom, there really was a demand for the room and I thought we had some really interesting conversations. I did slip out throughout the day to get to various GNOME related things, but the devroom was my anchor, which was sometimes difficult when it was stuffed to the gills!
I held two sessions today. One was was an unexpected talk I gave with Bradley about fiscal sponsorship organizations when one of morning speakers let us know that he was stuck on a train and wasn't going to make it. The second was moderating a panel on software patents, which is always interesting.
The whole track was good, but I have to admit that one of my favorite things was having Harald Welte in the room while Philippe Laurent described the German case law.
I also made it to the cross-desktop room to see a few talks including Dave Neary's talk on mentorship and Allan Day's talk on Every Detail Matters. The rest of the day was jam packed with intense conversations and meeting people, which was capped off with a really fun time at the GNOME beer event. I even met a few GNOME hackers I'd not met before. It was also great to hang out with my mentee, Emily Gonyer who not only is experiencing her first conference, but also manned the GNOME booth most of the day!
Must get some sleep to prepare myself for tomorrow's FOSDEM craziness.
05 Feb 2012 1:54am GMT
04 Feb 2012
Planet GNOME
Michael Meeks: 2012-02-04: Saturday

- Up early, breakfast, off to the LibreOffice dev-room, good to catch some of Italo's nice overview talk, lots of Lanedo guys, friendly RedHat faces and key members of the team. Enjoyed Caolan's toolkit / layout talk.
- Gave my: talk on Easy Hacks: they're easy and they're significant hacks:

- Off for a bite of lunch with Caolan, then on to the (packed) Legal dev-room (with Bradley as bouncer) to catch the end of Allison's talk. Then gave a talk: Risks and Benefits of Copyright Assignment

- Talked to Michael and a Wiki translation chap a little after that, and rushed off to building K, to see our lovely booth manned & womaned by a great mix of contributors. Tried to get my demos setup - somewhat frustrated by a nasty suspend/resume kernel crasher. Gave a talk: LibreOffice: on-line and in your pocket - with the first Android prototype screenshots (and demo):

- Finally relaxed: bit of an intense day, synched with Dawn, Guy, and helped a contributor with his build. Wandered to the booth to hand out stickers, and catch up with the stream of interesting people passing by.
- Off to the speakers dinner with Bdale & Keith, whiled away much of a happy evening together. On to the sudden death to catch up with Richard Fontana, Andrew Haley, Simon Phipps and more - bed at 4am.
04 Feb 2012 9:00pm GMT
Jens Georg: FOSDEM 2012 Talk
Here are my slides to the short talk I did today about Rygel here at FOSDEM.
04 Feb 2012 7:21pm GMT
Stuart Langridge: It's cold outside

You're gonna catch a cold
From the ice inside your soul
Christina Perri - Jar of Hearts
I bet at four o'clock this morning you weren't in a police station.
Or, at least, if you were I bet you were drunk and I bet it wasn't voluntary.
After the usual Friday night poor showing from my local pub (people who follow me on twitter will be aware that the torture of watching a hundred people think they're affirming their lives by singing Mr Brightside at the top of their voices is a regular part of my balanced weekly diet), I walked home, on a cold and cloudless night. I live about ten minutes walk from town, so the walk's no hardship, except that I was dressed in shirt and no coat and it was, as mentioned, cold.
I need to be clear about this. Ten degrees below zero, Celsius, is seriously chilly when you're standing in it in shirt-sleeves. I'm sure people in actually cold places like Canada or Minneapolis or Refrigeration, North Dakota will be laughing mockingly at this point, but firstly, bugger off, secondly I bet you lot bother to put a coat on when you go out, thirdly it's not two in the morning for you, and fourthly bugger off.
Anyway, I get home and... no door key in my pocket.
You know that feeling when the Fist of Fear grabs your balls when you realise something disastrous has happened? (I don't know what the Fist grabs for women. Feel free to fill me in, or actually maybe not.) Anyway: yeah, that. I went through the usual search-all-pockets-and-then-search-them-all-again routine, just in case a mischievous cold-tolerant leprechaun hid my key from the first search and then put it back, and... no door key. Oh dear.
I'll tell you this; the walk back to the pub again seems a much longer trek. Nowhere near as long as the second return to the house without my key, though, after it turned out no-one had handed it in. And now, what the hell to do, eh? I'm not prescient enough to hide a key in the garden, especially since that's a damned good way to come home one night and find no television where a television used to be, so... locksmith? Do they have 24-hour locksmiths? I can't be the first moron to have done this.
If you're bored today, I have a suggestion for you. Go and find a dude who claims to be a 24-hour locksmith and punch him in his stupid lying face.
Incidentally, how in Jah's name did anyone manage in this situation five years ago without a smartphone, huh?
Not that the internet helps when no-one frigging answers their supposedly-24-hour phone. Also, it turns out that about four of the local 24-hour locksmith companies are actually the same company, who did answer their phone, agreed to send someone, and then after an hour of me standing in the freezing bloody freezing cold confessed that they didn't actually have anyone to send.
It's now half three in the morning, and the shivering is starting to get on my nerves, and I can't get into my house without destroying something like a double-glazed plate glass window which will cost me hundreds of pounds to fix and my hands are shaking enough that I can barely light a cigarette, let alone throw a brick through a door that probably wouldn't break anyway, and I'd like to avoid the police showing up since I have no way of proving that I actually live here except for being able to describe where all the broken bits of skirting-board are, and everywhere is closed and the doors are all locked and it's really spectacularly bone-shudderingly mightily arse-clenchingly ridiculously psychopathically cold, and what to do? I tried sleeping in the shed. Now, cold is not like wind. Being inside a thin empty wooden building does not protect you from it. I was shivering like a jackhammer on a bouncy castle and it was becoming clear, even in my not-very-operational brain state, that lying on the floor at minus ten with only a shirt on could quite possibly lead to me actually freezing to death for real.
Well, if the police came, either I'd get into the house or they'd arrest me, and being arrested would at least make me warm, and right now I'd cut my right hand off if Pol Pot showed up as long as he brought a pair of gloves and some soup.
And then, through the frozen and frosty neurons came the sparkling thought that the police station would be open, wouldn't it?
I actually felt warmer just at the thought. Not much warmer, though.
Anyway, that's how I came to be sitting in the cop shop voluntarily at four am. One lovely copper even made me a cup of tea after I poured out my tale of woe in one long sentence, breaking only for my teeth to chatter together like I was trying to bite through the world.
Police stations: while I appreciate that you're generally there to deal with miscreants and so on, it wouldn't kill you to get rid of two screwed-to-the-ground plastic chairs and put in, say, a chaise longue. After switching my phone to airplane mode I managed to eke out enough battery life that I could sit and read while huddled up against the radiator for five hours until nine o'clock this morning, whereupon I went and fetched the spare key from my estate agent after the longest and coldest and most sleepless night I have ever experienced.
So, tips, for surviving a similar situation.
- Have a spare key. Note: I do not have a spare key hidden in my garden, burglars, so don't go looking for it. I do not know how to have a spare key somewhere where you can get at it but thieves cannot; suggestions welcomed.
- Have a girlfriend so that there's someone to let you back in.
- Next time you see a policeman, be nice to him.
I think I might have a nap now.
04 Feb 2012 11:41am GMT
Jasper St. Pierre: GJS Improvements

Myself, Giovanni Campagna as well as Colin Walters have all been working hard trying to make GJS somewhat of a competitor to PyGObject, being a full introspection stack for the GNOME Desktop Environment. Rather than give you a bunch of history, let me just give you a quick taste. There's much more to the landing than this, such as implementing your own signals, properties, as well as implementing interfaces, but it will take me a few days to come up with an exciting example that fully showcases the power that you now have.
const Lang = imports.lang;
const Cogl = imports.gi.Cogl;
const Clutter = imports.gi.Clutter;
const Gio = imports.gi.Gio;
const MyClutterActor = new Lang.Class({
Name: 'MyClutterActor',
Extends: Clutter.Actor,
vfunc_get_preferred_width: function(actor, forHeight) {
return [100, 100];
},
vfunc_get_preferred_height: function(actor, forWidth) {
return [100, 100];
},
vfunc_paint: function(actor) {
let alloc = this.get_allocation_box();
Cogl.set_source_color4ub(255, 0, 0, 255);
Cogl.rectangle(alloc.x1, alloc.y1, alloc.x2, alloc.y2);
}
});
const MyClutterEffect = new Lang.Class({
Name: 'MyClutterEffect',
Extends: Clutter.DeformEffect,
vfunc_deform_vertex: function(effect, width, height, vertex) {
vertex.x += Math.random() * 20 - 10;
vertex.y += Math.random() * 20 - 10;
}
});
let actor = new MyClutterActor();
let stage = new Clutter.Stage();
actor.animatev(Clutter.AnimationMode.EASE_IN_OUT_CUBIC, 2000, ['x', 'y'], [200, 200]);
actor.add_effect(new MyClutterEffect());
stage.add_actor(actor);
stage.show_all();
Clutter.main();
04 Feb 2012 1:07am GMT
Karen Sandler: In Brussels!

I've arrived safely and soundly in Brussels for FOSDEM, despite a weird back injury (I didn't know you could get those from sneezing…) I've had a nice time talking to folks already, even if I've gotten a couple of rants about GNOME. There's been some really great positive discussion too.
I'm excited for the Legal Issues devroom I'm cohosting with Tom, Bradley and Richard and also for the Crossdesktop devroom. I'll also try to hang around the GNOME booth. Please come and say hi. See you there!
04 Feb 2012 12:40am GMT
03 Feb 2012
Planet GNOME
Nirbheek Chauhan: An unintended gem about usability

<UU> Somedays, I think why can't we have computers which just work.
<UU> But then I remember that I am a Computer Scientist.
<UU> So, yeah, I guess I understand why.
<Nirbheek> :D
Quite related to GNOME, really.
03 Feb 2012 10:35pm GMT
Ian McIntosh: Zoom H1 firmware update 2.0 adds USB Digital Audio support in Linux
I'm so happy about this added functionality! I want to publicly thank Zoom for such a great free update.

The Zoom H1 makes super high quality recordings, and now also serves as a high quality digital audio mic while connected to a Linux computer.
Performing the Zoom H1 version 1.x to 2.0 upgrade in Linux
In short, this fails.
Something about writing the H1MAIN.bin to the Fat32 file system in Linux causes the very brittle upgrade process to fail. It will notice the file and begin the process, and end with "WRITE ERROR". Thankfully it doesn't brick the device.
The solution is to:
- copy your recordings off the device
- format the card inside the device: hold the Trash button while turning it on, then confirm the format by pressing the Record button
- copy the H1MAIN.bin file to the root of the device's filesystem using a Windows computer (download Zoom H1 System Software Version 2.0 and unpack)
- initiate the upgrade: turn on the device while holding the Play/Pause button, then confirm the upgrade by pressing the Record button (twice)
Once upgraded, the mic functionality is detected and works automatically in Ubunutu (and presumably other Linux distros), and shows up in PulseAudio as both an Input and an Output. This means you also now have two audio outputs.
It even works in the Luz Spectrum Analyzer.
Enjoy!
03 Feb 2012 9:50pm GMT
Michael Meeks: 2012-02-03: Friday

- Up early, breakfast, onto Easy Hackery slides, nasty head cold catching me with a vengance. Italo published a beautiful FOSDEM infographic which he has been building.
- Slogged away at slide production, banana lunch, yet more bashing of text into rectangles etc. Kendy arrived to help hack on Android-ness, and catch up, ~immediately finding my dumb focus / event delivery bug: nice, the keyboard sort-of-works finally.
- Caolan over in the evening, then off to meet the massed LibreOffice team at the hotel Astrid; on (rather late) to the Delerium cafe, to catch up with Lennart, Kay, Alp & many more.
03 Feb 2012 9:00pm GMT
Jani Monoses: Recent misc likes
Even though some of these tools have been around for years, I have only recently started using them.
03 Feb 2012 8:53pm GMT
Murray Cumming: Openismus at FOSDEM 2012

A few Openismus people will be at FOSDEM In Brussels this weekend. FOSDEM is always a great conference, but I can't be there myself as my travel is generally limited by the need to take care of my kids.
Michael Hasselmann and Jon Nordby are both giving talks about the Maliit input method framework, as seen on the N9. We are eager to find customers who need our help to integrate and improve this only real choice for an open-source on-screen keyboard. So we hope that some people of influence take the opportunity to get to know the project and its excellent developers.
Jens Georg is also giving a talk about Rygel, used in the N9 to support UPnP and DLNA. For German speakers, there are already video and slides online of a recent talk that Jens did about Rygel in Berlin for Deutsche Telekom's Developer Garden. I was amused to discover that DLNA had specified themselves into a situation where a minimum certified server and a minimum certified receiver were only able to share a small resolution JPEG format. Apparently it's getting better, and Rygel can deal with it all.
03 Feb 2012 4:07pm GMT
Bryen Yunashko: Name that event! Poll for openSUSE Event in Florida

As promised, the poll to name the openSUSE event to be held in Orlando, FL September 21-23, 2012 is now online. Please vote before February 11th!
And as always, if you want to get involved in planning, please visit our planning page.
Thanks!
Bryen M Yunashko
03 Feb 2012 3:54pm GMT
Jordi Mallach: FOSDEM 2012

In a few hours, I'll be flying to Brussels with Ivan, for a new edition of FOSDEM, undoubtedly the best Free Software conference in Europe.
I'm looking forward to hang out with Debian, GNOME and #dudes people, as well as to explore some other quiet and cool spots in the city with our hosts Raül and Vir.
I'll probably be around the CrossDistro and CrossDesktop rooms most of the time, but before that I'll be at the Delirium café not long after landing in Brussels.
For someone who doesn't enjoy cold weather that much, this is going to be a special edition… oh dear, -10℃, this is fucking crazy!

03 Feb 2012 12:22pm GMT
Johannes Schmid: What’s up?

So as usual I need an excuse for not blogging for so long. This times it's work, moving to Berlin and some other things.
Anjuta
While I haven't contributed that much code in that cycle apart from minor bug-fixing there have been a couple of nice contributions:
- Sébastien Granjoux did amazing work to improve our project management which is now much easier to use and more powerful
- Marco Diego Aurélio Mesquita (what a name) improved the glade integration by allowing to automatically connect widgets and code
- But I guess I should cover all this in a "What's new in Anjuta 3.4″ post pretty soon
Gdl
The often forgotten but still heavily used docking library…Inkscape forked that library into their repository and added some fixes for them that were never magically contributed back and at some point (especially with the gtk+3.0 transition of gdl) I became very hard to merge between the projects. However, lately Alex Valavanis stepped up and ported most of the Inkscape patches back into gdl master and hopefully Inkscape will be able to use stock gdl (or probably better gdlmm) really soon.
Gnucash
As I tried to organize all my banking stuff I made some contribution to the best linux banking software in the area of HBCI/FinTS which is a german standard to securely initiate online transactions with your bank. I hope to find some time to actually implement SEPA (read EU- or international transactions using IBAN and BIC) at least originating from german accounts. But I have to think about how to compute (98 - (x mod 97)) for x being larger than a 64-bit integer and while I found some strategies on the web this was too much math for a late evening. Before you ask, this is part of the way an IBAN checksum is computed and I need this checksum because at least for Germany the IBAN can be generated as a combination of account number and bank-code.
Brno Hackfest
/me will be there saving the world or drinking beer, maybe both.
Laptop
After having been for a couple of hackfests which my much loved white netbook (read: "Oh, it's so cute…") I though it's time for a real (male
laptop. It doesn't seem very easy to get a reasonably priced laptop without a Windows license or preferably with a preinstalled and working Linux. After some searching I ended up buying a ThinkPad Edge 320 from linux-laptop.de which arrived pretty quickly (apart from some problems with the postal service). I ordered it preinstalled with Linux Mint after having only used Fedora for a while.
The installation was complete but the fan was constantly running which annoyed me but can be fixed by installing the thinkfan utility and now things are quite again! I reported this back as I kind of assume things like that installed when I order a laptop with operating system.
03 Feb 2012 12:05pm GMT


