Canonical Voices

Posts tagged with 'desktop'


Happy Anniversary, Fedora!

Many congratulations to my friends in the Fedora community for your 10th anniversary!

Fedora is such an important part of the wider Open Source and Free Software community and filled with many, many good people doing great work. I hope you all take at least a little time away from the coalface to celebrate today!

Many warm and happy congratulations!

Read more

This is a personal post and does not neccessarily represent the views of Canonical or the Ubuntu community.

Today Richard Stallman, founder of the GNU project and Free Software Foundation wrote a critical post accusing Ubuntu of shipping spyware (which is referring to the online search capabilities of the Ubuntu dash).

He goes on to suggest “in your Software Freedom Day events, in your FLISOL events, don’t install or recommend Ubuntu. Instead, tell people that Ubuntu is shunned for spying.“.

This is FUD.

When controvosies such as this kick off from time to time about Canonical and/or Ubuntu, my approach has never been to try and convince our critics that they are wrong. My goal is not to turn the unbelievers into worshippers at the church of Ubuntu. My only goal has been to ensure that everyone who participates in the debate trades in facts and not in misinformation and FUD; there is enough misinformation and FUD on the Internet without us all adding to it. :-)

If someone has an accurate set of facts and accurately respresents the topic but is critical about the position…no problem. We can then engage in respectful, accurate debate that will likely enrich all perspectives and ultimately result in better software.

The goal of the dash in Ubuntu has always been to provide a central place in which you can search and find things that are interesting and relavent to you; it is designed to be at the center of your computing experience. Now, this is a big goal, and we are only part-way along the way to achieving it.

Today it is not perfect – we need to improve the accuracy of the results, present the data more effectively, and continue to expand the coverage and capabilities of the data in dash searches. With each new release of Ubuntu we get awesome feedback from our community and users and we strive to refine and iterate on all of these areas so that subsequent releases offer a more and more compelling experience, freely available and sharable for all.

Naturally, privacy is critically important to us in doing this work. In the eight year history of Ubuntu and Canonical we have always put privacy forward as a high priority across the many, many different websites, services, and software that forms the Ubuntu platform and community.

The challenge of course is that privacy is a deeply personal thing and the way in which you define your privacy expectations will likely radically differ from each of your friends, and vice-versa.

With this in mind, just because someone may have differing views to mine on the implementation of privacy in software doesn’t mean they are wrong. Likewise, just because my views may differ to theirs doesn’t mean I am wrong. We are all different and we all manage our information and our expectations around information sharing in different ways.

Just look at Facebook; the privacy debates there have been raging on for years and have encompassed many different views and perspectives ranging from “I want to control every detail of my privacy in Facebook” to “I don’t care, if it is on the Internet, I don’t care who sees it”, and everything in-between.

We want Ubuntu to be a safe, predictable, and pleasurable platform for everyone, irrespective of their personal views on privacy, but we also respect that there will be some folks who don’t feel we are doing enough to represent their particular personal privacy needs.

When we implemented the Amazon search results feature we didn’t get it 100% right with the first cut in the development release of Ubuntu, but that is how we build Ubuntu; we add software to our development branch and iterate on it in response to feedback and bugs. We did exactly this with these functional and privacy concerns…responding and implementing many of the requirements our community felt were important. We will continue to make these improvements in the future in much the same way.

Now, some of you may share Richard’s concerns over some aspects of this feature, and as I mentioned earlier, I am not here to convince you otherwise. Richard has every right to share his views on privacy, and who am I to tell him or you that he is/you are wrong?

What concerns me more is the FUD in his post. Statements such as:

In your Software Freedom Day events, in your FLISOL events, don’t install or recommend Ubuntu. Instead, tell people that Ubuntu is shunned for spying.


Any excuse Canonical offers is inadequate; even if it used all the money it gets from Amazon to develop free software, that can hardly overcome what free software will lose if it ceases to offer an effective way to avoid abuse of the users.

These statements simply generate fear, uncertainty, and doubt about Ubuntu; a project that has a long history of bringing Free Software to millions of users around the world with an open community and governance.

But then again, this is not particularly surprising from Richard.

I have tremendous respect for Richard and his fantastic work in laying the foundations for the Free Software and Open Source world that we have today, but I think he is short-sighted at times. His views on software projects are pretty binary: either a strict set of ethics (defined by him) are observed, or it should be shunned.

The challenge here is that freedom is also a deeply personal thing.

I believe that freedom is far more than simply freedom of source code or a specific policy around privacy. When I got involved in the Free Software community 14 years ago my passion from then onwards was not driven by creating awesome Free Software code, it was more about creating awesome Free Software experiences that open up technology, education, creativity and collaboration to everyone. Free Software code is simply one mechanic in how we deliver these experiences; it is not the be all and end all of what we do.

A completely free set of source code that implements a system that is difficult to use, lacks the features that users want, is not competitive with proprietary competitors, and/or does not offer a desirable and delightful experience is not going to bring Free Software to the wider world. It may bring Free Software to a passionate collection of enthusiasts (as we saw back in the early days of Linux), but in my mind true freedom is software that is not just available to all but usable by all, even those who are not enthusiasts.

Just look at the success of Apple. General consumers have voted with their feet, and people want beautiful, desirable products that let them do useful and fun things with their friends, families and colleagues. There is absolutely no reason why we can’t achieve this with Free Software.

In Ubuntu we want to build a platform that is even more beautiful, elegant and delightful than Apple, but is infused with the Free Software values that empower that technology, education, creativity and collaboration in everyone.

But unfortunately, as far as Richard is concerned, if Ubuntu doesn’t meet his specific requirements around privacy or Free Software, irrespective that it has brought Free Software to millions of users and thousands of organizations, and despite the fact that you might not share his viewpoint, you should shun it.

This just seems a bit childish to me.

Let’s turn the tables around. Do I agree with everything the Free Software Foundation does? Not at all, but I do think their general body of work is fantastic, worthwhile, and provides an important and valuable service, and I would never want to suggest you should boycott them if you disagree with one part of what they do. Quite the opposite, I would encourage you to see their website, donate, and consider joining them as they provide a valuable piece of the wider Free Software ecosystem, in much the same way Ubuntu provides another piece. Let’s work together, not against each other.

UPDATED: I posted an apology to Richard about to refering to his position as ‘childish’ you can read it here.

Read more

Search is at the heart of Ubuntu. Whether you search for applications or content in the dash, search for functionality in your applications the HUD, or search within applications and your file manager, for Ubuntu to be successful we have to get search right.

As we build search more and more into Ubuntu, it becomes increasingly popular. As an example, the HUD has been a really popular feature, but if there is one piece of feedback we hear more than ever is that it would be nice if the search in the HUD was even smarter.

This is a great way in which Open Source and community can iterate and improve.

One core project being worked on to consolidate search best practice is libcolumbus. libcolumbus is an implementation of the Levenshtein distance algorithm, but with a fast search and custom errors. The library is currently used by the HUD, but it is designed to be used across other parts of the desktop and devices as well as embeddable in applications. As with all search algorithms, iterations help bring better user experiences, and libcolumbus is something we would welcome community involvement in to help bring these improvements.

It is written in C++ and the author, Jussi Pakkanen, is keen to work with our community to grow involvement. Hacking on and improving libcolombus will not just help search in one place, but everywhere.

First, be sure to see Jussi’s blog about libcolombus for more information about the goals and architecture of the library.

Also see the Launchpad project and you can get the code with:

bzr branch lp:libcolumbus

I have asked Michael Hall to work with Jussi to help get a hacking guide, list of bugs, and feature goals online soon, so stay tuned for more information. Also, Jussi is in UTC+2 timezone and is available in #ubuntu-unity on Freenode (his nick is Satoris).

Read more

Last week Benjamin Otte shared some thoughts about GNOME that were pretty stark. It gathered some steam and hit Slashdot and this all happened the week GUADEC was taking place in A Coruña. I wasn’t at GUADEC :-( but I can imagine there was some fervent discussion about the blog entry.

The gist of Benjamin’s blog was that people are leaving GNOME, that the project is understaffed, and arguably the reason for this is that GNOME has lost its direction and Red Hat have overtaken the project as the primary contributor-base. Of course I am summarizing, but check out the original post if you feel I am not representing Benjamin’s views fairly.

I wanted to share a few thoughts. To be clear: these thoughts are my own, and I am not speaking on behalf of Canonical, but I am speaking from my experiences as someone who has primarily been affiliated with Ubuntu and as a Canonical employee. My feedback is going to be frank but I really do care about GNOME as a project, and this feedback is intended from a position of love for the project and to be open and transparent about my own experiences as just one set of eyeballs in this story.

Actual eyeballs.

Fortunately, I think all of these problems are solvable, but for them to be solved GNOME is going to need to do a little soul searching to discover and focus on the right problems and explore and deliver the right solutions.

A Little History

To provide a little context, my interest in GNOME pre-dates my involvement in Ubuntu. I have worked on a few applications that use the GNOME platform (Jokosher, Acire, Lernid, and most recently Ubuntu Accomplishments) and I have had a long interest in where the project is moving forward and as a core part of Ubuntu. I used to go to GUADEC every year, and I consider many folks in the GNOME project to be good friends.

While I care about where the project moves forward I too have also become concerned about the direction it is going in, not in terms of the design and user experience of GNOME (there are other, better versed people to assess this work), but instead in terms of how the project works with others such as companies, developers, and other partners.

In my mind GNOME has become bittersweet. I remember back at GUADEC in Stuttgart in 2005, discussions started happening about what form GNOME 3 would be in. As the years progressed the project struggled to decide on a final vision for what GNOME 3 would look like. This is not surprising: GNOME 2 was such a smashing success that GNOME 3 was going to be difficult second album time. Ideas were shared and bike-shedding occurred, but ultimately it seemed that the project was lacking leadership to take take all of these ideas and flip the switch to a vision and design and move it forward.

Around this time Ubuntu had become arguably the most popular way in which people were consuming GNOME and we (Canonical) were hiring more and more people to perform this integration work (which is no light task, as any distro developer will tell you).

If all else fails, bribing people with bubble-wrap grows popularity.

Back then Canonical was taking quite a bit of heat for “never writing code and just shipping other people’s work” (which I always found a misguided viewpoint as integrating and delivering a solid Free Software Operating System is significant work and a great contribution to the wider Free Software commons).

We were starting to find though that there were areas of GNOME 2 that we felt could be improved and expanded (largely based on feedback from our users). We started growing a design competence and hiring developers to build new code to add improvements to the experience. Many technologies were created such as the messaging menu, notify-osd, dbusmenu and the global menu, control center improvements, and ultimately Unity as an additional shell for GNOME.

I remember this time vividly. I was in weekly discussions with Mark Shuttleworth, Rick Spencer (Ubuntu desktop team leader), Ivanka Majic (head of design), and David Barth (head of engineering these components). Our goal was simple: be able to showcase these technologies in Ubuntu and bring value to Ubuntu users, but to also ensure they were contributed to the wider GNOME project as technology that could help the general project in moving forward.

I personally saw this all boil down into pretty simple parts: Canonical and GNOME were partners and it was a mutually beneficial relationship – the GNOME desktop with barely any users defeats it’s purpose and Canonical was helping to deliver it to millions of users in Ubuntu, but Canonical could not build an awesome Ubuntu without the wonderful components in the GNOME desktop to fill in the many different pieces in an OS.

My simple philosophy was also marinaded in the gift culture of Open Source and Free Software: Canonical was paying designers and developers to produce new code that could be of value (and thus offered as a gift to the GNOME commons) and as with all gifts, while it may not be exactly what you want (and may need some adjustments and improvements), I presumed there would be a polite, respectful, and open discourse to take these contributions and bring them into the shared commons that was GNOME, particularly as they were created with GNOME in mind.

This was not my experience of what happened.


I was really disappointed with what resulted. After years of Canonical and Ubuntu being criticized for not contributing code, when we then engaged in writing code we were met with a frosty, suspicious, and at times, frankly entitled attitude from some parts of the GNOME camp.

Now, don’t get me wrong, Canonical was not perfect here either. I fully admit that some of this relationship could have been handled better (and I am partially to blame here). We made some mistakes early on in which code was released too late and there was sometimes not enough open discussion. Retrospectively, we could definitely have done better in being more pro-active in some parts of the relationship too. At the time we were still learning how to do this, and as such we made some mistakes too.

Canonical wanted to strike the right balance of bringing innovation to Ubuntu releases with new features, but to also openly engage and contribute that innovation to upstreams such as GNOME. My goal here is not to open up a blame game of who did what and when (I will leave that to the commentators ;-) ), but what disappointed me most about the whole situation was that from my personal perspective it seemed that some influential members of the GNOME project were treating Canonical’s contributions more critically and suspiciously than others.

Now I haver never subscribed to conspiracy theories, and I don’t believe that there was a shadowy GNOME Illuminati that was meeting together in a hollowed out volcano to plan how to keep Canonical and their contributions out of GNOME, but I was surprised and disappointed at the attitude that came out of parts of the GNOME project to us, when we were ultimately delivering GNOME to millions of users as well as writing new code that could enhance GNOME. It just seemed incredibly entitled.

The shadowy GNOME Illuminati

There were three things that really blew my mind about all of this:

  1. From my experience of working on volunteer Open Source projects, new volunteers and their code contributions are tremendously valuable. As an example, if someone comes to my current project (Ubuntu Accomplishments) and is willing to propose new, disruptive ideas, and willing to contribute chunks of code, I will treat those people with open arms. Being challenged is a good thing: it keeps us fresh, and a challenging, innovative idea followed up with running code is awesome. Now, of course, this is not to say that writing code automatically gets the contribution into the core project, but I would treat the entire social engagement with someone offering such a gift with positive open discussion to see how we could find a great solution that makes everyone happy. This seems an area where things could be improved with GNOME.
  2. If I was also running a project that was understaffed and struggling to define its direction (which I would argue was the case with GNOME at the time) I would treat such new contributions as wonderful ways of solving problems and building a new direction for the project, particularly if our major distributor was going to be delivering that technology anyway. Code is the currency of Open Source, and rejecting chunks of this currency because they don’t fit an as-yet incomplete jigsaw puzzle of a vision just doesn’t make sense.
  3. Without sounding egotistical from the perspective of an Ubuntu guy, I would argue that the vast majority of GNOME consumers were getting GNOME in Ubuntu. Of course, there was and continues to be the wonderful work going into Debian, Fedora, OpenSuSE and others, but it seemed that Ubuntu was the most commonly-used GNOME distribution (I suspect it still is). Again, I saw this as a partnership but from my perspective it seemed like parts of the GNOME project saw Ubuntu as fundamentally subservient to GNOME; as if we had an obligation to deliver whatever the GNOME project saw fit, irrespective of our own ideas and feedback from our users. In my position as an Ubuntu guy, I have always tried to treat our upstreams with maximum respect as they are a big part of who we are; Ubuntu is nothing without awesome apps, and a wonderful integrated experience. I guess I just expected a more positive and collaborative experience with GNOME than I experienced…the kind of collaborative experience that I had known and loved in the earlier days of GNOME.

Of course, it takes two to tango and we at Canonical could have no doubt done better to improve our relationship with GNOME, but I remember back then feeling like no matter what we tried to do, we came up against resistance from the GNOME project, and this was de-motivating and no-doubt added stress to our relationship.


To shift gears a little, one of the points in Benjamin’s post was that GNOME 3 is a Red Hat project. To me this is a bit of a double-edged sword.

On one hand, the crux of his point is entirely valid: most people contributing to GNOME seem to be a clique of Red Hat folks. What concerns me a little are the concerns in parts of the community that Red Hat is “running the show” and that much of the decision-making has been private to Red Hat staff.

Here’s the thing: I don’t doubt that this is probably happening, but this is not necessarily a bad thing. These concerns again highlight what I think continues to be an unrealistic expectation in parts of the GNOME project with those who are willing to invest in the platform (in this case, Red Hat). If Red Hat have decided to invest in a team of developers to work on and bring value to GNOME, building Free Software that can be shared with everyone, these contributions should be received with open arms. Leadership is leadership, irrespective of the employer.

Of course, there needs to be a culture of openness and transparency, and I suspect a certain amount of internal water-cooler chat is happening in Red Hat, but you will find that with any commercial team that is actively engaged in a Free Software project; we just need to always try to keep things as open as possible. GNOME is definitely going to need to ensure that the openness and values of open collaboration are not compromised, and an open and frank discussion with the Red Hat team about resolving these concerns is no doubt the best step forward.

Pictured: a proven conflict resolution technique.

I personally think it is wonderful that Red Hat are investing so much in GNOME and they have arguably led in much of the direction and leadership in delivering GNOME Shell and the various other parts of the platform. What seems ironic to me is that the same criticisms that were thrown at Canonical with Unity (as a perceived competitor to GNOME Shell, which it was never intended to be) are now being leveled at GNOME Shell (“you don’t care about our needs”, “you are pushing your own agenda” etc).

Maybe a solution to this problem is to be open and frank about the relationship with Red Hat. As an example, we always try to be open about our relationship between Ubuntu and Canonical; there is no doubt that Canonical drives a lot of the development and innovation in Ubuntu, although this leadership and innovation is firmly rooted in expectations around openness and collaboration. We don’t try to hide the influence Canonical has on Ubuntu, and I wonder whether the wider GNOME community feels comfortable in accepting the influence Red Hat has on the project. This is always a delicate balance.

I would agree with Benjamin that GNOME is essentially a Red Hat project these days, but as I say this is double-edged: the wonderful benefits of the investment from Red Hat will be tinged with the challenges of how vendor-neutral the project wants to remain.

The Future

So what is the future of GNOME and how can these problems be solved? Can they even be solved in the first place?

I think so.

I love GNOME as a project, and I love the folks involved in it. While we don’t always agree, the core ethos and goal of GNOME is admirable: to bring an awesome Free Software desktop to everyone. While I personally prefer Unity as a shell, I think the work that has gone into GNOME Shell has been a wonderful rebirth of the motivation and focus of GNOME. The architects of this vision should be credited in getting GNOME out of the slump I mentioned earlier that seemed to stem from 2005. Of course, I will always be disappointed that GNOME seemed quite so resistant to much of the contributions we wished to make, and I think we could have helped to have moved things along a little faster, but I am delighted that GNOME 3 has got to the point it has got to.

As I mentioned earlier, my feedback here really has nothing to do with the design and technical direction of GNOME, and others can provide more insightful commentary than me. I do though think this people-problem issue of GNOME being a rather difficult project to work and interface with at times is a problem that has not yet been confronted and resolved. While this problem continues to exist, I worry that it will eat away at GNOME more and more.

GNOME is blessed with some wonderful leaders, and I hope that the content in this post can act as some food for thought: I am not expecting everyone to agree with me, but if this opens up a discussion about these topics I will be happy.

What is not a solution is for us to give up on GNOME. I know some folks are moving on from the project and moving onto other things, and we have more competition than ever for desktops, but I still see GNOME as an important foundational component of the Free Software and Open Source desktop today.

Now, I am sure this blog entry is going to result in some folks screaming from the rafters that I am misrepresenting GNOME and it is all Canonical’s fault, and you are entitled to your view. Traditionally I have not wanted to raise these concerns publicly as I didn’t want to cause any further harm in the relationship between Ubuntu and GNOME, but Benjamin’s blog post seemed to offer a good opportunity to throw out some feedback that might be helpful in constructing a solution.

While I don’t have much time to contribute to GNOME formally these days, I am more than happy to talk more, provide any further feedback, and help where else I can. I would love to see the GNOME project that we know and love be back in a healthier state. Thanks for reading.

Read more

Last night I posted a call for a web designer to help design the accomplishment information inside the app. Fortunately, Brandon Holtsclaw responded and sent over some CSS and HTML that was ready for me when I woke up.

It now looks like this:


Thanks to Brandon for this work! I also really liked some of the ideas shared by Andrew. We are always keen to refine and improve Ubuntu Accomplishments.

This is just another fantastic example of how incredible our community is. Within just a day Brandon’s contribution has now made Ubuntu Accomplishments better looking and more pleasurable to use for everyone. :-)

Read more

Kudos, LibreOffice

I just wanted to offer my thanks to the LibreOffice team for their continued efforts in slimming down, refining, and bringing new features to the office suite. People sometimes talk a bit of smack about LibreOffice, but the team has been doing a great job in not only liberating the codebase from an unhealthy previous stewardship with, but also building a strong community to bring LibreOffice forward as a capable and modern office suite. Of course, you can get LibreOffice nicely integrated in Ubuntu as well as other places and Operating Systems.

I just wanted to say thanks for everyone involved in this effort; keep up the great work. Also, for those of you with a few notes in your wallet, consider donating to support their work.

Read more

I spent some more time this weekend hacking on the Ubuntu Accomplishments spec I blogged about recently. I just wanted to provide a little more eye-candy of some of the progress.

When you load the app it shows you a list of the available opportunities you can achieve:

(obviously a bunch of these are dummy ones).

You can use the combo boxes at the top to choose which types of opportunities (e.g. Ubuntu Community, Ubuntu UK LoCo Team) you want to view, as well as their category (e.g. Ubuntu Community could have categories such as QA, Development, Advocacy).

Some of the opportunities have padlocks on them. This means that you need to complete another opportunity before that one is unlocked. This helps provide more of a logical journey of things that you can do.

Part of the goal of the accomplishments project is to provide better, more contextual information for how to get started doing something. As an example, if you are curious about the Filed First Bug opportunity, you can double-click it to read information about how to complete it and where to find help:

Obviously this information can be improved (and particularly the links, they are just dummy links). We would also want to add nice things like clicking on an IRC channel and it loading in an IRC client.

The Filed First Bug is a real working accomplishment. When you run the scriptrunner (part of the prototype, but not tied into the GUI yet) it will run the accomplishment’s script and check Launchpad to see if you have filed a bug. If you have, a small notify-osd bubble appears and you can see your trophy in the My Trophies view:

In the real implementation the scriptrunner would run as a service without you having to run the app to start it.

I am pleased with the progress I am making. Next I want to get some more example accomplishments tied in and then I am going to start looking at building the verification service. Should be fun!

Read more

I am a pretty terrible programmer. Anyone who has read my code can see that. Unfortunately, I tend to have lots of ideas about how we can use technology in different ways, hence why I write some code. Examples of this have included Lernid, Acire, RaccoonShow, and Jokosher.

Fortunately (or unfortunately, depending on your view), I have had Python and GTK to serve my needs here. Python, with it’s awesome batteries-included range of facilities and GTK as a simple yet flexible toolkit has allowed me to create implementations of the ideas that I have dreamed of. I started using these tools many years ago, and they have always provided a simple and effective toolset for me.

My preferred toolset of choice. One day…

Having not written any code for a while, I got the itch this weekend to start writing the trophy helper app that I wrote about as part of the accomplishments system spec that I created with Stuart Langridge and Daniel Holbach. I thought this would be a good opportunity to brush up on my skills, given that PyGTK is dead and the new world is instead the GIR approach to GTK. In a nutshell, this is where the language bindings basically match the C API for GTK thus reducing the need for people to maintain different language bindings.

Of course, this is a good thing: less work for volunteers in maintaining multiple-language support for GTK and a consistent API is good. Unfortunately, I found getting started with this new world a little more complex than I imagined.

From reading the documentation it suggested that all I needed to do was to import Gtk from gi.repository and instead of creating widgets with gtk.<foo> that they would be Gtk.<foo>. The docs suggested a few other lexical adjustments, but not much more than that. There is even a script that can convert older PyGTK code over to the new PyGI way. Unfortunately the script didn’t work for me, so I instead used it as a cheat-sheet for things that needed changing. Sadly, it seemed like some things were not covered in the script.

An example of this included when I was creating a ListStore. In PyGTK code I could add a gtk.gdk.Pixbuf to the ListStore for an icon, but I had a difficult time trying to figure out the new way to describe this. I tried Gtk.gdk.Pixbuf and Gtk.Gdk.Pixbuf but had no luck. Fortunately the awesome Ryan Lortie informed me that it needed to be GdkPixbuf.Pixbuf. Another example of this was gtk.SORT_ASCENDING in my original code and the new Gtk.SortType.ASCENDING in the new code. It seems like various functionality in GTK has been moved around and re-factored.

Unfortunately I could not find any documentation to help me with this. Sure, the C docs are available online, but I am not a C programmer; I am (in the most generous and understanding way) a Python programmer and where I previously had a pretty decent tutorial and reference guide to PyGTK, as a desktop app developer I no longer have these resources to help me. Even though I am not a fantastic programmer, I have written enough Python and GTK code to fumble my way through writing various apps, and if it stumped me as a relatively old hand, I wonder how a brand new developer would get on.

Pictured: old hand.

Now, this may sound a little critical, but it is not mean’t to be. I have tremendous respect for the GTK team, and I am hugely thankful to them for all their hard work. I am also thankful for the team that has worked on the GIR support so that multiple language support can be more efficiently provided. Thanks to all you folks for providing great tools that let a programming numpty such as myself be able to write Free Software.

I just wanted to share this because I feel like these tools are missing the final component: if we had a good solid set of reference documentation generated for each language (naturally, Python is the language I mainly care about), this would help novice and established developers use GTK more effectively. From my personal experience, my patience started wearing pretty thin when I felt like I didn’t have anywhere to find help as I navigated C documentation to try and figure out how the API fitted into my Python application. A good solid Python reference manual would have resolved this issue, and from what I understand, this could potentially be generated from the GIR files. Unfortunately, I don’t think I have the skills to help solve this problem, so I figured the best I could do was to share my story and see if anyone would be interested in helping to solve this problem.

If so, thanks in advance, and thanks again to the GTK team for all your hard work!


I found this excellent documentation after publishing this entry. This provides exactly the kind of documentation I was looking for. Thanks to anyone who helped contribute to this!

Read more

A little while back I blogged about an accomplishments system that Stuart Langridge and I designed when he came to visit a while back. The idea was simple: a de-centralized system in which we can easily define different types of accomplishments (e.g. filing a bug, submitting a patch, getting a patch sponsored, translating a string) and a means in which users can be rewarded trophies for these accomplishments as well as discovering new accomplishments and how they can be achieved.

The nice thing about the system we designed is that it is de-centralized, it uses Ubuntu One as a transport mechanism (which means we don’t have to build our own transport system and your trophies are visible across all your Ubuntu machines), and the system has a verification process to ensure that people can’t fake their community accomplishments.

I wrote this all up into a spec which you can find here.

We had an interesting session about this topic at UDS and Stuart put together a draft implementation which is at lp:~sil/+junk/libaccom-draft/. The implementation defines a set of sample accomplishments and provides a daemon that runs to maintain state on which accomplishments have been achieved and which are still yet to be completed. The system is neatly integrated into Ubuntu and accomplishments are displayed in a notify-osd bubble:

Stuart also wrote a small API (libaccomplishment) that client apps can use to query the system and present trophies achieved or those yet to be achieved. You can read more about this draft implementation here.

In the original spec there are two clients that would be in the system. A lens:

…and a helper app that is loaded when you click on a trophy in the lens which can provide more information about an accomplishment as well as showing the list of achieved accomplishments and those yet to achieve:

This weekend I decided to start writing this helper app (Michael Hall has expressed an interest in writing the lens). To get things rolling I wanted to display the list of trophies that have been accomplished. It looks like this so far:

This app is using the libaccomplishment API that Stuart provided in his draft implementation and this code could obviously used to develop the lens. There is obviously still lots to build into the app, but it provides a useful proof-of-concept for how it could work. This is a Quickly project and you can grab the code from lp:~jonobacon/junk/trophyinfo.

If you want to play with this, grab Stuart’s draft implementation (lp:~sil/+junk/libaccom-draft/) and run examples/ – this will start the daemon. You can then grab my branch (lp:~jonobacon/junk/trophyinfo) and run quickly run and see the trophies in the view.

Everything so far has been something of a proof of concept, but I wanted to see if anyone else was interested in participating. There are a number of things that we need to do:

  • Stuart’s draft implementation needs extending, and he would like to find a new owner for it. Currently the API is simple but might need fleshing out further.
  • The helper app here that I created a first cut of needs expanding and functionality added. We need to provide different ways of filtering the trophies, providing information about a specific trophy and how to achieve it, and the other features outlined in the spec.
  • Each accomplishment has a script that is run to see if you achieved something (e.g. if you filed a bug in Launchpad). In the spec, when one of these scripts returns that you accomplished the task, it creates a trophy, and syncs it via Ubuntu One to a validation server which runs the same script to verify you really did achieve the accomplishment. This then signs the trophy which then syncs back to your machine. We need someone to build this verification service.
  • We need to evaluate and extend the .accomplishment format to include documentation for how to achieve a trophy. I know Jim Campbell expressed an interest in working on this and I would love to encourage others to participate too.
  • We need to create a library of Ubuntu Community accomplishments. Stuart’s draft implementation includes an example script for filing a bug. See the list of ideas that Daniel has been working on.

Anyone interested in taking part?


Since I posted this I have made a bunch of improvements to the helper app. This includes:

  • The app now displays trophies achieved on the My Trophies page and those not yet achieved on the Opportunities page.
  • Locked trophies (i.e. those that need another trophy to be accomplished before it can be) now use a different icon (we will need new icons for all of these, so I am using stock icons right now).
  • Trophy/opportunities status is now updated with each page load which means that trophies are updated more dynamically.
  • Double-clicking an opportunities will take you to the WebKit page to display info about it. I just need to update the .accomplishment scheme to provide more useful info.

I pushed all these updated to lp:~jonobacon/junk/trophyinfo if you want to play with it. :-)

Read more

Like many of you I get a lot of email, and like many of you I often struggle to keep up with it in the context of everything else that is going on. Recently I have been trying a few little experiments in adjusting my email workflow to see if I can be more productive. I am seeing some good results and just wanted to share a few small changes I have made that have impacted my workflow in the interests of them possibly being useful for you too:

  • Using the GMail web interface – I back-end all my mail in GMail and traditionally use IMAP to access it via the default email client in Ubuntu (e.g. Thunderbird). While I love Thunderbird and Evolution, unfortunately GMail IMAP access is a touch slower than I would like (I have talked to Chris Coulson about this issue in Thunderbird who has looked into it) and the small delay in loading messages makes the email experience feel a little less sleek. Using GMail directly removes this slight lag, and it has made the email experience feel more satisfying (obviously for those of you who don’t have this lag, such as POP users, should be fine). Importantly, if you use GMail too, check out the GMail labs split pane view which makes GMail act like a traditional email client; I find that it makes GMail useful for me as opposed to the traditional view.
  • Top posting – I realized recently how anal I am about laying out my messages and replies. I hit reply, say hi to the person, respond inline, make sure there is space between my response and the quoted text, add my name etc. For most 1-on-1 conversations this level of layout is not really needed (although on mailing lists I still bottom post), and just hitting reply and typing without all this laying out makes email feel so much more efficient.
  • Don’t star mails to reply to – my traditional email workflow is that I wake up in the morning, grab my tablet, and while I wake up I read my email and star all the mails I need to respond to. I then grab breakfast, do all my calls, and then get to the starred emails to respond to. Instead of starring I experimented by marking emails unread that I need to reply to. For some reason this makes the urgency of replying more amplified in my head. I think that I just don’t like seeing unread emails, and it flips a psychological bit that makes me want to reply to them quicker as opposed to starring and my email just being another list of things to tend to. I know sounds a little strange, but this small change also affects how I handle my email.

Of course, while these things work for me, many of these won’t be of interest or work for you folks, but some may, and I just wanted to share them. I am sure there are lots of little tweaks to your own email workflow that you have found useful, and I would love to hear them in the comments. Happy emailing!

Read more

So here we are in the thick of the Ubuntu 11.10 Oneiric Ocelot development cycle, and I am really excited about the progress that is being made. I thought it could be interesting to show off some of the work that is going on with a quick screenshot tour.

This cycle has been very much focused on integrating GNOME3 into Ubuntu and focusing on fit and finish both at a software and design level on Unity and it’s components. The goal with Ubuntu 11.10 is to build on the accomplishments in Ubuntu 11.04 and to continue refining the experience.

Before, I start, remember, there are a few caveats here:

  • Ubuntu 11.10 is not finished. There are still plenty of bugs, quirks and other oddities that need fixing.
  • What you see here may well change.
  • I have smudged out some personal bits, but it should be pretty clear which bits are smudged out.

Oh, and click on the images below to see them full-size.

So let’s get started with what the typical desktop looks like right now in 11.10:

Here you can see a few changes:

  • The Ubuntu button is now on the launcher (user testing told us most people look there to launch applications).
  • There has been some small changes to the indicators in the top right part of the screen.
  • Here you can see I have a number of apps open, and see the concertina effect on the Launcher.
  • Note how there are no longer Apps / Files places on the Launcher.

So, if you click that Ubuntu button on the Launcher you see the new Dash:

Here the dash opens up in this really nice translucent way, and the launcher and panel look nice and translucent too. The translucency is actually tweaked based upon your wallpaper, so it shades it smartly.

You can see at the bottom of the dash are a series of little icons. This is now where you find your different lenses (Apps, Files, a new Music one, Gwibber etc) and this makes it much nicer to see the different types of lens, instead of having to find them on the launcher.

Let’s take a look at the Apps lens:

(I know some icons are missing in this screenshot, that is a bug)

Here you can see the lens works in a similar way as the apps lens in 11.04, but we have this new Filter Results feature (which is open in this screenshot). Here you can select different categories and those categories will only be shown in the icon view on the left. You can also search by rating which is useful for apps that are shown available to download.

Different lenses have different types of filters. As an example, here is the Gwibber lens:

As you can see this provides different methods of displaying different types of content.

One other cool element of the dash is that it uses an active blur. This means it really blurs what is behind it, so for example, it will blur a video as it plays behind it in the movie player:

Let’s now look at loading apps. Here is GEdit in it’s maximized state:

As you can see, Unity provides a lot of workable space and the shell just wraps around the app in the most minimal way possible to give you as much space as possible for the app. You can also see that when maximized the window buttons and menus are not shown; they only appear if you hover the window title with the mouse. This actually makes the desktop feel much nicer and less cluttered.

Here you can also see that the toolbar buttons have been styled with the dark theme to carry this theme throughout the desktop. This is a subtle but really nice change. As an example, here is Thunderbird with the same style applied:

In the GEdit example the icons are not monochrome but the Thunderbird ones are. We are not expecting an icon refresh in Ubuntu 11.10, but I suspect in the future we will see more icons tuned for the darker toolbars. Here is the compose window:

An app that has had quite a refresh has been Gwibber:

Gwibber is now much faster, much sleeker to use, and just a far more pleasant social networking experience. It also looks wonderfully consistent with the dark theme.

Another app that has been re-jigged is the Ubuntu Software Center:

The new Ubuntu Software Center feels faster, is more interesting to look at and explore, and feels far more integrated into the system.

I am also delighted to see the wonderful work that has gone into the GNOME Control Center in GNOME3 also brings the same consistent look, feel, and ease of use:

The whole configuration experience feels slicker and easier, and here is one of the panels:

Let’s now talk indicators:

Lots of great work and stability improvements has been performed here such as adding settings links that are relevant to each indicator, improved power and me indicators and other improvements.

Finally, a wonderful new feature added is the refreshed Alt-Tab switcher:

I absolutely love how this works, and I love how it shares the look and feel of the wider desktop. Here you can hit Alt-Tab and then use the arrow keys to move around to select the app you want to see. If there are more apps open than space in the switcher, they concertina just like in the launcher — it looks really cool.

If you have multiple windows open for an app (e.g. Firefox), you can find the icon and press the down arrow to show the multiple windows:

…and that pretty much wraps up the screenshot tour. I hope you enjoyed having a leaf through some of the features you can expect to see in Ubuntu 11.10.

I am really excited for the release, and I particularly enjoy how integrated, unified, consistent and slick the entire system feels. I also love the fact that the design, colouring, and structure is noticeably Ubuntu. So, all in all, I am really looking forward to Ubuntu 11.10 and the opportunity it has to put Free Software in the hands of more and more people. Thanks to everyone in the community who has contributed to it so far!

Beta 1 will be here on the 1st September, so get ready to test it my friends!

Read more

On Thursday 28th April 2011 we released Ubuntu 11.04, the Natty Narwhal. It was a big release for us. It was the first desktop release that shipped Unity; our new desktop interface designed to bridge the chasm to get Ubuntu and the Free Software it encompasses to the masses.

Unity in this release was very much a first cut. I am hugely proud of the accomplishments of the Desktop Experience Team, Design Team, and Ubuntu Platform Team in delivering Unity in 11.04, but we all acknowledge that there is lots to be done. Quality has to come first and foremost in the Ubuntu experience, and Mark Shuttleworth affirmed that fit and finish is going to be a key goal for Ubuntu 11.10, the Oneiric Ocelot.

In Search Of Quality

As part of this focus on quality, the Canonical Design and Desktop Experience teams are committing their time to fixing some of the design and software bugs that have been reported since the Natty release. As is usual with software teams, bugs have been identified and assigned to respective developers and these bugs will be merged into future Unity releases.

In addition to this, serious bugfixes (such as crashers) are being released as Stable Release Updates for Natty. Currently the first Unity stable release update release is currently in the proposed archive and should be released to 11.04 users over the next few weeks. The team are also focusing on a second SRU update that will resolve further issues. Of course, these bug fixes will also make it into Ubuntu 11.10 too. These stable release updates will ensure that current and future Ubuntu 11.04 users will get an even more stable experience and the Ubuntu 11.10 release will set off on the right foot when it comes to stability.

Of course, there are many software bugs open for Unity (software defects, problems, and oddities), but there are also design bugs open too. Unity was not just a first cut of a software release, but also a first cut of a design delivered in a desktop edition of Ubuntu. As such, since 11.04 there have been lots of design problems and bugs reported too. We are really keen to ensure these issues are also resolved as the Unity design continues to mature and evolve.

John Lea, fearless designer on the Design Team, has worked with the team to process these design bug reports, work with the team on proposed solutions, and get these solutions signed-off. As such, we now have this list of design bugs that are focal points for being resolved in 11.10. Some of these bugs are assigned to Canonical developers, but not all are.

To help with this work, Jason Smith from the Desktop Experience team has been going into these design bugs and providing instructions on what needs to be done to fix them. This is hugely helpful for community volunteers to fix these bugs and help improve Unity.

How You Can Help

So let’s get to the heart of the matter.

This really has nothing to do with this post, but…well, I just love ducks, and they are clearly the badasses of the waterfowl world.

Quality is something we can all improve. Whether you are interested in writing documentation, programming, testing, translating…there is a way in which you can help improve the quality of Unity in 11.10. Canonical is certainly investing in this, but we are an Open Source community and such the wider community we can all help.

If you are a developer and know some C++, you can make Ubuntu better for millions of people. A few hours of your time working on some of these bugs could bring great quality of experience to Unity and Ubuntu and help us to take Free Software to even more users as a stable, secure, feature-packed, and well-designed platform.

To get started, take a look at Jorge’s first post about Unity contributor plans in 11.10 – this post explains where to find the bugs, how to get started, where to find help and more. Jorge will be posting every week with new opportunities and bugs to work on and showcasing the great work of our community.

With the Desktop Experience team working on some bugs and also new features, and the community working to help bring an even higher-grade of quality and fix more bugs, together we can deliver a rocking 11.10 release!

I will be talking more in later posts about other ways of helping, such as documentation, translations and testing. I look forward to see the Unity contributor family growing, and don’t forget to come and join us in #ayatana on freenode.

Read more

I remember when I first got involved in Linux and Free Software, the Linux desktop was a pretty ugly place. Much of the reason for this was that getting a graphical display running was in itself a bit of a luxury, and one earned with lots of config file hacking and poking. When you did manage to get it up and running it looked a little like this:

Today things are really quite different. I was thinking about this sheer change in desktop quality, and felt an incredible urge to share the reasons why I love my desktop and love the integration. All of this is based on a default Ubuntu 10.04 Maverick Meerkat installation with Unity enabled as the desktop. You can switch on Unity with:

sudo apt-get update
sudo apt-get install unity

…and then at the login screen select Ubuntu Netbook from the list of available sessions. Rock and roll!


I am really digging Unity. While still quite new and still maturing, I find it’s current form really sleek and easy to use. I like the design and the structure of how I get at my apps, my data, and control what is going on on my desktop:

One element of Unity that I really enjoy is the theme and the new Ubuntu font. It really gives the desktop a subtle sheen, and the dark theme makes it look slick and sexy.

One key feature of Unity that is going to become an increasingly big deal is the Places API:

Unity provides a consistent user interface for displaying different types of content (such as files and applications), but this extendable. Neil Patel who is one of the lead Unity hackers has already created an example of this work which plugs YouTube in, and it is great to see this kind of content embedded into the experience. I can’t wait to see how application authors will use this technology to provide better access to content, all using this consistent user interface.

As many of you know, Unity will be switched on by default in Ubuntu 11.04, and the performance and accessibility issues are currently being tended to. For more details see this blog post.


Microblogging has become all the craze over the last few years, and Twitter, Facebook,, and others have all made the micro-blogging experience simple and useful. I love the micro-blogging support built right into my desktop, firstly with Gwibber:

Gwibber is an awesome micro-blogging tool. It provides simple and quick access to see all of my accounts together, helps me see a standard set of searches that I care about, and lets me tweet once and have the message go to all of my accounts.

In addition to this I love how I can tweet right from my desktop with the Me Menu:

This is how it should be: when the thought or inspiration takes me, I always have a quick interface for tweeting, irrespective of what I am doing, because it is built into the shell of the desktop. Rock and roll!


Speaking of indicators, I use the indicators all the time. In particular, I find the Messaging Menu really useful:

It is incredibly handy having all the things that need my attention to appear in the same place, all neatly packed into that menu, and when it lights up I know I need to check it.

In addition to this, the recent addition of the Sound Menu enhancements are awesome:

Like many, I put music on during the day when I work, and typically the only things I need to with it are use the transport controls (e.g. to fast forward, replay, or pause a song), or more often than not, see which artist/album is currently playing if I have it on shuffle. No longer do I need to keep showing the Rhythmbox window to do this; it is right there in my sound menu. Really handy. :-)


Speaking of Rhythmbox, I love it to bits:

Rhythmbox lets me manage my music collection easily, and has lots of nice features to really enjoy the music I listen to.

Sure, we are moving to Banshee in 11.04, but I love that too – I think we have such great choice in the media player world. One thing I really love about Rhythmbox is that I can enable the DAAP plugin and I can control and listen to my songs via my Playstation 3 and hear my tunes on our home theater system. Much better than laptop speakers, and a doddle to do this. :-)


Like many of you, email is at the center of my life, and I find Evolution serves me really well:

A lot of people talk a lot of smack about Evolution, but I think the Evo team have done a great job. I get a lot of mail, and Evolution helps me set up filters to prioritize how I see, respond to, and manage my mail. What’s more, it integrates nicely into my desktop, and integrates perfectly in the Messaging Menu.


Instant messaging is a common thing I use my desktop for, and again this is all perfectly handled with Empathy:

I love how Empathy brings all my messaging accounts together and provides the same interface for interacting with my friends. It looks beautiful, works smoothly, and is a pleasurable experience.

Getting More Software

I have also been delighted to see how the experience of getting more software has been refined with the Ubuntu Software Center:

We have always had this incredible catalog of software available for Ubuntu, but now it is finally becoming more accessible for new users. This will also becomes infinitely more useful when ratings and reviews land in the Ubuntu 10.10 release – this will help all the really great software bubble to the surface!

In Conclusion

In addition to my Ubuntu machines, I have a Windows 7 machine that powers my home studio. When I compare and contrast my Ubuntu installation with Windows 7, it feels like Ubuntu is much better attuned to what most users want – awesome web browsing, email, communications, media playback and production, and a consistent, attractive experience.

I think we should all be hugely proud of how far we have come with the Linux desktop, and I am intensely proud of how slick and integrated Ubuntu is, and the impact the design team has had on the experience. I would love to hear why others love their desktops too, do share!

Read more

Mark just announced at the Ubuntu Developer Summit in Orlando that we will be shipping the Unity environment in the Ubuntu desktop edition. Unity is the environment we shipped on the Ubuntu Netbook Edition for the first time in Ubuntu 10.10 Maverick Meerkat, and users and OEMs have been enjoying the experience. It is an environment that is inspired by great design, touch, and a strong and integrated experience.

I think this is a fantastic opportunity for Free Software, and this is going to be a busy cycle. We have a lot of work to do, and we know that quality is a firm focus for this release, and we have identified a solid set of issues we need to focus on and resolve, but I know the final product will be something that we will all be proud of. Another key focus is performance; we have already started porting Unity from mutter to Compiz and the initial work is much faster, most notably on hardware that has traditionally had the most trouble from bug reports. Quality meets design meets performance. Together as a community we can make this rock.

There is going to be some questions about this decision in relation to GNOME. I want to make something crystal clear: Ubuntu is a GNOME distribution, we ship the GNOME stack, we will continue to ship GNOME apps, and we optimize Ubuntu for GNOME. The only difference is that Unity is a different shell for GNOME, but we continue to support the latest GNOME Shell development work in the Ubuntu archives.

If anyone has any questions, I will be running around the Ubuntu Developer Summit like a headless chicken, so feel free to grab me here if you have any questions, and I will get online to respond to queries when I get time away from sessions.

Thanks, folks.

Read more

Some time back the Ayatana project introduced the Application Indicator Framework, based upon technology created by the KDE project. We have been shipping this technology in Ubuntu for a few releases now and it makes the top-right part of the desktop a smooth, efficient, and pleasant experience, getting over the inconsistent and limiting notification area we had before.

To help build integration in the GNOME panel for this indicator work we had Ted Gould, Cody Somerville, and Jason Smith produce an implementation complete with C, Python and C# bindings, had Aurélien Gâteau continue to perform his excellent work with KDE, and Jorge Castro to help spread awareness of this work. In addition to this we contracted some developers to port apps with notification indicators that we ship in Ubuntu to the new framework, and this included apps such as Brasero, GNOME Bluetooth, GNOME Power Manager, Gnome Settings Daemon, XChat-GNOME, iBus, Nautilus, Policykit GNOME, Empathy, Gwibber and more. All of these patches are publicly available if other distros would like to use them.

The community has really got involved with the technology too, with community patches for Lernid, Banshee, LottaNZB, and DejaDup, and System Monitor, Weather, Screenshotting, Workspaces, Device Mounting indicators, support for the indicator framework built into AWN and Lubuntu, and more. I am absolutely delighted to see so much interest from application developers in the technology.

Read more

Earlier this week at GUADEC, the always affable Dave Neary presented his GNOME Census work. Unfortunately, I was not there to see it, but I read his excellent post on the topic.

One of the reactions from the survey was that Red Hat are responsible for 16% of the contributions to GNOME whereas Canonical are responsible for a measly 1%.

Of course, this has generated some flame, such as a particularly angry post from Greg DeKoenigsberg and the rather pithy response from Jeffrey Stedfast. Greg is clearly pissed, and Jeffrey is clearly pissed at Greg being pissed, and I suspect Greg is going to get even more pissed at Jeffrey being pissed. The worse thing is that they are both going to be pissed at me for this blog post.

First I want to put these figures in perspective and then I want to talk about how we read the figures we do have.

I think the GNOME Census report is excellent, and it provides some excellent visibility into contributions in GNOME, but it only takes into account upstream contributions to GNOME itself. What the report doesn’t take into account are upstream contributions that are built on the GNOME platform but (a) not part of official GNOME modules, and (b) hosted and developed elsewhere, such as Launchpad. As such, while the report is accurate for showing code and contributions accepted into GNOME, there are also many projects built on GNOME technology that are not taken into account due to non-inclusion in GNOME modules or being developed outside of GNOME infrastructure.

As a general rule, Canonical staff develop inside Launchpad. The reason is simple; Launchpad and Bazaar provide a powerful development environment that was also built by Canonical and we therefore have lots of internal skills and best practice based on these tools. Launchpad is also a fundamental component in Ubuntu development and all the software we develop ultimately ships in Ubuntu, so using the same development forge makes sense. Finally, the site is a Free Software and Open Source project, so there really no philosophical reason to move, testified by the 18,000+ Free Software projects happily using Launchpad already.

Canonical is actively developing upstream desktop software, but doing it in Launchpad. Some examples include:

This is by no means the full list, and is other work such as Simple Scan, the Hardware Drivers tool, Computer Janitor, and more. Many of these contributions (such as Application Indicators and Simple Scan) could bring real value to GNOME, but they have not been accepted. I know that the Canonical engineers who work on them would be delighted if they were included in GNOME.

The above list also doesn’t include significant upstream investment in other areas such as Upstart, Bazaar, Launchpad, and a full team building Ubuntu. I don’t want to turn this into a “who contributed more” competition, but I think for some to suggest Canonical is a bad citizen who is not contributing upstream code is unreasonable. To suggest that Canonical has limited code inside approved GNOME modules is fair.

So that was the first thing I wanted to clarify; Canonical does invest heavily in upstream work, but GNOME is not the only home for upstream contributions.

If there is one thing that the GNOME Census has really outlined is that we should all be proud of Red Hat and their contributions to GNOME. You only have to take a look at all the red items on this image to get a feeling for the wonderful work that Red Hat is doing inside GNOME. Novell too. Look the green items in there; Novell has done a wonderful job maintaining many modules inside GNOME. In fact, there are many companies investing inside GNOME modules and inside GNOME infrastructure. I don’t believe it would be fair to undermine these contributions in any way; they are testament to the ethos of those companies and their commitment to GNOME. All of the people working at those companies are doing good work within the spirit of Free Software.

Likewise, I don’t think it is fair to undermine Canonical’s contributions just because many of them exist outside of GNOME. Our engineers are also doing good work within the spirit of Free Software. I have never claimed for a second that Canonical are equal to Red Hat and Novell in terms of our accepted contributions in GNOME; it is clear that there are far few contributions from Canonical staff inside accepted GNOME modules, but this does not for a second mean that Canonical is not (a) producing upstream contributions and (b) heavily invested in the GNOME platform. Ubuntu, our primary product is a GNOME desktop, and the vast majority of our engineers are GNOME users and developers and they work every day on a GNOME based product.

So in a nutshell, this is my take: both Red Hat and Canonical invest heavily in Open Source development, but they do it in different ways and different places. The GNOME Census clearly outlines that within GNOME modules, Red Hat are doing far more, but that doesn’t mean that Canonical are sitting on their thumbs and doing nothing, far from it.

Read more

I have always been a fan of helping in any way I can to encourage people to support small organizations and businesses who are doing their best to be successful by working hard and providing a friendly, honest service.

For the earlier part of this week I am in The Hague at GUADEC, and I stumbled across a small espresso shop that is the embodiment of these kinds of small business. It is impeccably clean, the food is awesome, the coffee is fantastic, it is good value, and the guy who runs the shop is the definition of kind and welcoming. Oh, and it has great wi-fi too. :-)

So, I wanted to share with all my friends who are visiting GUADEC too to come and support this guy’s small business, drink some coffee and leach his Internet. :-)

The address is: 7 o’clock Espressobar, Wagenstraat 187 2512 AW Den Haag and if you are walking back to the hotel before you walk over the small bridge you will see it on the left with a big Coca-Cola sign above it.

More details on the website.

Read more

I am totally digging the sound menu that is shipping in the development branch of Ubuntu 10.10 Maverick Meerkat:

It feels well designed, implemented and sleek. Great work mpt and Conor!

Read more

Recently we have been investing in creating an implementation of a panel-based menu that we are planning on shipping with the 10.10 version of the Ubuntu Netbook Edition. As with our other projects, this is entirely Open Source and you can download, test and play with it from this page.

So far for testing purposes we have been leaving on the in-application menu, but yesterday I switched it off to get the full experience. To do this I edited /etc/X11/Xsession.d/80appmenu to set APPMENU_DISPLAY_BOTH=0. I was aware of the design justification of having a single menu; it is easier for users to find it due to it’s consistent place, and particularly for netbooks, it saves on significant screen-real estate use. Now I can absolutely see and feel the benefits; I am loving having the menu there and my desktop feels sleeker and more consistent.

Of course, there is much to be fixed — such as the fact that GIMP crashes the menu — but most apps are working great and while this is not designed or scoped for the desktop, I think I might just leave it on. :-)

What’s more, an added benefit of this implementation (and using the dbus-menu approach) is that KDE applications running in GNOME have their menu’s rendered as GTK widgets (and vice versa), helping to integrate GNOME and KDE apps better. Right now the in-app menus are still visible, but the following screenshot shows K3B’s menus rendered as GTK menus:

Awesome! :-)

I just want to offer some kudos to Cody Russell for writing the menu, Aurélien Gâteau for his awesome work in ensuring all of this works with KDE, Jorge Castro for coordinating much of the testing, and for our awesome community of testers and bug reporters for helping to bang it into shape. You are going to help really make Ubuntu Netbook Edition 10.10 really rock, and of course anyone who chooses to use it on their desktop.

Go and find out more and play with it yourself here.

Read more

In the Ubuntu 10.10 cycle we have committed to implementing application menus in the Ubuntu Netbook Edition release of Ubuntu. There are many benefits to this approach, but I will you to the design rationale that was announced recently. I personally think this is going to be a tremendously valuable feature and continues to optimize Ubuntu for screen real-estate.

To satisfy this feature, the Desktop Experience team have produced an implementation called indicator-appmenu which has been worked on by the always awesome Cody Russell and Ted Gould. The implementation essentially re-routes application menus over dbusmenu so that they can appear in the panel; the technology is based on the same technology that drives the application indicator framework. Aside from the design rationale benefits, the implementation also supports GTK and Qt menus out of the box and will render Qt menus in GNOME with GTK widgets and vice versa. All in all I think it is hugely exciting work.

For the majority of applications that use standard menu widgets, applications should just work out of the box. We are though keen to test as many applications as possible to ensure they work and identify problem spots. Like the last cycle, this new code has been released very early for testing and improvements, and we are keen to have as many folks test, file bugs and where possible file patches to fixes.

To make this as simple as possible, this page explains how to download, test and provide feedback. Importantly, you don’t have to be running Ubuntu Netbook Edition to test – you can use the normal Ubuntu desktop edition!. Packages are already available in a PPA for Lucid and we have listed all of the apps that could do with some testing. We have also includes instructions for how to file bugs for apps that have issues; this will make it easier to produce fixes. One important note: up until alpha 2 we are deliberately leaving the menus switched on in both the application and in the panel – this provides a great way to compare and contrast the normal app menu with the panel menu to ensure they are the same.

Thanks to everyone who participates in the testing; this is sure to make the Ubuntu Netbook Edition rock even harder. :-)

To get started testing, click here!

Read more