Finding redundant GObject classes in Empathy

As part of a bugfix I did today1, I made a commit to remove a redundant class from Empathy, which made me wonder if there were any other redundant classes in Empathy. A quick grep of G_DEFINE_ told me there are some 116 classes in Empathy, so I wasn’t going to check them all by hand.

Instead I put together this script, which I share with you in case it’s useful, which basically checks for all classes defined with G_DEFINE_TYPE and then looks to see if anything with that namespace is used in another file. It generates false positives for classes that aren’t used outside the file they’re defined in, or classes that have different namespaces to the classname, but it produces a much more manageable list.

I did consider looking for unused symbols, but couldn’t work out an easy way to do it properly. Empathy’s compile process is split into two archive libraries (libempathy.a and libempathy-gtk.a) and several binaries (empathy, empathy-call, empathy-accounts, etc.), so I couldn’t think of a way to ask the linker to find any unused symbols. I put together this second script, which will build a list of symbols in archives and look for those symbols copied into the binaries, which gets some of the way there, but will miss any unused symbols defined in the binaries’ sources (src/).

  1. Thanks, as always, to my employer, Collabora, for letting me work on Empathy []
Posted in Uncategorized | 1 Comment

Finding Ada — Chandni Verma and Tiffany Antopolski

October 7th is Ada Lovelace Day. A day that showcases women in science and technology by profiling a woman technologist or scientist on your blog.

This year I wanted to write about two women who I’ve met and worked with in the last year as a mentor of the GNOME Outreach Programme for Women and the Google Summer of Code.

Chandni Verma
I met Chandni when she applied to be an Empathy intern for the GNOME Outreach Programme for Women. Chandni had never worked in open source before, but she approached it with an amazingly keen enthusiasm. Before too long Chandni began to grasp the ropes, learning GTK+ and Telepathy. She then went on to fix bugs in Empathy as well as the Telepathy connection managers.

Chandni studied computer science at the Dr M.C. Saxena College Of Engineering & Technology and has a passion for algorithms and would regularly participate in algorithm competitions. She learned about open source from a friend and in her final year of college and ordered Ubuntu CDs to check it out. Chandni says “I liked the idea of open source particularly since it allowed one to learn and evolve without any restrictions even if you are a student.

Chandni applied for GOPW after completing her final year and has remained working on Empathy since the end of her internship. Chandni gave her first conference presentation, detailing her experience with the programme, at GNOME.Asia. She had hoped to give it again at the Desktop Summit, but unfortunately bureaucracy got in the way. She looks forward obtaining a position with a company working on GNOME.

Tiffany Antopolski
Tiffany was in the same intake of the GOPW as Chandni, working on the documentation for GNOME with Paul Cutler. I then met Tiffany when she applied for the Google Summer of Code to work on integrating Empathy and Evince.

Tiffany is studying software engineering at McMaster University and also taught first year programming to students of the same course, having helped to design the curriculum. Before studying software engineering, Tiffany was a veterinary technician, and used to work in an emergency vet clinic. She also works part time in a neuroscience research lab.

Tiffany got involved in GNOME through the GNOME Documentation Project after being an Ubuntu user for around two years prior. In 2011 Tiffany attended the GNOME docs hackfest, the Open Documentation Conference and the Desktop Summit, where she worked on improving the documentation for GNOME. She successfully applied for Google Summer of Code with a project to work on integrating Telepathy into Evince. Recently Tiffany began working on the Esperanto translation for GNOME.

Posted in Uncategorized | 9 Comments

amassed knowledge

It turns out I’m really good at putting information into Tomboy and really bad at reading it back out, or changing it.

I was going through old notes today, and besides the mass of phone numbers, promo codes, interesting URLs and backtraces was a ToDo list from around 2008: learn Telepathy.

Something to check off :)

Posted in Uncategorized | 2 Comments

Desktop Summit Code of Conduct?

In light of OSCON adopting a code of conduct and anti-harassment policy, I was wondering, and even asked today, if the Desktop Summit has adopted an anti-harassment policy. Unfortunately I’m not going to make it to the Desktop Summit this year, but I searched a bit and all I could find was Dave Neary promising that Desktop Summit would adopt one [1, 2].

Can anyone tell me if the Desktop Summit has adopted a code of conduct? and if so, where I can find it? or if not, why the heck not?

Update: I have been contacted by an organiser to say that a draft attendees code of conduct has been written and will be published before the conference. Thanks for getting in touch so promptly :)

Update 2: the policy has now been published.

Posted in Uncategorized | 6 Comments

laptops

My Thinkpad X200s is playing up, in that it will no longer suspend and sometimes the wireless stops working until I reboot. The suspend issue looks like an issue with the Thinkpad TPM, but that’s meant to be resolved, and I could have sworn it was previously working while I was still running this kernel.

I checked the workaround was enabled (it is). Blacklisting the modules or disabling the Security Chip in the BIOS causes it to sleep, but not wake up. Someone suggested upgrading the BIOS firmware, but I’ve always been wary of doing this, I’ve bricked machines before.

Anyway so that I can put some computation that suspends in my bag, I installed Fedora 15 on the Dell Inspiron Mini 1012 I have. The machine itself is a little slow, but GNOME Shell runs pretty well. The trackpad drivers have improved too. Less weird jumping around and two finger scrolling.

Managed to crash the Fedora installer twice, it crashes when it tries to delete extended DOS partitions (automatically or manually). Had to delete my old Meego-created partition tables by hand for it to work.

Posted in Uncategorized | 8 Comments

More Empathy accounts dialog

After looking at my screenshot of the Empathy accounts dialog yesterday, compared with the GNOME Online Accounts dialog, I realised that the Empathy dialog was missing the attractive GNOME 3 add/remove buttons.

Fixed it using Bastien’s patch from Totem:

Empathy Accounts

Posted in Uncategorized | 5 Comments

Empathy and GNOME Online Accounts

Today at the IM, Contacts and Social hackfest we talked about supporting chat accounts in GNOME Online Accounts.

I did some work exposing accounts from GNOME Online Accounts to Telepathy (Bug #652543). It still needs a little bit of work, but from Empathy it looks like this1:

Empathy Accounts

With this work Empathy will prompt for the account password when there is a GOA account. Guillaume is currently working on extending Empathy’s authentication handler to authenticate automatically using the credentials from GOA (#652546).

Bastien is extending GOA to include a Chat account type so that you can control whether to enable chat from Online Accounts (#652574).

  1. ignore the other Google Talk entry, that’s my non-GOA chat account []
Posted in Uncategorized | 5 Comments

Adwaita Purple (please?!?)

Also, I’m not really that wild on electric blue. If someone wanted to do a version of Adwaita in purple that would be really awesome.

I’ll pay you back by adding cool features to Empathy or something :)

Posted in Uncategorized | 7 Comments

heading to IM, Contacts and Social hackfest

I am currently sat in Dubai airport on my way to the IM, Contacts and Social hackfest in at Collabora’s office in (real) Cambridge. Hopefully this week will get some cool progress made it integrating Telepathy and Folks into GNOME 3.

My attendance is sponsored by my employer, Collabora.

~

In recognition of the occasion, I actually started running GNOME 3. I’m enjoying it, except for missing Cantarell1 and this focus follows mouse bug. I am looking forward to the reappearance of the world clocks.

Also it seems you can no longer make the screen lock on suspend, which feels like a big deal, because I’m the kind of person to leave a sleeping laptop lying around. If no one already has a good solution to this, I might write a fix using a gnome-shell extension.

~

It used to be that you could set different timeouts for screen blanking vs. screen locking. I’ve lived without this feature in recent years by remembering to press the lock-screen button on my keyboard, but I had this strange idea on the plane that screen locking can also be tied-in with IM presence.

At the moment the screen blanks after the idle time, which is equivalent to the away status in Telepathy (the computer is idle, save some power, also if the user has sound turned off, she won’t see your text). Whereas I wanted the screen to lock automatically after an extended period of being away, the xa status in Telepathy?

For the moment (it may change this week) Empathy is responsible for setting the presence in Mission Control, setting away in response to gnome-session and setting xa itself. Either the session could add a concept of extended away, which I could wire up to lock the screen. Or I could listen to the presence change from Mission Control. This could always be another shell extension.

  1. maybe I’m just missing a package, I’m running the gnome3-team ppa on Ubuntu natty []
Posted in Uncategorized | 5 Comments

Help! Links in GtkCellRenderers

I’m hoping that someone already has a solution to this, but I couldn’t find one via Google Code Search.

What I want is a GtkCellRenderer that can render markup which contains links, exactly like a modern GtkLabel can. If it can also render small 16px inline images, that would be pretty awesome bonus.

Before I write it myself, does anyone already have one of these (with a GPL-compatible license)?

Posted in Uncategorized | 1 Comment