Saturday, May 24, 2014

Making things better

When I read Matthew’s post a week ago about creating desktop features that cater to developers, I found myself agreeing quite strongly with the sentiment put forth, and I started to wonder how we could better integrate development features into GNOME. We’ve so far focused strongly on general ease of use and the use-cases of non-technical users, but as we’ve seen time and again, FOSS projects tend to first become popular on the shoulders of technical users. One must be in a position to attract both kinds of users if one wants broad acceptance and use.

On the other hand, I found myself disagreeing very strongly with the sentiment in Philip Van Hoof’s post yesterday. I found it strange that Philip chose to state that greater focus on development integration goes hand-in-hand with a lesser focus on the Outreach Program for Women. Surely one’s immediate reaction would be to utilize the manpower (sic) OPW provides to make development integration happen, right? I’m left wondering what sets of biases, prejudices, or misconceptions one must have to conclude otherwise.

In fact, being in the position to call multiple former OPW participants friends and hence being intimately familiar with their work, I’ve begun to realize that the removal of the “programmers only” requirement that GSoC has, actually leads to a much more holistic approach towards patching the deficiencies that GNOME has.

Without OPW, would we have had a Usability Researcher for GNOME 3? Or a professional Typeface Designer improving the shapes of our UX font, Cantarell and expanding the character set? And surely as programmers and users we understand the importance of documentation? To those who want to see some code, there's plenty of that to see as well.

Over the years, GNOME as an organisation has accreted talent and expertise in a wide spread of technical domains. We have the ability to create the most “usably-featured” OS out there — but only with all our arms working together. Cutting one off in the hope that another will become stronger will only result in a gaping, bleeding, wound.


Anonymous said...

Thank you so much for this post. Well written and very eloquent too!


liam said...
This comment has been removed by a blog administrator.
liam said...

Speaking of Gaur, do you know where the data she collected is located? The links from that article are to a parked GoDaddy site, and searching for her name didn't bring up any results later than August of last year.
As for Cantarell, was an effort made to contact its author, Dave Crossland, to see if he could fix any of the perceived issues? I know he's still active in the open design community, but it might be limited to metapolator these days.

Nirbheek said...

Hi liam,

Most of Gaur's blog posts are accessible via I believe her website and domain were lost due to circumstances outside her control.

Throughout Pooja's OPW work on Cantarell, she was in contact with Dave Crossland, and the improvements and additions were made with his knowledge. Dave and Pooja are Alumni of the University of Reading from different years, and hence know each other. Dave currently works as a contractor for Google with their Web fonts team (Cantarell is also on Google Web Fonts), so you'd have to ask him/them whether they have further improvements planned. :-)

Anirudh said...

Hi Nirbheek,

While I'm not a contributor or directly involved in GNOME, I'm reasonably familiar with the process of contributing to it, because I've tried fixing small bugs for some applications, and have been building GTK applications since 2009.

I was quite saddened to read the article that claimed that OPW has a negative effect on the GNOME's desktop product. I don't hold any specific opinion on it except that I feel that it's becoming a red herring (where people blame it to distract from real issues).

I have a huge amount of respect for GNOME's technology, things like GObject introspection allowing for multiple language binding is a stroke of brilliance the likes of which is not available elsewhere. But I will have to disagree that GNOME projects are extremely "contributor and developer friendly".

The one thing is that while older APIs work, and are seldom deprecated, the problem is that the entire project silently moves to the "new way" of doing things. This can confuse the outsider because the new way is often undocumented. For instance, if you search for "pygtk", you get the older APIs and tutorials while the newer one is hidden away elsewhere. While this is a cleaner approach, it suddenly invalidates thousands of stackoverflow posts and blog posts and wiki pages. Now who's going to go and update each one of them?

I'm not against change and improvement. But there has been an huge bounds of improvement, but the site hasn't been updated from 2011, and the new one is called "Python GTK+" as well, which can be very confusing. Even if I see a random useful snippet of code, how do I know if it's for the new API or the old one.

And also I've had a lot of difficulty in the past with building GNOME software from git. The primary issue is that it depends on so many new libraries which isn't available in repositories, and you have to go through the dependency hell and compile them manually yourself, and this is before we get started with jhbuild. I use ubuntu 13.10 and was shocked to see all my libraries are already out-dated to build something as simple as gedit. I understand that it's a problem with non-rolling releases and syncing with the debian testing tree, but think of the situation of a new developer who wants to contribute. And usually people just reccomend installing fedora. So I need to abandon years worth of knowledge and conventions and scripts I have about my system to go to a completely different distribution just to contribute to your project? There has to be another way.

Glade's a very powerful tool and one of the better GUI builders I've used, but again lags behind on actual GTK development. Does it support the newer widgets like HeaderBar, etc. I've used glade extensively and in fact, much more heavily prefer the Stetic GTK Builder which is available in MonoDevelop (which I still felt was the best GTK development experience I had).

I'm not trying to criticize GNOME, I truly understand the importance of having a free desktop manager, and wish to see GNOME succeed. Being an engineer myself I know what a technical feat some of the achievements are. But being an engineer, I also know that there are boring things to do like improving, documenting, standardizing, and stabilizing your build processes, and the guidelines to contribute. If you're looking to grow, don't just look at where you're excelling, also look at where you lack.


Unknown said...

Thank you for taking the time to write this and show how OPW efforts help GNOME!

Marina said...
This comment has been removed by the author.
Marina said...

Thanks, Nirbheek!

liam said...


Thanks for that link! I've been anxious to read more about her findings since I read that lwn article back in August.
It's also good to hear that Dave was aware of the work done.
Thanks for the response, and sorry for the double post.

Nirbheek said...

Hi Anirudh,

You're absolutely right. I'm glad you took the time to write a detailed comment about this. I've felt the same way, and I hope more people inside GNOME read what you've written.

I'd recommend that you post an email on this topic to the desktop-devel list so it gets broader coverage and discussion.