Canonical Voices

Posts tagged with 'planet ubuntu'

Chris Johnston

I have been a Google Chrome user for a while now, and I have two different ‘Users’ in Chrome. The default user is my personal account, and then I have a work account. For my personal email I use a Google Apps Gmail account and just check my email with Chrome. I use Thunderbird to check my work email. For a while now I have had an issue where I click a link from Thunderbird and it tries to open in my default Chrome user. This doesn’t work very well as I am not logged into most of my work accounts on my personal user. This drove me nuts! Now I have to copy and paste the URL into the work user Chrome window. After a little Googling tonight, I was able to setup Thunderbird to open URLs in my work user Chrome browser. Life is much better now! To do this, I had to add two lines to prefs.js. On Ubuntu 13.04, prefs.js is located at ~/.thunderbird/ /prefs.js where is what appears to be a random set of numbers/letters followed by .default.

The two lines I added are:

user_pref(“”, “/opt/google/chrome/google-chrome –profile-directory=’Profile 1′”);
user_pref(“”, “/opt/google/chrome/google-chrome –profile-directory=’Profile 1′”);

If the profile-directory for the Chrome user you are wanting the links to open in is different than what I have, you may need to edit the directory name. This worked for me on Raring (what will become Ubuntu 13.04) with Thunderbird 17.0.4.

Read more
Chris Johnston

New OpenPGP Key

Friday I decided to create a new OpenPGP key to migrate off of my 1024D keys to something a little more current as far as how secure it is. With this, I created a 8192R key. I have also created a transition statement. If you trust me and wouldn’t mind signing the key and uploading it back to the keyserver after you are complete, it would be very much appreciated.

Read more
Chris Johnston

Yesterday Anthony Lenton released django-openid-auth version 0.5 which includes support for Django 1.1 through 1.4. It also has quite a number of bug fixes in the release as well. The new version is available from PyPi today. I plan on getting the new version into Raring soon if someone else doesn’t get to it first. I will also work with the Debian maintainer to get it into Debian soon.

Read more
Daniel Holbach

Hot on the heels of the announcements of the Ubuntu SDK and the Touch Developer Preview, we bring you the first ever Ubuntu SDK Days.

Make apps happen on all of these devices

On Thursday, 14th March and Friday, 15th March a number of app developers and Ubuntu SDK creators will get you started writing apps for Ubuntu on multiple devices. It’s surprisingly simple, and since the announcement we’ve seen many early adopters try out the SDK and the first apps up and running. We will  answer your questions, talk about best practises and show you the power of the SDK.

Here a quick overview over the sessions we’ll run:

  • Installing and Configuring the SDK
  • Writing your first app with the SDK
  • Writing games with QML and Javascript
  • Live update from the development progress of the Touch Core Apps
  • Several Q&A sessions
  • Making the best of the Ubuntu App Design guidelines
  • More about the SDK skunkworks projects
  • Introducing Friends and Gwibber QML
  • Writing a new generation of Scopes
  • Lightning talks and Project demos

How to join

Participating is easy: just head to to watch the sessions on the schedule. Videos will be available after the event, to ensure you can watch the content even if you couldn’t make it to the session you wanted.

You can ask your questions on the chat widget on or join the #ubuntu-app-devel IRC channel on Freenode directly.

Check out to see the timetable of the event, be there for lots of fun and bring your friends – and your questions too!

Read more
Chris Johnston


Most people are probably aware by now that this Tuesday, 5 March starts the first of the new virtual Ubuntu Developer Summit events. In order to handle the changes nicely, we have made some changes to the Summit Scheduler. The changes that we made allows a meeting and/or a summit to be set as ‘virtual.’ When a meeting is set as virtual, the meeting page will render with a new virtual layout. This layout includes the Google Hangout broadcast, the IRC channel via the webchat client, and the Etherpad, all embedded on in the page. The required participants for a meeting will also be given a link to participate in the hangout. Both the embedded broadcast and the hangout link have to manually be added by the track lead prior to each meeting. If the hangout broadcast isn’t available when you visit the page, please be patient and wait for the data to be added. Once the information is added to Summit, the meeting page should automatically load the hangout broadcast.

Please don’t forget to test using hangouts prior to UDS starting so that we can minimize the number of issues we have with the hangouts. A “best practices” guide has been created for use during the Ubuntu On Air events. Please take the time to look at these practices before Tuesday.

Read more
Daniel Holbach

Yesterday we released Ubuntu Touch Preview images for four devices. This is a huge milestone for Ubuntu. We always wanted Ubuntu to be everywhere and the Preview shows quite nicely how well the vision of a design family across different form factors works.

There is quite a bit of work to be done, we all know that, but it’s a giant opportunity for us, the Ubuntu community. Everybody can contribute to the effort and we can show the world how we believe software should look like.

How you can help? Easy.

  • You can install the Ubuntu Touch preview images on a device and test them.
  • You can help out designing and shaping the Ubuntu Touch Core Apps.
  • If you are a bit more experienced with bringing software up on new devices, you can help us porting Ubuntu Touch to new devices.

Did the last point find your interest? Excellent, because we just took the wraps of our Ubuntu Touch Porting guide. This also marks the start of our Ubuntu Touch Port-a-thon. We want to get Ubuntu Touch up and running on as many devices as possible.

If you don’t mind some tinkering, maybe some kernel building, some configuration meddling and flashing your device repeatedly, you might just the person we’re looking for.

The porting guide should help you understand

  • how Ubuntu Touch works internally,
  • which bits are generally involved and where to find them
  • how to submit patches
  • how images are put together
  • how to test them and
  • where to find help

To get you started and into the mood, you might want to join us today, at Friday 22nd February at 15:00 UTC on when two super heroes of the Ubuntu Touch project, namely Ricardo Salveti and Sergio Schvezov, are going to talk to us about the technical aspects of the phone and the tablet.

Reliable sources tell us, there’s going to be a surprise announce during the hangout as well.

This is the opportunity we always wanted. Let’s make it happen. Bring Ubuntu to the world in all its beauty.

Read more
David Planella

We’re thrilled to announce yet another significant milestone in the history of the Ubuntu project. After having recently unveiled the Ubuntu Touch Developer Preview, today we’re publishing the full source code and images for supported devices.

For developers and enthusiasts only

While a huge amount of Engineering and Design work has been put into ensuring that the foundations for our user experience vision are in place, we want to stress that the Ubuntu Touch Developer Preview is currently work in progress. We are releasing the full code at this point to align to our philosophy of transparency and open source development.

We recommend to install the Touch Developer Preview only if you are a developer or enthusiast who wants to test or contribute to the platform. It is not intended to replace production devices or the tablet or handset you use every day.

Flash your device

All that said, let’s get on to how to install Touch Developer Preview from a public image on your device.

What to expect after flashing

Not all functionality from a production device is yet available on the Touch Preview. The list of functions you can expect after installing the preview on your handset or tablet are as follows. For detailed information check the release notes.

  • Shell and core applications
  • Connection to the GSM network (on Galaxy Nexus and Nexus 4)
  • Phone calls and SMS (on Galaxy Nexus and Nexus 4)
  • Networking via Wifi
  • Functional camera (front and back)
  • Device connectivity through the Android Developer Bridge tool (adb)

Supported devices

The images we are making available today support the following devices:

  • Galaxy Nexus
  • Nexus 4
  • Nexus 7
  • Nexus 10

I’m all set, show me how to flash!

You will find the detailed instructions to flash on the Ubuntu wiki.

Install the Touch Developer Preview >

Contributing and the road ahead

These are exciting times for Ubuntu. We’re building the technology of the future, this time aiming at a whole new level of massive adoption. The Touch Developer Preview means the first fully open source mobile OS developed also in the open. True to our principles this milestone also enables our community of developers to contribute and be a key part of this exciting journey.

In terms of the next steps, today we’re making the preview images available for the Ubuntu 12.10 stable release. In the next few days we’re going to switch to Raring Ringtail, our development release, which is where development will happen on the road to our convergence story.

You’ll find the full details of how the infrastructure and the code are being published and used on the Ubuntu wiki.

Contribute to the Touch Developer Preview >

Presenting the Ubuntu SDK Alpha

But there’s more! To further celebrate the Touch Preview, we’re very proud to bring some exciting news that app developers will surely enjoy: the Ubuntu SDK Alpha release.

In fact, development of the SDK still keeps happening in the open and on a rolling release basis. But coinciding with the Touch Developer Preview, we thought that the latest release came with so much goodness, that we decided to label it in celebration.

Feature highlight: remote app deployment

Perhaps the coolest feature ever since the SDK was released: you can now deploy and execute the apps you create straight from the IDE.

Applications developed with Qt Creator can now be seamlessly and securely transferred and executed to a device just moving two fingers. Remember this shortcut: Ctrl+F12.

Inline with how easy and lightweight the process of creating a phone app is, a lot of work has been put into ensuring all complexity is hidden from the developer, yet it works solidly. Behind the scenes, SSH key pairing with the remote device works on-the-fly.

Here’s the lowdown:

  1. Plug in your mobile device running Ubuntu on the USB port of your computer
  2. Make sure your device is also connected to a wireless network (SSH key pairing happens over the air)
  3. Start Qt Creator from the Dash, and select the new Devices tab
  4. Press the Enable button to activate Developer Mode
  5. Once the device is connected, you can develop your QML projects as usual (check out the new project wizard as well) and press Ctrl+F12 to install and execute your app on the remote device

Tooling updates

With Qt Creator at its heart, the set of tools app developers use on an everyday basis to author their software, have seen major improvements:

  • Qt Creator has been updated to the bleeding edge version: 2.7. We expect this version to continue maturing together with the platform and the SDK.
  • Ubuntu application templates and wizard are now available to easily start creating apps that run on the phone and tablets.
  • The visual user interface designer in Qt Creator now works with QtQuick 2, the framework upon the Ubuntu SDK is based.

User Interface Toolkit updates

The UI Toolkit is the part of the SDK that provides the graphical components (such as buttons, text entries, and others) as building blocks that enable the basic user interaction with the underlying system. A new component, polishing and bug fixing have set the theme for this release:

Install the Ubuntu SDK Alpha

By now we’re pretty certain you’re looking forward to installing and putting all of that development goodness to the test.

That’s an easy one, if you haven’t yet install the Ubuntu SDK.

If you already installed the SDK, just run Update Manager from the Dash and update the Ubuntu SDK package as prompted. Or alternatively, if you prefer the command line, just fire up a terminal and run ‘sudo apt-get update && sudo apt-get install ubuntu-sdk’.

And that’s pretty much it! Be sure to check out the release notes for any additional technical details too.

Let us know what you think

We’d be delighted to hear what you think and get your feedback on how you are using the SDK and ways in which it could be improved. So do get in touch with us or report a bug if you find any issues.

Time to start developing beautiful apps now!

Read more
David Planella

We’re thrilled to announce one of the most expected resources for Ubuntu app developers: the App Design Guides.

The App Design Guides site is the first installment of a live resource that will organically grow to provide guidance and enable app developers to build stunning, consistent and usable applications on a diversity of Ubuntu devices.

Together with the Ubuntu SDK preview, the App Design Guides complete yet another chapter in the Ubuntu app developer story. Developers have now the tools to create beautiful software, along with all the information related to UX, behaviour, patterns and visual design to ensure their apps provide a solid, clean and enjoyable user experience.

And consistent with the Ubuntu philosophy and our beliefs, all of these tools and guides are available to everyone as open source and for free.

Show me the Ubuntu App Design Guides! ›

Updating the core app designs for Ubuntu App Guides compliance

We have recently kicked off a community-driven process to design and implement a set of 12 core apps for Ubuntu running on phones. The first stage of the project consisted in asking community members to participate in the submission of designs to be used as input and food for thought for the core app developers.

The response so far has been overwelming:  over 50 community designers signed up for this initiative, submitting nearly 90 mockups on the Ubuntu MyBalsamiq site we set up for this project.

Following the App Design Guides go-live, it is now a great opportunity to ensure those designs follow the guidelines for a consistent app experience on Ubuntu. Therefore, we’d like to ask everyone who submitted a design to review them and update them to make sure they are inline with the App Design Guides.

Reminder: if you want to collaborate in this design project, just drop an e-mail to David Planella <david(dot)planella(at)canonical(dot)com> and Michael Hall <michael(dot)hall(at)canonical(dot)com>.

Open design and collaboration

Continuing with the trend of open and collaborative design, we want to hear from you!

The Guides are a resource that will grow together with the needs of app developers, so we’ll greatly appreciate your feedback on the Ubuntu Phone mailing list (remember to prepend the subject with [Design]) and if you’ve got any questions about them, just ask on Ask Ubuntu.

Stay tuned for updates and for some visual designs for core apps from the Canonical Design team coming soon!

Read more
Stéphane Graber

NorthSec 2013

NorthSec logo

So, when I’m not busy working on Ubuntu, or on LXC, or on Edubuntu, or … I also spend some of my spare time preparing the upcoming NorthSec 2013 security contest which will be held from Friday the 5th of April to Sunday the 7th of April at ETS in downtown Montreal.

NorthSec can be seen as the successor of HackUS 2010 and HackUS 2011 which both were held where I currently live, in Sherbrooke, QC. This year, we’re moving to Montreal, in the hope of attracting more people, especially from other Canadian provinces and from abroad.

I’m personally mostly involved with the internal infrastructure side of things, building the Ubuntu based infrastructure required to simulate the hundreds of servers and services used for the contest. All of that while making sure everything is rock solid and copes extremely well under pressure (considering what our contestants tend to throw at us).

I also usually get involved with some of the tracks, mostly the networking one, trying to think of really twisted setups ranging from taking over an active IPv6 network to hijacking IPs by messing with a badly configured BGP router (taken from past editions).

Outside of our twisted network challenges, we have quite a few more things to offer, here’s the current list of tracks for this year:

  • Trivias (they seem easy but people are known to have wasted hours on them)
  • Web (sql injection, xss anyone?)
  • Binaries (because we know you love those)
  • Networking (my track of choice)
  • Reverse Java

And if anyone manages to finish everything, don’t worry, we’ll come up with more.
As far as I know, we never had a single team get bored in the past two editions ;)

So if you’re interested in computer security, want to try to prove how good you are at finding security flaws and exploiting them or just want to see what that thing is all about, well you should consider a trip to Montreal in early April.
All the details you need are at:

If you are a company interested in helping us with sponsorship, I hear that we’re always looking for more sponsors. So if that’s something you can help with, feel free to contact me directly at: stgraber at nsec dot io

Read more

For quite some time now we have had some information about how to join the Ubuntu community at This documentation has traditionally been pretty limited, doesn’t really help get people started effectively, and doesn’t represent the humanity and personal nature of being part of the Ubuntu community.

We want to change that in this cycle.

At UDS we had a great discussion about solving this problem. The challenge that we were faced with in refreshing this content is that the Canonical web team own these pages and have limited bandwidth for incorporating changes and improvements. As such we agreed to transition this content to a site where we can more readily make improvements and updates.

This week I asked Michael Hall to deploy WordPress (which we agreed at UDS as our platform) with the Ubuntu theme to CanoniStack. Today we had a discussion to flesh out the information architecture for the site (largely inspired by the current IA). We are now in a position where we have the skeleton of the site and we want to produce some awesome content tuned to the needs of new community members, as well as other content for our entire community (such as information about governance and the code of conduct).

To get this content in shape we have created a series of pages on for each page of content and we are transferring our existing content to these pages. We as a community can then collaborate on these pages and ensure they are crisp, concise, and provide all the information we need. When these pages are complete we can then transition them to the WordPress instance. When the content is there we will then ask the Canonical IS team to deploy it.

Help Us! Join the Docs Jam!

To get this content in shape, on Thursday 13th Dec 2012 we are going to be holding a documentation jam to work together and get this content refined and finalized. This is how it works:

  • You can see the list of pages and the links to the pads by clicking here.
  • We will spend the day working on the content, refining and improving it and ensuring there are no typos.
  • All the content should be writting using Markdown format; this makes it simple to write and merge into the WordPress site. For how to format your content with Markdown, see this guide.
  • We will coordinate this work in the #ubuntu-doc channel.

The day after we will then move the completed content over to the WordPress site and finalize any stylistic changes. We should then be in good shape to get things moved over to production.

We are looking to our wider community to help us get this content rock solid. If you have a few hours (or longer) to help with this effort, please join us in #ubuntu-doc on Thursday 13th Dec 2013!

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

A few months ago the second edition of my book The Art of Community was released. You can buy the book in print or for your e-reader/tablet, or you download the Creative Commons licensed PDF. If you download the free PDF all I ask is that you put a review up somewhere online to help spread the word about the book. If you are reviewer for a website/magazine and want to review the book, please get in touch with me and we can coordinate a review copy.

For those of you who have not released a book yet, it is a bowel-shakingly nerve-wracking experience. You invest months of your spare time into writing it, and you really want people to enjoy it. This nervousness is particularly amplified in the case for a book that you write about your profession, such as The Art of Community was for me.

Little did I realize that writing a second edition would be even more nerve-wracking. You see, the first edition of the book did pretty well; it had four-and-a-half star ratings on Amazon and performed favorably in the reviews. While naturally thrilled with the response, a big chunk of me concluded that this positive response was simply down to dumb luck.

Then, when I started writing the second edition, my worries ballooned. I was now concerned that my rookie-luck with the first edition could be washed away with a poorly written and released follow-up edition, thus tarnishing the reputation of something I was already proud of. Now, this might sound a bit silly to some of you, but this was actually keeping me awake at night throughout the writing process. When I finally clicked send to submit the final manuscript to O’Reilly I was a combination of relieved that it was complete, but also nervous that my writing was now cast in stone, ready for the feedback cycle to begin.

So, with a nervous gulp, the second edition was released. I didn’t want to jump to conclusions with the first few reviews; it takes time to take the pulse of opinion in your readers, so I left it for a few months to see how it did.

It has now been those few months since it’s release and fortunately it seems the second edition is doing great too. If the page is anything to go by (and I think it is generally could summary of feedback), it has received positive reviews and maintains a four-and-a-half star rating with 43 reviews.

In reading the page, it seems Amazon pulls out summary quotes from its range of reviews and the summaries (which can be a combination of good and bad quotes). It starts with this one:

Referencing his experiences as community manager of Ubuntu, Jono Bacon provides best practices.

…then this:

The stories laced throughout the book show practical applications of the material and make it a thoroughly enjoyable read.

…and then this:

In other words, this is one of the best books I have had the pleasure of owning in some time, and has earned a permanent spot on the book shelf.

I will take ‘em! I was pretty surprised and flattered to see these summaries. Thank-you to everyone who has purchased and reviewed the book. If you enjoyed the book and haven’t reviewed it yet, please do post your review either on your blog or wherever you purchased it.

About The Book

If you are unfamiliar with what is in the second edition of The Art of Community, here is a rundown of the content, coverage, and interviews. Remember, you can buy the book in print or for your e-reader/tablet, or you download the Creative Commons licensed PDF. If you download the free PDF all I ask is that you put a review up somewhere online to help spread the word about the book.

  1. The Art of Community
  2. Planning Your Community
  3. Communicating Clearly
  4. Processes: Simple Is Sustainable
  5. Supporting Workflow with Tools and Data
  6. Social Media New!
  7. Building Buzz
  8. Measuring Community
  9. Managing and Tracking Work New!
  10. Governance
  11. Handling Conflict and Relationships
  12. Creating and Running Events Expanded!
  13. Hiring a Community Manager
  14. Community Case Book New!
  15. Onward and Upward New!


Chris Anderson, editor-in-chief at Wired magazine, and author of the New York Best-selling The Long Tail.

Also includes the foreword from the first edition with Leo Laporte, founder of the TWiT Network.

Chapter 1: The Art Of Community

I begin the book with a bird’s-eye view of how communities function at a social science level. We cover the underlying nuts and bolts of how people form communities, what keeps them involved, and the basis and opportunities behind these interactions.

Coverage Includes:
  • Collaboration-Driven Ethos
  • The Essence of Community
    • Building Belonging into the Social Economy
    • The Basis of Communication
    • Unwrapping Opportunity
  • A Community Manager: Becoming the Community
    • Cracking Open the Personality
    • Trust Is Everything
    • The Value of Listening
    • Avoid Ego, or Others Will Avoid You
    • Theory Versus Action: Action Wins
    • Becoming Yourself
  • Moving Forward

Chapter 2: Planning Your Community

Next we carve out and document a blueprint and strategy for your community and its future growth. Part of this strategy includes the target objectives and goals and how the community can be structured to achieve them.

Coverage Includes:
  • Planning for Success
    • Community: The Bird’s-Eye View
  • Teams: The Building Blocks of Belonging
    • Finding Your Place
    • Units of Belonging
    • Read Versus Write
    • Read-mostly communities
    • Write-centered communities
  • Meritocracy
  • Working Together Is Success
  • Diversity
  • Designing Your Community
    • Baking in Openness
  • Building a Mission Statement
  • Building a Strategic Plan
    • Structuring the plan
  • Filling Out the Plan
    • Brainstorming Ideas
    • Technique 1: Question assumptions
    • Technique 2: Think outside the box
    • Technique 3: Let’s make it suck
  • Pulling Together the Threads
    • Teams: Divide and Conquer
    • Identify how we can divide our community into teams
    • Define the scope of each team, and help team members understand that scope
    • Understand the extent and range of collaboration among our teams
    • Ensure that teams can communicate clearly and effectively
  • Documenting Your Strategy
  • Financially Supporting Your Community
    • Revenue Opportunities
    • Online advertising
    • Selling
    • Donations
    • Sponsorship
  • Wrapping Up

Chapter 3: Communicating Clearly

At the heart of community is communication, and great communicators can have a tremendously positive impact. Here we lay down the communications backbone and the best practices associated with using it.

Coverage Includes:
  • He Said, She Said
  • Building Your Communication Channels
    • Striving for Clarity
  • Choices, Choices
    • Communication fetishism
  • The Mediums
    • Mailing lists
    • Discussion forums
    • Social media
    • IRC
  • Leading by Example
    • Daily Communication
    • Netiquette
    • Avoiding bikeshedding
  • Longer Writing
    • The mechanics of writing
    • Don’t write like an institution
    • Untwisting the tail
    • Setting tone
    • Inspiring your community
  • Summary

Chapter 4: Processes: Simple Is Sustainable

We now move on to focus on putting the facilities in place for your community to do great things. In this chapter we build simple, effective, and nonbureaucratic processes that enable your community to conduct tasks, work together, and share their successes.

Coverage Includes:
  • Eyes on the Prize
    • Keeping Things in Perspective
    • The Impact of Processes
  • Building Great Processes
    • Breaking Up the Puzzle
    • Building a process
    • Process Considerations
    • Simplicity is key
    • Avoiding bureaucracy
    • Transparency
  • Assessing Needs
    • Community Cycles
    • Leading by example: Ubuntu
    • The Gates of Your Community
    • Reviewing new developers: In depth
    • Assessing Contributors
    • Managing Feedback
    • Gathering feedback
  • Getting Buy-In for Your Processes
    • Document Them
    • Make Them Easy to Find
    • Using Your Processes
  • The On-Ramp: Creating Collaborative Processes
    • Identifying the On-Ramp
    • Developing Knowledge
    • Determining Contributions
    • Growing Kudos
  • Process Reassessment
    • Building Regularity
  • Moving On

Chapter 5: Supporting Workflow With Tools and Data

We continue our discussion of community facilities to build workflows that are driven by accessible, sensible, and rock-solid tools that enable your contributors to do great work quickly and easily.

Coverage Includes:
  • Understanding Your Workflow
    • Roles
  • Building a Simple Workflow
  • The Mechanics of Collaboration
    • An Example: Ubuntu Bug Workflow
    • Getting to know the problem
    • Breaking down the conversation
    • Lessons learned
    • Building Great Infrastructure
    • Software As a Service
    • Avoiding Resource Fetishism
  • Technical Considerations
    • Bug Tracking
    • Bug reporting
    • Bug triage
    • Source Control
    • Collaborative Editing
  • Building and Maintaining Transparency
    • Tool Access
    • Communications
    • Reporting
  • Regular Workflow Assessment
    • Gathering Structured Feedback
  • Moving On

Chapter 6: Social Media

We now take a look at social networking, what it is, how it can help us, how to avoid the hype, and how to harness it in our communities.

Coverage Includes:
  • Don’t Be That Guy/Girl
  • Being Social
  • Social Media Services in a Nutshell
    • Twitter
    • Facebook
    • Google+
  • Harnessing Social Media
    • Broadcasting
    • Getting more eyeballs
    • Tuning up your messages
    • Avoiding social media overkill
    • Feedback
    • Where to look
    • Debates
    • Asking for feedback
    • Collaboration
    • Communication
    • Campaigns and awareness
    • Events
  • Social Media on Your Terms
    • Controlling the Fire Hose
    • Optimizing How You Post
    • Being Socially Responsible
    • Organizing a Community Event
    • The buildup
    • At the event
    • Running a Campaign
    • The preparation
    • The buildup
  • Providing Community Updates

Chapter 7: Building Buzz

With a solid foundation in place, we move on to build excitement and buzz around your community and encourage and enthuse every man and his dog to get involved and participate.

Coverage Includes:
  • Mindshare
    • The Mindshare Opportunity
  • The Building Blocks of Buzz
    • The Mission
    • Uniting Together
    • Inspired Words
    • Becoming the Advocate
    • Getting It Right by Not Getting It Wrong
    • Honesty
  • Setting Up Your Base
    • Aims
    • Staying Current
    • Building Conversation
    • Getting Online
    • Syndication
  • The Buzz Cycle
    • Planning
    • Buildup
    • Announce
    • Review
  • Buzz Targets
    • Announcing Your Community
    • Attracting Contributors
  • Building Alliances
    • The Professional Press
    • The Amateur Press
    • Blogs
    • Blog wars
    • Podcasts
    • Videos
  • Events and Conferences
    • Choosing Events
    • Submitting your paper
    • Promoting your talk
    • Delivering Presentations
    • Creating attractive slides
    • Long versus short presentations
  • Summary

Chapter 8: Measuring Community

Although many consider community touchy-feely and unmeasurable, this chapter confronts the myth and guides you in tracking, monitoring, and otherwise measuring the work going on in the community so that it can be optimized and simplified.

Coverage Includes:
  • Community Self-Reflection
  • The Foundations of Feedback
    • Defining Purpose
  • Hooks ’n’ Data
    • Statistics and Automated Data
    • The risks of interpretation
    • Plugging your stats into graphs
    • Surveys and Structured Feedback
    • Choosing questions
    • Showing off your survey reports
    • Observational Tests
    • Measuring Mechanics
    • Gathering General Perceptions
    • Perception of you
  • Anonymity and Privacy
    • Anonymity
    • Privacy
  • Moving On

Chapter 9: Managing and Tracking Work

Continuing on from measuring our community, we now explore methods by which you can ensure that your community projects and participants stay on track and deliver great results.

Coverage Includes:
  • Credibility and the Need to Track Progress
  • The Importance of Tracking Our Work
    • Tracking the Right Things
    • Within the Context of a Company
    • Defining value
    • Communicating up and down
  • What We Need to Manage
  • Tracking Projects
    • Structuring Your Projects
    • Managing Work Items
    • Structuring work items
    • Documenting work items
    • Visualizing Data with Burndown Charts
    • Using burndown charts
    • Observing burndown patterns
    • Generating additional information
    • Building burndown charts into your workflow
  • Tracking Growth and Decline
    • Visibility Is Key
    • Ensuring Effective Processes
  • Tracking Health
    • Promoting a Feedback Culture
    • Building a Set of Generals
  • Reacting to Community Concerns
  • Moving On

Chapter 10: Governance

Our next stop is the wide-ranging and seemingly complex topic of governance. We explore what options are available for a low-friction, capable, and representative governance strategy for your community.

Coverage Includes:
  • Accountability
  • Governance Does Not Suck
  • Governance and Community
  • The Case for Governance
    • Follow the Leader
    • Engage the People
    • Aspire to Inspire
    • To Bring Peace
  • Learning from the Leaders
    • Dictatorial Charismatic Leadership
    • Enlightened Dictatorship
    • Delegated Governance
  • Setting Up a Community Council
    • Designing a Council
    • Responsibilities
    • Structure
    • Commercial sponsorship
    • Membership
    • Codifying Your Council
    • Nominating and Electing Council Members
    • Forming a new council
  • Ubuntu Governance Example
    • In the Beginning…
    • The Structure of the Ubuntu Community
    • Mark Shuttleworth
    • Community Council
    • Technical Board
    • Team councils
    • Membership
    • Ubuntu Member
    • Developer
    • Council or Board Member
    • Escalation
  • Expanding Governance
    • Knowing When It Is Time
    • Building the Subcouncil
    • Escalation
    • Communicating Between Councils
  • Summary

Chapter 11: Handling Conflict and Relationships

One of the most sensitive topics in community leadership is handling conflict. In this chapter we explore how to identify, handle, and prevent irksome conflict; handle divisive personalities; and unblock problems.

Coverage Includes:
  • The Nature of the Beast
    • The Structure of Strife
  • The Calm Before the Storm
    • Contentious Personalities
    • Profiling the polemical
    • Sharing feedback about personality issues
    • Poisonous people
    • Barriers to Input
    • Problems with Responsibility
    • Lack of Justice
  • The Conflict Resolution Process
    • The Role of a Facilitator
    • Be objective
    • Be positive
    • Be open
    • Be clear
    • Resolving the Conflict
    • Part 1: Calm and reassure
    • Part 2: Get the facts
    • Part 3: Discuss
    • Part 4: Document
    • Part 5: Reflect and maintain
  • Dealing with Burnout
    • Detecting and Treating Burnout
    • Required rest and relaxation
    • Work/Life Balance
    • Addiction
  • Handling Absence
  • Handling Bereavement
  • Summary

Chapter 12: Creating and Running Events

Events offer an excellent opportunity for your community to bond, be productive, and have fun, and this is where we cast our beady eye in this chapter.

Coverage Includes:
  • Building Family Values
  • Events
  • Getting Organized
    • Step 1: Identify Requirements
    • Step 2: Find Help
    • Step 3: Set Deadlines
    • Step 4: Make Time
  • Organizing Physical Events
    • Common Attributes
    • Location/venue
    • Accommodation
    • Equipment
    • Date/time
    • Cost
    • Registering attendance
    • Catering
    • Insurance/unions
    • Organizing a Sprint
    • Organizing a Summit
    • Structure and scheduling
    • Inside a session
    • Event-specific notes
    • Organizing an Unconference
    • Event-specific notes
  • Getting Sponsorship
    • Understanding Your Needs
    • Finding and Handling Sponsors
    • Setting expectations
    • The pitch
    • Handling the Money
  • Case Study: The Ubuntu Developer Summit
    • The Ethos of the UDS
    • How It Works
    • The Organizational Team
    • Organizational cadence
    • The Venue
    • Meeting room requirements
    • Location
    • Facilities
    • Assets
    • Infrastructure
    • Room Layout
    • The Timetable
    • Opening keynotes
    • Plenaries
    • Lightning talks
    • Sessions
    • Scheduling
  • Organizing Online Events
    • Common Attributes
    • Mediums
    • Online Discussion Meetings
    • Choosing a time
    • Advertising the meeting
    • Setting the agenda
    • Running the meeting
    • Organizing Online Tutorials
    • Scheduling
    • Preparing for a session
    • Running a session
  • Summary

Chapter 13: Hiring a Community Manager

We now explore some advice and guidance for organizations that want to hire a community manager to conduct and implement the wide range of topics that we have discussed throughout the book.

Coverage Includes:
  • Why Community Building Has Become a Big Business
  • The Role of a Community Manager in the Corporation
    • Setting Expectations
    • Scope of the Role
    • Risk
    • Breaking Tradition
    • Control and Reporting
    • The ability to enact change
    • The Responsibilities of Community Engagement
    • Salary
    • Communicating Expectations to the Candidate
  • Managing Your Community Manager
    • Induction
    • Internal reputation
    • Community reputation
    • Strategy
    • Management and Communications
    • Weekly engagements
    • Community feedback
  • Summary

Chapter 14: Community Case Book

Next I present a fascinating collection of interviews from accomplished community builders about how they created their own inspirational communities to help round off your knowledge with the experiences of these leaders.

Includes Interviews With:

Linus Torvalds
Creator, Linux

Mike Shinoda
Creator, Linkin Park

Tim O’Reilly
Founder, O’Reilly Media

Mårten Mickos
CEO, Eucalyptus and MySQL

James Spafford
Media Molecule and LittleBigPlanet

Dries Buytaert
Founder, Drupal and Acquia

Mark Bussler
Creator, Classic Game Room

Mike Linksvayer
CTO, Creative Commons

Mary Colvig

Richard Esguerra
Humble Indie Bundle

Ilan Rabinovitch
Co-Creator, SoCal Linux Expo

Carolyn Mellor
X.commerce, PayPal, and eBay

Chapter 15: Onward and Upward

Finally, we close The Art of Community with some additional resources and events to continue your journey.

Coverage Includes:
  • Building Our Own Community
    • Social Media
    • Videos
  • The Community Leadership Summit
    • How It Works
    • Joining Us
  • Keeping in Touch

Read more
Stéphane Graber

Anyone who met me probably knows that I like to run everything in containers.

A couple of weeks ago, I was attending the Ubuntu Developer Summit in Copenhagen, DK where I demoed how to run OpenGL code from within an LXC container. At that same UDS, all attendees also received a beta key for Steam on Linux.

Yesterday I finally received said key by e-mail and I’ve been experimenting with Steam a bit. Now, my laptop is running the development version of Ubuntu 13.04 and only has 64bit binaries. Steam is 32bit-only and Valve recommends running it on Ubuntu 12.04 LTS.

So I just spent a couple of hours writing a tool called steam-lxc which uses LXC’s new python API and a bunch more python magic to generate an Ubuntu 12.04 LTS 32bit container, install everything that’s needed to run Steam, then install Steam itself and configures some tricks to get direct GPU access and access to pulseaudio for sound.

All in all, it only takes 3 minutes for the script to setup everything I need to run Steam and then start it.

Here’s a (pretty boring) screencast of the script in action:

This script has only been tested with Intel hardware on Ubuntu 13.04 64bit at this point, but the PPA contains builds for Ubuntu 12.04 and Ubuntu 12.10 too.

To get it on your machine just do:

  • sudo apt-add-repository ppa:ubuntu-lxc/stable
  • sudo apt-get update
  • sudo apt-get install steam-lxc
  • sudo mkdir -p /var/lib/lxc /var/cache/lxc

Then once that’s all installed, set it up with sudo steam-lxc create. This can take somewhere from 5 minutes to an hour depending on your internet connection.

And once the environment is all setup, you can start steam with sudo steam-lxc run.

The code can be found at:

You can leave your feedback as comment here and if you want to improve the script, merge proposals are more than welcome.
I don’t have any hardware requiring proprietary drivers but I’d expect steam to fail on such hardware as the drivers won’t get properly installed in the container. Adding code to deal with those is pretty easy and I’d love to get some patches for that!

Have fun!

Read more
Stéphane Graber

(tl;dr: Edubuntu 14.04 will include a new Edubuntu Server and Edubuntu tablet edition with a lot of cool new features including a full feature Active Directory compatible domain.)

Now that Edubuntu 12.10 is out the door and the Ubuntu Developer Summit in Copenhagen is just a week away, I thought it’d be an appropriate time to share our vision for Edubuntu 14.04.

This was so far only discussed in person with Jonathan Carter and a bit on IRC with other Edubuntu developers but I think it’s time to make our plans a bit more visible so we can get more feedback and hopefully get interested people together next week at UDS.

There are three big topics I’d like to talk about. Edubuntu desktop, Edubuntu server and Edubuntu tablet.

Edubuntu desktop

Edubuntu desktop is what we’ve been offering since the first Edubuntu release and what we’ll obviously continue to offer pretty much as it’s today.
It’s not an area I plan on spending much time working on personally but I expect Jonathan to drive most of the work around this.

Basically what the Edubuntu desktop needs nowadays is a better application selection, better testing, better documentation, making sure our application selection works on all our supported platforms and is properly translated.

We’ll also have to refocus some of our efforts and will likely drop some things like our KDE desktop package that hasn’t been updated in years and was essentially doubling our maintenance work which is why we stopped supporting it officially in 12.04.

There are a lot of cool new tools we’ve heard of recently and that really should be packaged and integrated in Edubuntu.

Edubuntu Server

Edubuntu Server will be a new addition to the Edubuntu project, expected to ship in its final form in 14.04 and will be supported for 5 years as part of the LTS.

This is the area I’ll be spending most of my Edubuntu time on as it’s going to be using a lot of technologies I’ve been involved with over the years to offer what I hope will be an amazing server experience.

Edubuntu Server will essentially let you manage a network of Edubuntu, Ubuntu or Windows clients by creating a full featured domain (using samba4).

From the same install DVD as Edubuntu Desktop, you’ll be able to simply choose to install a new Edubuntu Server and create a new domain, or if you already have an Edubuntu domain or even an Active Directory domain, you’ll be able to join an extra server to add extra scalibility or high-availability.

On top of that core domain feature, you’ll be able to add extra roles to your Edubuntu Server, the initial list is:

  • Web hosting platform – Will let you deploy new web services using JuJu so schools in your district or individual teachers can easily get their own website.
  • File server – A standard samba3 file server so all your domain members can easily store and retrieve files.
  • Backup server – Will automatically backup the important data from your servers and if you wish, from your clients too.
  • Schooltool – A school management web service, taking care of all the day to day school administration.

LTSP will also be part of that system as part of Edubuntu Terminal Server which will let you, still from our single install media, install as many new terminal servers as you want, automatically joining the domain, using the centralized authentication, file storage and backup capabilities of your Edubuntu Server.

As I mentioned, the Edubuntu DVD will let you install Edubuntu Desktop, Edubuntu Server and Edubuntu Terminal Server. You’ll simply be asked at installation time whether you want to join an Edubuntu Server or Active Directory domain or if you want your machine to be standalone.

Once installed, Edubuntu Server will be managed through a web interface driving LXC behind the scene to deploy new services, upgrade individual services or deploy new web services using JuJu.
Our goal is to have Edubuntu Server offer an appliance-like experience, never requiring any command line access to the system and easily supporting upgrades from a version to another.

For those wondering what the installation process will look like, I have some notes of the changes available at:
I’m expecting to have the installer changes implemented by the time we start building our first 13.04 images.

The rest of Edubuntu Server will be progressively landing during the 13.04 cycle with an early version of the system being released with Edubuntu 13.04, possibly with only a limited selection of roles and without initial support for multiple servers and Active Directory integration.

While initially Edubuntu branded, our hope is that this work will be re-usable by Ubuntu and may one day find its way into Ubuntu Server.
Doing this as part of Edubuntu will give us more time and more flexibility to get it right, build a community around it and get user feedback before we try to get the rest of the world to use it too.

Edubuntu Tablet

During the Edubuntu 12.10 development cycle, the Edubuntu Council approved the sponsorship of 5 tablets by Revolution Linux which were distributed to some of our developers.

We’ve been doing daily armhf builds of Edubuntu, refined our package selections to properly work on ARM and spent countless hours fighting to get our tablet to boot (a ZaTab from ZaReason).
Even though it’s been quite a painful experience so far, we’re still planning on offering a supported armhf tablet image for 14.04, running something very close to our standard Edubuntu Desktop and also featuring integration with Edubuntu Server.

With all the recent news about Ubuntu on the Nexus 7, we’ll certainly be re-discussing what our main supported platform will be during next week’s UDS but we’re certainly planning on releasing 13.04 with experimental tablet support.

LTS vs non-LTS

For those who read our release announcement or visited our website lately, you certainly noticed the emphasis on using the LTS releases.
We really think that most Edubuntu users want something that’s stable, very well tested with regular updates and a long support time, so we’re now always recommending the use of the latest LTS release.

That doesn’t mean we’ll stop doing non-LTS release like the Mythbuntu folks recently decided to do, pretty far from that. What it means however is that we’ll more freely experiment in non-LTS releases so we can easily iterate through our ideas and make sure we release something well polished and rock solid for our LTS releases.


I’m really really looking forward to Edubuntu 14.04. I think the changes we’re planning will help our users a lot and will make it easier than ever to get school districts and individual schools to switch to Edubuntu for both their backend infrastructure with Edubuntu Server and their clients with Edubuntu Desktop and Edubuntu Tablet.

Now all we need is your ideas and if you have some, your time to make it all happen. We usually hang out in #edubuntu on freenode and can also be contacted on the edubuntu-devel mailing-list.

For those of you going to UDS, we’ll try to get an informational session on Edubuntu Server scheduled on top of our usual Edubuntu session. If you’re there and want to know more or want to help, please feel free to grab Jonathan or I in the hallway, at the bar or at one of the evening activities.

Read more
Stéphane Graber

One of our top goals for LXC upstream work during the Ubuntu 12.10 development cycle was reworking the LXC library and turn it from a private library mostly used by the other lxc-* commands into something that’s easy for developers to work with and is accessible from other languages with some bindings.

Although the current implementation isn’t complete enough to consider the API stable and some changes will still happen to it over the months to come, we have pushed the initial implementation to the LXC staging branch on github and put it into the lxc package of Ubuntu 12.10.

The initial version comes with a python3 binding packaged as python3-lxc, that’s what I’ll use now to give you an idea of what’s possible with the API. Note that as we don’t have full user namespaces support at the moment, any code using the LXC API needs to run as root.

First, let’s start with the basics, creating a container, starting it, getting its IP and stopping it:

import lxc
container = lxc.Container("my_container")
container.create("ubuntu", {"release": "precise", "architecture": "amd64"})

So, pretty simple.
It’s also possible to modify the container’s configuration using the .get_config_item(key) and .set_config_item(key, value) functions. For those keys supporting multiple values, a list will be returned and a list will be accepted as a value by .set_config_item.

Network configuration can be accessed through the .network property which is essentially a list of all network interfaces of the container, properties can be changed that way or through .set_config_item and saved to the config file with .save_config().

The API isn’t terribly well documented at this point, help messages are present for all functions but there’s no generated html help yet.

To get a better idea of the functions exported by the API, you may want to look at the API test script. This script uses all the functions and properties exported by the python module so it should be a reasonable reference.

Read more
Stéphane Graber

A few months ago, I received two test SIM cards for Orange Poland’s new IPv6 network.

The interesting thing about this network is that it’s running IPv6 in a fairly unusual configuration and it was interesting to see how to get that work on Ubuntu.

This network uses two separate APNs, one for IPv4 (internet) and one for IPv6 (internetipv6).
Using two separate APNs is certainly easier on the carrier’s infrastructure side as they can get IPv6 online without actually changing anything on the IPv4 equipement, however that means that any client wanting to use both protocols at once needs to use multiple PDP contexts.

I’m now going to detail how to manually configure ppp to connect to such a network:

connect "/usr/sbin/chat -e -f /etc/ppp/peers/orange-connect"


'' \nAT
OK 'AT+CGDCONT=1,"IP","internet"'
OK 'AT+CGDCONT=2,"IPV6","internetipv6"'
OK ATD*99#

Then all that’s needed is a good old:

pon orange

And a few seconds later, I’m getting the following on ppp0:

ppp0      Link encap:Point-to-Point Protocol  
          inet addr:  P-t-P:  Mask:
          inet6 addr: 2a00:f40:2100:ac9:8c1e:da60:93e2:c234/64 Scope:Global
          inet6 addr: 2a00:f40:2100:ac9::1/64 Scope:Global
          inet6 addr: fe80::1/10 Scope:Link
          RX packets:13 errors:0 dropped:0 overruns:0 frame:0
          TX packets:23 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:354 (354.0 B)  TX bytes:767 (767.0 B

This config should work for any mobile network using a similar setup (likely to become more and more popular as the various RIRs are running out of IPv4).

Sadly ModemManager/NetworkManager don’t support mutliple PDP contexts yet, though it’s being discussed upstream, so we can hope to see something land soon.

Apparently multiple PDP contexts support is also dependant on hardware. In my case, I’ve been using an “old” Nokia E51 over USB as I didn’t have any luck getting that to work with an Android phone. My Nokia N900 also worked but required a custom kernel to be installed first to properly handle IPv6.

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
Stéphane Graber

With the DNS changes in Ubuntu 12.04, most development machines running with libvirt and lxc end up running quite a few DNS servers.

These DNS servers work fine when queried from a system on their network, but aren’t integrated with the main dnsmasq instance and so won’t let you resolve your VM and containers from outside of their respective networks.

One way to solve that is to install yet another DNS resolver and use it to redirect between the various dnsmasq instances. That can quickly become tricky to setup and doesn’t integrate too well with resolvconf and NetworkManager.

Seeing a lot of people wondering how to solve that problem, I took a few minutes yesterday to come up with an ssh configuration that’d allow one to access their containers and VM using their name.

The result is the following, to add to your ~/.ssh/config file:

Host *.lxc
  StrictHostKeyChecking no
  UserKnownHostsFile /dev/null
  ProxyCommand nc $(host $(echo %h | sed "s/\.lxc//g") | tail -1 | awk '{print $NF}') %p

Host *.libvirt
  StrictHostKeyChecking no
  UserKnownHostsFile /dev/null
  ProxyCommand nc $(host $(echo %h | sed "s/\.libvirt//g") | tail -1 | awk '{print $NF}') %p

After that, things like:

  • ssh user@myvm.libvirtu
  • ssh ubuntu@mycontainer.lxc

Will just work.

For LXC, you may also want to add a “User ubuntu” line to that config as it’s the default user for LXC containers on Ubuntu.
If you configured your bridges with a non-default subnet, you’ll also need to update the IPs or add more sections to the config.

These also turn off StrictHostKeyChecking and UserKnownHostsFile as my VMs and containers are local to my machine (reducing risk of MITM attacks) and tend to exist only for a few hours, to then be replaced by a completely different one with a different SSH host key. Depending on your setup, you may want to remove these lines.

Read more

Last week the Ubuntu App Showdown Contest kicked off; a competition in which you lovely people have three weeks to create an awesome app that wows the judges on functionality, presentation/integration, innovation, usefulness, and quality. Up for grabs are System76 laptops and Nokia N9 phones as well as Ubuntu t-shirts and off course…the kudos and high regard of your fellow Ubuntu friends!

With just over a week of the contest completed, we are seeing some wonderful progress reports on the contest reddit page. It is great to see the friendly and competitive spirit and people enjoying building apps on the Ubuntu platform. If you want to join you still have two solid weeks of development time to cook up something awesome. Be sure to see the contest page, the tutorial video for creating your first Ubuntu app, our upcoming video tutorials and workshops, and feel free to ask any questions you need help on.

I thought it could be fun to show some of the screenshots of progress over the last week. I look forward to seeing these apps continue to grow and mature, and others join them… :-)

Let It Flow: a fun game (if you can’t see the video, see it here!

BooruView: image viewer for Booro systems.

Quickly GTK: a graphical interface for Quickly with full HUD support.

HumanTask: a simple task manager.

Web Form-er: a visual HTML form editor.

Ubutar: sync your Ubuntu user picture with your social networking sites (if you can’t see the video, see it here!.

Modem Manager: an app to read and send SMS, send USSD requests, display modem informaion, and enable/disable modem special features

Clamour: a Clam AV powered virus scanner

ShowMyFaves: favorites manages.

Stock Quotes: stock quotes app for your desktop.

jpiiIRC: IRC client.

Houston: a desktop cloud dashboard

Read more

Applications, delivering awesome apps to our users, and making it easy for developers to create and deliver their apps, is going to be critical to success of Ubuntu. Fortunately there is a lot of work going on in this area, more of which I will elaborate on later this week.

Part of this work is going to be making it easy for Ubuntu users to be able to download software. The Ubuntu Software Center is our primary mechanism for this, but we also know that users browse application and upstream websites and will often look at their Download pages to find an Ubuntu download.

Ideally we want any user who looks at a Download page on an application website to see this:

The user can then click this button and view more details, and ratings and reviews of the app in Ubuntu, and install it with just a click.

We Need Your Help!

Right now, many application websites don’t have these buttons on their Download pages. As such, I asked Michael Hall to generate a list of the most popular 100 applications in the Ubuntu Software Center, and generate the HTML.

To help with this, just do the following:

  • Go to the campaign wiki page (you will need to scroll the right to see everything as the page is quite wide)
  • Pick an application.
  • Find the application’s website (you might need to Google this) and see if the button is on their download page.
  • Now find the contact details for the app. This could be a mailing list, a specific person, a general email address etc. Again, you might need to do a little Googling to find the details.
  • Email the contact the HTML snippet for your app from the wiki page and ask them if they could include it on the Download page.
  • Add your name to the wiki page. to indicate that you reached out to them.
  • If you notice that they add it, add a link to the wiki page to the app’s Download page with the button!

If the developer asks why they should do it, emphasize that this will make it easier for Ubuntu users of their app to install it with just a click.

If we can divide and conquer we can spread the buttons further afield and continue to make it easy for people to install their favorate apps in in Ubuntu! Thanks for your help!

Read more