Canonical Voices

Posts tagged with 'planet ubuntu'

jono

For quite some time now we have had some information about how to join the Ubuntu community at www.ubuntu.com/community. 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 pad.ubuntu.com 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
jono

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.

…and

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
jono

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 Amazon.com 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!

Foreword


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
Mozilla

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
jono

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.

Partners

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.

GNOME 3

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
jono

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
jono

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
jono

Just a quick note: today I did a Reddit Ask Me Anything, and there were a lot of questions that I answered that cover a range of different topics. You can read it all here.

Read more
jono

I have something rather cool to show you:

This is a screenshot of Ubuntu Accomplishments with support for Ask Ubuntu badges. This means that when you get an Ask Ubuntu badge, you will see a notification bubble appear on your desktop, and you can see all of your Ask Ubuntu badges with the rest of your trophies.

Currently all the Ask Ubuntu badges are working with Ubuntu Accomplishments, and all have working integration tests.

One of the nice features of Ubuntu Accomplishments is that you can browse documentation for the different Opportunities that you have not yet accomplished. This provides a neat way of learning how to accomplish new things.

As an example, I don’t have the Strunk and White Ask Ubuntu trophy yet. When I click on it I see:

While we have all the Ask Ubuntu accomplishments working and all the tests written, we still need help to get the documentation written for all the badges. This is where we need your help.

How To Help

Helping is simple!

Head over to this page for instructions of how to get started. You will basically grab the accomplishments, pick one from the list that has not had documentation written yet, submit the docs, and then tick it off the list.

We really want to get the Ask Ubuntu accomplishments into the 0.2 Ubuntu Accomplishments release next week, so if you folks can help, that would be awesome!

Read more
jono

We are delighted to announce that the Humble Indie Bundle, that was just announced will have all the games available in the Ubuntu Software Center running natively on Ubuntu.

For the next few weeks you can go and donate whatever you like to buy Amnesia: The Dark Descent, Psychonauts, LIMBO, Superbrothers: Sword and Sworcery EP and if you pay more than the average you also get Bastion.

Remember, you only have a few weeks to go and donate whatever you like to buy the games, and when you have bought them from the Humble Indie Bundle Website you can install them with a single click in the Ubuntu Software Center!

Proceeds go to the Electronic Frontier Foundation and Childs Play, so snap up these awesome games, running natively on Ubuntu, and help charities and indie game devs!

We have a few other fun things planned over the next few weeks, so stay tuned!

Go and grab the games!

Read more
jono

Before we get started, I want to offer all of my American friends a thoughtful Memorial Day (I was going to say ‘happy’ memorial day, but there is nothing particularly ‘happy’ about the meaning behind the day). I hope you all have a nice day with family and/or friends.

On an unrelated note, I just wanted to have a quick call for Django web developers to participate in a fun new project as part of the Ubuntu Accomplishments system.

The idea is simple: part of the fun of achieving trophies for things you have accomplished on your computer and in the community is showing your trophies to your friends, colleagues, and other community members.

Fortunately, this is not a particularly complex project to build: it just requires a consistent vision, and plenty of hands on deck to make the magic happen.

To help smooth things along, I wrote a spec complete with mockups and implementation details that explains how the system works, and how some of the functionality could be implemented.

To give you a brief example of how it could work, the idea is that a user can voluntarily show their accomplishments online. When this is enabled you can browse all of their accomplishments on one page:

You can also click on a collection to view the trophies by category:

There are all kinds of other interesting things that we could do too such as showing other people who have accomplished similar trophies, showing statistics, connecting to social media platforms and more.

Getting Involved

Sound interesting? Do you know how to program with Django and want to get involved?

Well, you are a legend. Let me explain how you get started.

  1. First, go and read the spec to get an idea of how the project will work.
  2. Next, join our mailing list and send an email expressing an interesting in participating in the Web Gallery project. You should also read these two threads to get up to sync: 1 2
  3. Now see the Trello board and pick one of the topics that needs completing and assign it to yourself. The Trello provides a nice means to see who is working on what and the status of that work.
  4. Now check out the code with bzr branch lp:ubuntu-accomplishments-web and start hacking.
  5. You can get help on the mailing list as well as in #ubuntu-accomplishments on Freenode IRC.

Thanks and I look forward to you joining our community!

Read more
jono

IMPORTANT: Before I get started, if you are running the daily PPA of Ubuntu Accomplishments, please use the releases PPA instead right now as the validation server is using the 0.1 accomplishments collection as opposed to the faily 0.2 accomplishments. If you are using the daily PPA you accomplishments will not get verified.

Now…normal service resuming…

As we build up to the 0.2 release of Ubuntu Accomplishments we have hit feature freeze and are now focusing on bug-fixing. We have also locked down the strings in the viewer and daemon, and this means that we want to reach out to our awesome community of translators to help get this baby translated into every possible language.

How to help

First, head over and translate the daemon and the viewer:

Helping with this effort is simple. First, please go and help translate the daemon and viewer:

Thanks for your contributions; a few minutes contributing translators can make the Ubuntu Accomplishments experience nicer for thousands of users!

Providing Localized Documentation

When you have translated the daemon and viewer, we really need help translating the Ubuntu Community Accomplishments collection too.

Importantly, this is not just about word-for-word translation from English to another language, but instead providing awesome documentation designed for people who speak your native language.

As an example, every accomplishment has a Summary section which provides an introduction to the accomplishment, what is involved, and what the jargon means. Feel free to write the most detailed explanation you like in your language, even if the original English version is quite short. The English translation is provided as an example: feel free to improve on the summary in your own language.

Another good example are the Links and Help resources: the original English ones will be English resources – feel free to provide resources and links that are native to your language.

I want to encourage you all to help make the documentation for your language the best possible documentation for new users (e.g. “e.g. our French documentation is the most complete of any of the languages!“). :-)

How to help

Here is how you do this as it is a little different:

Contributing is really simple. Just follow these steps:

First, go to https://translations.launchpad.net/ubuntu-community-accomplishments/trunk.

When you go there you might see some languages listed below like this:

If you don’t or would like to select another language, click the Change your preferred languages link and select the languages you want to translate in to. Those languages will now appear like the ones above. The colored bar shows what proportion of the accomplishments are translated (green) and what are not (red).

Now click one of the languages (e.g. if I click on English (United Kingdom)) and you will see the list of things you can translate. Here is an example of one:

The translation of Ubuntu Accomplishments works a little differently. You should IGNORE the English line at the top (e.g. where it says member-loco-team_description) and instead look at the documentation just below. There it tells you which accomplishment you are editing and what the original English translation is. In the above image you can see we are writing German documentation, the accomplishment is ‘LoCo Team Member’ and this specific field in the accomplishment documentation is ‘steps’. More the different fields below.

You can now type your own language’s documentation into the New translation box. For the larger chunks of text you can use the grey button at the end of the New translation box to make the text entry bigger.

If there is already a translation there and you want to edit and improve it, click the Current <language> translation button and the text will be copied to the edit box where you can edit it.

Now click the Save button at the bottom of the page to save your contributions. Sometimes you have to scroll to the right to see the Save button due to some of the long chunks of the text on the page.

Thanks for making Ubuntu easier and more fun to participate in for our community!

Read more
jono

I have rather nice little story to share with you all.

My mother in law, Sue, has what can be best described as a dog-earred mess of a laptop. A reasonably modern Lenovo Thinkpad with Windows Vista, it was painfully slow to use, crammed with all manner of bloatware and pre-installed rubbish that came with the machine and the applications she installed, and likely hiding some spyware, viruses and other uglyness.

Now, I am not a fan of Windows at the best of times, but this was beyond software preferences: the machine was barely usable. Sue though, being the trooper she is, gritted her teeth and just got on with it, going about her business as usual.

Recently here in the USA it was Mothers Day and I had an interesting idea. We had an old Dell Inspiron that has been kicking around for the last four years or so, and I decided to install Ubuntu 12.04 on there for her as a surprise.

So, I downloaded the ISO, put it on a USB stick and the installation went flawlessly. Ubuntu 12.04 detected all of the hardware perfectly, and I rebooted. I was a little curious to see how Unity was going to fare on a machine that to my knowledge is at least four years old, possibly five or six years old, and it was slick and fast. Now, I am not being generous here…the performance is genuinely snappy; I was really quite impressed. Nice work, Unity team. :-)

On mothers day I met up with Sue and her husband and my brother in law (Erica was out of the country) and I gave her the laptop. Naturally, she was overjoyed, but whereas I planned on sitting down with her after dinner to show her how Ubuntu works, we ultimately didn’t get a chance to and she took the machine home with her. As such, all I did was tell her the password for logging in and then she was pretty much on her own with the option of calling me if she got stuck.

Now, Sue is very much a computer novice. She has no outside interest in computers…for her it is a tool, pure and simple. I was a little nervous how she would get on.

A few days later I heard back from her and she was absolutely overjoyed. She was browsing around the machine, installing software, accessing websites in Firefox, creating and saving documents in Libreoffice, and the last I heard from a few hours ago…signing up to Ubuntu One so she can ensure her files are backed up to the cloud.

As just one cog in this Ubuntu and wider Open Source and Free Software machine, I am really proud that we as a community could deliver this experience to her. I am confident that a few years back the experience would not have been so smooth and consistant, and it is fantastic to see Free Software thrilling regular people who just want get things done with their computers, safely and enjoyably. Thanks to everyone who contribute to make this little success story happen. :-)

Read more
jono

Eagle eyed readers may have noticed I have been talking a lot about Ubuntu Accomplishments in the last few weeks…more so than usual… Well, to put it bluntly, my wife has been out of town for a few weeks and as such my evenings have had my husband time replaced with sitting in a darkened room, surrounded by empty Lean Cuisine trays, sipping on coffee, hacking to the sound-track of Gov’t Mule. If I had more hair, I really would feel like was 18 again. :-)

Anyway, enough of the goings on at Castle Bacon, so what is the latest in the Ubuntu Accomplishments camp? Well, I have some fun things to share…

0.2. Like 0.1 But Twice As Awesome

We are now officially on the road to 0.2. We have decided to codename our releases after notable accomplishments in history, so the next release will be codenamed lightbulb and has a release date set for Tues 12th June 2012. You can see our targeted bugs lists (daemon : viewer) to get a feel for what we have yet to do.

While on the covers 0.2 might seem a small and incremental release, there has been a lot going on as we work to bring quality and precision to the code and the user experience.

A New API

The 0.1 release was an important milestone for us. With over 230 people testing it and over 900 trophies issued, we were shocked pleased to see a surprisingly low number of bug reports coming in.

0.1 also helped us to identify the deficiencies in our current API, so we planned on maturing it significantly for 0.2. Rafal Cieslak did a stunning job implementing this work and the API is not only more mature and more consistant, but faster and better testable.

Categories and Sub-Categories

As our accomplishments collection has started grow, it has been clear that we needed two features that were not in 0.1:

  • Accomplishments should be able to appear in multiple categories (e.g Set Up Your SSH key should appear in both Development and Launchpad categories).
  • Some (but not all) categories are too big and general and could benefit from sub-categories (e.g. Games could be divided into different genres or specific games).

To focus on this work I put together a mock-up and explored some different ideas of exposing this cleanly. This was the final design:

Over the weekend Rafal and I tag-teamed this one; Rafal built the support into the API and I built the front-end support for this in the client. It now looks like this:

In this screenshot none of the sub-categories are selected, so all Launchpad accomplishments are displayed. If you click one of the sub-categories it only shows those opportunities. This still needs some visual tweaks and polish, but it works quite nicely.

Multiple Dependencies

Another lesson from 0.1 was that while most accomplishments only need one other opportunity completing first before it can be unlocked, some need more than one. As an example, On Planet Ubuntu requires you to have a SSH key and be an Ubuntu Member. As such, we built in support for multiple dependencies.

Now the client show which dependencies you have yet to accomplish before the opportunity is unlocked:

Credit Where Credit Is Due

Ubuntu Accomplishments is a fairly big vision with lots of moving parts that will involve lots of contibutors. While a few of us hack on the core system, the real value in the system are the hundreds of accomplishments that could be exposed via it. These different accomplishments are available in grouped Collections and we expect many different people to contribute to different collections (e.g. the Ubuntu Community Accomplishments collection).

As such, we wanted to be able to expose these contributions to our clients. To do this we built support into the API for an author field in each accomplisment, and clients can now display this in their help dialog box. Here is the official client showing off the credits:

The default behavior is that it will show the contributors for each collection you have installed as well as the core system.

New Accomplishments

One of the most pleasant outcomes of 0.1 was getting many different accomplishment contributions from the community. In total we have added the following to the Ubuntu Community Accomplishments collection:

  • Accomplishments Contributor
  • Attend LoCo Team Event
  • Bug Squad Member
  • Ubuntu Forums Council Member
  • Ubuntu Forums Staff Member
  • Imported an SSH Key
  • Ubuntu Beginners Team Council Member
  • Ubuntu Beginners Team Member
  • Bug Control Member
  • Ubuntu Forums Ubuntu Member
  • Blog on Planet Ubuntu
  • Ubuntu Cloak
  • Signed Canonical Contributor Agreement
  • Uploaded First Branch To Launchpad

Thanks to Silver Fox, Michael Hall, Matt Fischer, Rafal Cieslek, Angelo Compagnucci, and José Antonio Rey for these contributions!

Would you like to contribute an accomplishment? See the list of ideas and get started!

Ubuntu Desktop Accomplishments

Do you know what is exciting about the following screenshot?

We fixed local accomplishments support in 0.2 (these are accomplishments on your computer such as sending your first email or installing your first application). We will be building out our own desktop collection and the above screenshot shows the very first accomplishment that is in the new Ubuntu Desktop Accomplishments collection. This is still very much early days, but I am particularly looking forward to building this collection out: I want it to become one of the best ways of learning the many different things you can do on your computer in Ubuntu.

UPDATE: After I posted this I added support for local accomplishments to the Accomplishment Information app itself. See a short video demo below:

Can’t see the video? Click here!

Spring Cleaning

In addition to this more visible work, there has been lots of other things going on as we clean up our code base and bring maturity and predictability to the project. This has included:

  • Many improvement to the validation server: more resiliance, better logging of failures, and some performance improvements.
  • As I wrote about the other day, we are now doing automated daily testing of accomplishments as well as graphing growth.
  • Improving our documentation and support for how people can contribute to the project as well as contributing accomplishments.

Moving Forward

I just want to say a huge thank-you to everyone who has been participating in the project! I am looking forward to 0.2 as another important milesone. I will be following up in the next week about areas in which we are looking for help in the project that you might be able to contribute to.

If you are interested in joining us, be sure to install it, join #ubuntu-accomplishments on Freenode IRC, and join the mailing list.

Read more
jono

Recently I have been talking a little about building quality and precision into Ubuntu Accomplishments. Tonight I put one of the final missing pieces in place and I thought I would share in a little more detail about some of this work. Some of you might find this useful in your own projects.

Before I get started though, I just wanted to encourage you to start playing our software and for those of you that had a crash when using certain languages with the Accomplishments Information viewer, I released a 0.1.2 update earlier that fixes this.

Automated Testing

As we continue to grow the Ubuntu Community Accomplishments collection it is going to be more and more complex to ensure all of the accomplishments are working effectively every day; we are already at 28 accomplishments and growing! What’s more, the community accomplishments scripts work by checking third-party services for data (e.g. Launchpad) to assess if you have accomplished something. These external services may change their APIs, adjust how they work, add/reduce services etc, so we need to know right away when one of our accomplishments no longer works and needs updating.

To do this I wrote a tool called battery. It works by reading in a test that is available for each accomplishment that feeds the accomplishment validation data that should succeed and also data that should not validate. As an example, for the Ubuntu Member accomplishment the data that succeeds is an existing member’s email address (such as my own) and the test for failure is an email address on Launchpad that is not a member. The original script requires the user’s email address to assess this accomplishment, so battery tests simply require the same types of information, with data that can trigger success and failure.

This approach allows us to test for three outcomes:

  • That the valid email address returns exit code 0 (the script ran successfully and the user is verified as being an Ubuntu Member).
  • That the invalid email address returns exit code 1 (the script ran successfully but the user is not an Ubuntu Member).
  • If the script has an internal issues and returns exit code 2.

The way this works is that battery includes a customized version of the general accomplishments.daemon module that we use for the backend service. In the code I override the back-end module and load a custom module. This way the original accomplishment script does not need to be modified; instead of get_extra_information() calling the back-end daemon and gathering the user’s details, the custom module that comes with battery instead has it’s own get_extra_information() that gets returns the test data so battery can run the tests.

Originally battery only output textual results, but this would require us manually running it. As such, last night I added HTML output support. I then enabled battery to run once a day and automatically update the HTML results. You can see the output here.

There are a few important features in this report other than a list of all the accomplishment test results:

  • It shows the failures: this provides a simple way for us to dive into the accomplishments and fix issues where they occur.
  • It shows which tests, if any, are missing. This gives us a TODO lists for tests that we need to write.

While this was useful, it still required that we would remember to visit the web page to see the results. This could result in days passing without us noticing a failure.

Tonight I fixed this by adding email output support to battery. With it I can pass an email address as a command-line switch and battery will generate an email report of the test run. I also added battery‘s default behavior to only generate an email when there are failures or tests are missing. This prevents it generating results that don’t need action.

With this feature I have set battery to send a daily “Weather Report” to the Ubuntu Accomplishments mailing list; this means that whenever we see a weather report, something needs fixing. :-)

One final, rather nice feature, that I also added was the ability to run battery on one specific accomplishment. This is useful for when we are reviewing contributions of new accomplishments; we ask every contributor to add one of these simple tests, and using battery we can test that the script works for validation success, validation failure, and script failure with a single command. This makes reviewing contributions much easier and faster and improves our test coverage.

Graphing

Something Mark Shuttleworth discussed at UDS was the idea of us building instrumentation into projects to help us identify ways in which we can make better decisions around how we build software. This is something I have also been thinking of for a while, and to kick the tyres on this I wanted to first track popularity and usage of Ubuntu Accomplishments before exploring other ways of learning how people contribute to communities to help us build a better community.

Just before we released version 0.1 of Ubuntu Accomplishments, I created a little script that does a scan of the validation server to generate some statistics about the number of daily new users, the daily number of new trophies issued, and the totals. Importantly, I only count users and trophies, and I am only interest in publishing anonymized data, not exposing someone’s own activity.

To do this my script scans the data and generates a CSV file with the information I am interested in. I then used the rather awesome Google Charts API to take my CSV and generate the Javascript need to display the graph. Here are some examples:

While this is not exactly instrumentation, it got me thinking about the kind of data that could be interesting to explore. As an example, we could arguably explore which types of contributions in our community are of most interest in our users, how effective our documentation and resources are, which processes are working better than others, and also some client side instrumentation that explores how people use Ubuntu Accomplishments and how they find it rewarding and empowering.

Importantly, none of this instrumentation will happen without anyone’s consent; privacy always has to be key, but I think the idea of exploring patterns and interesting views of data could be a fantastic means of building better software and communities.

Read more
jono

At the Ubuntu Developer Summit last week I delivered a plenary on the Tuesday called Accomplishing An Awesome App Developer Platform that tells the story of how the Ubuntu app developer platform enabled me to build the Ubuntu Accomplishments system that I designed with Aq. The presentation walks through the story of how we designed the system, and how everything was available in Ubuntu to create the client, back-end daemon, validation server, and desktop integration. I think it is a good example of how Ubuntu can help app devs to create interesting ideas and apps.

I thought this might be handy to have on YouTube, so I re-recorded it today, and you can see the video below:

Can’t see it? Watch it here!

If you want to create your own application for Ubuntu, be sure to visit developer.ubuntu.com.

Read more
jono

I just released a new update for the Ubuntu Community Accomplishments collection. This new release (0.1.1) includes the following new community accomplishments:

  • Accomplishments Contributor
  • Attend LoCo Team Event
  • Bug Squad Member
  • Ubuntu Forums Council Member
  • Ubuntu Forums Staff Member
  • Imported an SSH Key
  • Ubuntu Beginners Team Council Member
  • Ubuntu Beginners Team Member
  • Bug Control Member
  • Ubuntu Forums Ubuntu Member
  • Launchpad Profile Mugshot is now fixed too.

Thanks to Silver Fox, Michael Hall, Matt Fischer, Rafal Cieslek, Angelo Compagnucci for contributing these additions! It is wonderful to see our community growing!

If you want to contribute accomplishments, be sure to see our guidelines, some suggestions, and how to get started!

If you are already running Ubuntu Accomplishments 0.1, you just need to do the following to get the new set:

sudo apt-get update
sudo apt-get upgrade

If you are running the daemon, kill it first with killall -9 twistd and then load Accomplishments Information from the dash.

If you are new to Ubuntu Accomplishments, be sure you have your Ubuntu One set up and running on your computer, and then follow these installation instructions.

Read more
jono

In the Ubuntu world we have some common values that are not just focused on freedom, but also in how we build Ubuntu. Values such as cadence, design, quality and precision help guide us in building the best Ubuntu that we can.

These values continued to be common themes at the recent Ubuntu Developer Summit in California. Today our culture continues to involve important integration work that is a rich and interesting challenge, but this work has also been augmented by us building assurances around Ubuntu too; assurances such as regular releases (cadence), the reliability and quality of the experience (quality), and attention to detail in both design and engineering (precision) are all examples of the strong balance of predictability and innovation that we want to bring.

These values are not limited to Ubuntu though: we want Ubuntu to be a platform where you can get the very best software experience, whether you are using Open Source or commercial applications. In a nutshell, we want to take the lessons we have been learning regarding cadence, design, quality and precision and share them with our upstreams. This is going to be a big chunk of what Michael Hall will be focusing on in the coming months.

One upstream project though that I am actively involved in in my spare time is Ubuntu Accomplishments and I wanted to share some of our plans surrounding our next 0.2 release and how these values are forming an important core of this work. Before I continue though, I just want to say a huge thank-you to everyone who has been participating in Ubuntu Accomplishments. Ever since our 0.1 release a few weeks ago we have had over 180 people start using this very early PPA and a number of people have started contributing accomplishments. Thanks to all of you!

Quality

With the expanded number of accomplishments being contributed, I started thinking last week about how we could perform better testing around these contributions as well as daily testing reports; I wanted to ensure that our project, even though we are very young and small, demonstrates a level of quality that we can be proud of. To kick this off, this weekend I wrote a small tool called battery that helps us assure quality. I created a validation test for every accomplishment and battery runs all the accomplishments and feeds them this data that will cause an accomplishment to succeed as well as fail. This serves a few valuable purposes:

  • We now have better testing for new contributions and we can test both success and failure more effectively.
  • We can build testing into the accomplishment submission process so that when someone contributes an accomplishment we will ask them to also submit a test file (the test file is extremely simple and just specifies data used for success and data used for failure). This should take a contributor ten seconds to put together.
  • Finally, we can now run battery in an automated environment every day and have it alert us when one of the tests fails. This gives us better visibility on our accomplishments collections to ensure that we can assure quality and resolve issues quickly.

As an important part of building good design into the system, battery was designed to not require any changes to the existing accomplishments sets and require a bare minimum from our contributors who should be spending more time having fun writing accomplishments than caring about tests. I am delighted with the results.

The Road To 0.2

In addition to helping to ensure the accomplishment contribution process is simple (see our list of ideas for accomplishments and how to create them), we have been planning the 0.2 release. This will continue to focus on refinements and building a strong, reliable platform for both community and local accomplishments.

We will be focusing on the following in the 0.2 cycle:

  • Local Accomplishment Support – in 0.1 we focused our efforts primarily on community accomplishments (that is, accomplishments that need to be verified). Although we have always supported local accomplishments (these are accomplishments on your computer such as installing a package for the first time or sending your first email), this local support was a little broken in 0.1. I have already landed a branch from Rafal that fixes these bugs, using GNOME Mines as the test application. We will continue to refine this support.
  • Daemon and API Refinements – this won’t be visible to the user but we are planning a raft of API improvements to ensure that the back-end daemon is precise and high quality. This requires some functional changes, API naming conventions, standardizing on accomplishment IDs and other improvements.
  • Growing Ubuntu Community Accomplishments – we plan on continuing to grow and expand the Ubuntu Community Accomplishments collection. We need help though, and that help could come from you! If you know a little Python and want to help our community, be sure to let me know! You can also join our IRC channel at #ubuntu-accomplishments.
  • Introducing Ubuntu Desktop Accomplishments – we plan on introducing our first set of desktop accomplishments that can be used with the local accomplishments feature in the system. This will help us to start mapping out an awesome journey for how ours users use the desktop, discover things to do, and more!

It was wonderful to see the excitement and interest around Ubuntu Accomplishments at UDS, and I am excited to see where the project can take us. If you want to join us, be sure to join the mailing list and/or join us on IRC on freenode in #ubuntu-accomplishments.

Read more
jono

Just a quick reminded that my band Severed Fifth will be playing tonight at:

Roosters Roadhouse, 1700 Clement Avenue, Alameda, CA 94501

This is about a 5 – 10min cab ride from the Oakland Marriot hotel.

Get down there for about 7.30pm to ensure you get your tickets as the show has sold out of pre-sold tickets. We go on stage at 8pm. Hope to see you there!

Read more
jono

Some of you may have seen the news of our very first Ubuntu Accomplishments release. Thank-you to everyone for testing the system; the feedback has been wonderful so far. :-)

The power of the Ubuntu Accomplishments system is dependant on the range of accomplishments available to our users; a comprehensive range of accomplishments that span the full Ubuntu community will make the system an exciting and empowering resource. As such, I would like to put out a call to encourage you lovely people to contribute some accomplishments

Fortunately all you need to know is a little Python to contribute here.

How to Participate

This is how you can help:

  1. First, ensure you are running the new release. Find out how to install it by clicking here.
  2. Now familiarise yourself with our guidelines for what makes a great accomplishment (we are looking to avoid the ‘X number of SOMETHING achieved‘ accomplishments as they can be gamed and abused easily. We are instead looking for accomplishments for new experiences and skills such as ‘First Translation Made‘ or ‘First Contribution to the Ubuntu Sponsorship Queue‘. We have lots of ideas available on this page for inspiration!
  3. Now read the tutorial and create your accomplishment (thanks to Rafal Cieslak for his excellent work on the tutorial).
  4. With your accomplishment ready, submit it to the project and we will review it: details of how to do this are in the tutorial.

Thanks!

Importantly, while this blog post is seeking contributions for the Ubuntu Community collection of accomplishments, if you want to create a collection of accomplishments for your community or project (e.g. your software project, distro, local user group etc), you can use the same tutorial and resources to get started! Let us know if you have any questions!

Getting Help

If you have questions, you can get help in a few places:

  • Join the mailing list – we have an active email discussion list and you are welcome to join and post questions.
  • IRC Channel – we have the #ubuntu-accomplishments channel on the freenode IRC network.

Thanks so much for your contributions!

Read more
jono

Yesterday I announced the first Ubuntu Accomplishments release. It is wonderful to see so many of you trying the system; many thanks!

As part of the 0.1 release, we have added David Callé‘s Ubuntu Accomplishments Unity lens to the 0.1 PPA. It looks like this:

The lens neatly integrates into your desktop your trophies and available opportunities. Clicking on an opportunity will show information about how to accomplish it.

Installing

To install the lens first, add the PPA to your system with:

sudo add-apt-repository ppa:ubuntu-accomplishments/releases

Now update your package list:

sudo apt-get update

Ensure you have the full Ubuntu Accomplishments system (including the accomplishments-lens package):

sudo apt-get install accomplishments-daemon accomplishments-viewer
ubuntu-community-accomplishments accomplishments-lens

You will need to re-login to see the lens.

Please note: you will need to have the accomplishments back-end process running to use the lens. This is simple: just load Accomplishments Information from the dash and this will start the back-end process. You can now view the lens.

As ever, you can report bugs here.

Thanks, David, for your efforts in creating the lens!

Read more