Heading Towards 0.2

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.

  • Acco

    I tried the daily repository and I could not get it to recognize me. I gave my e-mail address that I use for Launchpad, but no accomplishment was recognised. Can you elaborate on how the tool can identify what you have accomplished, and what can be done to test that you as a user has been correctly identified.