Ubuntu Accomplishments 0.3 Released!

It has been a little while since I last talked about Ubuntu Accomplishments, but there has been ferocious work going on in the project. The new release includes a number of important features and refinements.

The goal of the 0.3 has been to focus on quality. Our intention here was to raise the reliability and quality of the core system and provide another good solid iteration towards a 1.0 release. As such many of the features in this release are not particularly visible, but you can really feel the improvement in quality.

Let’s first take a look at the end-user improvements. Firstly, we improved the My Trophies view to include filtering to show you the different collections as well as which trophies you got most recently:

A core philosophy with the project is to keep our interface clean and uncluttered.

These new filters make it much easier to navigate your trophies when you have a large collection. It also makes the client feel more dynamic when displaying trophies in chronological order (this is grouped by ‘Today’, ‘This Week’, ‘This Month’, ‘Last Six Months’ etc).

Thanks to s-fox we now have Social Media integration build into the client. When browsing your trophies you can click one then click the Share button to easily share it across your social networks. This integrates neatly with Gwibber so it uses your online accounts settings.

A large chunk of the 0.3 cycle was spent by the awesome web team building a web front-end for displaying and browsing accomplishments. Thanks to Janos Gyerik and Gabriel E. Patiño for their extensive work on this code-base.

An in-development shot of the web gallery.

This web gallery will eventually be visible at trophies.ubuntu.com. The code lets you browse different opportunities, view the documentation, and then also show your trophies to others. We integrated support for the web gallery into the desktop app to switch on support for this with a single click (you have to opt-in to share your trophies online).

We have all kinds of interesting plans for building in social functions into the web interface to help make our community feel better connected in terms of what people work on and how people can find help in participating. I am really looking forward to seeing this deployed in a production environment in the next few months.

In addition to this work we also added a number of new accomplishments to continue extending the system to cover as much of the community as possible.

Quality

A big chunk of the work in this release however was much less visible with the goal of assuring quality.

Thanks to Matt Fischer we now have a comprehensive suite of unit tests. We are now regularly running these tests and running them against new contributions to assure the quality of our code-base and not regress.

We also did a full review of our API, and we tidied up our code-base significantly. Creating effective APIs is hard and intensive work, and thanks to Rafal Cieslak for his excellent efforts in driving much of our API clean-up. We have a far more mature API now.

As part of this work in assuring quality I spent some more time hacking on a tool I wrote to check the quality of our accomplishments (the tool is accomplishments-battery). I pretty much re-wrote it for 0.3, added different output formats, included checking for accomplishment schema completeness, and made it more modular. We use this tool to run a full daily check of all accomplishments to ensure they work correctly.

A test run on the Ubuntu Member accomplishments.

We as a team also spent a lot of time generating API documentation both for contributors and for accomplishments writers. We want to provide two types of documentation: docs for people consuming the technology to write clients and accomplishments as well as docs for people who want to hack on the core accomplishments system. This is still on-going work, but we are in much better shape than we were.

Trying The Release

To get started using the release, please see our installation instructions. You will need to be using Ubuntu 12.04 or later to use the 0.3 release. Fortunately, the most recent versions of our flavors (e.g. Xubuntu) can now also run Ubuntu Accomplishments too!

If you have any questions, feel free to post them using our Ask Ubuntu tag, or ask in our support channels (more on this below).

Next Steps

Our next step is to get the system production ready. I have tasked Michael Hall on my team to take this pretty mature code-base and deploy it in a production environment and work with the Canonical IS around these logistics (the IS team has already approved this work). Michael will be working on getting the system up and running over the coming weeks. This will include both the validation server and the web gallery.

While this work is going on we hope to have a preview version of trophies.ubuntu.com ready to go. We already have the integration with the desktop application in the code-base (just not exposed in the user interface). We will then continue to refine our core system, grow our library of accomplishments and start rolling the system out to our wider community. Exciting times!

We need your help though! If you are a programmer, tester, writer, translator, or just want to help in another way, please our getting involved page, join our mailing list, and be sure to join our IRC channel in #ubuntu-accomplishments on Freenode. We hope to see you soon!

Thanks to Rafal, Matt, s-fox, and the many other folks who helped make this release such a success!

Adam

I’m glad to see Ubuntu working on important stuff like regressions [1][2] and system-freezing bugs [3] and LTS-upgrade failures [4] instead of putting lots of effort into making test suites for Farmvillian imaginary awards for accomplishments like changing desktop wallpaper.

Adam, everyone has a place. We are all integral parts of Ubuntu in some way. Be it a user who reports bugs, a blogger such as myself, a community leader like Jono or a Canonical developer creating the magic. While I cant directly speak for Jono, programming is a ton of work and so is fixing those bugs. Im not very good on the technical side (thus what I do instead) but I have dabbled a bit with helping developers fix key bugs before release dates and let me tell you it is crazy, hectic, fun, maddening, etc all wrapped up in one. Hours, days and weeks can be spent fixing one bug.

Rafa? Cie?lak

I second iheartubuntu’s words. Also, there is another point here – although I am involved in Ubuntu by programming, I am not experienced enough to be able to fix kernel bugs! Don’t expect me to give that a try. Therefore, some developers participate in simpler projects, so that there is most use from their work. Also, do note that stalking random blogs as you apparently do is not the best way to encourage devs to fix bugs you rely on. Moreover, nobody puts “lots of effort” into the Accomplishments project, there is a team of 3 working on it in their free time, compare that to the kernel team and your sarcasm is nonsense. To explain your concerns – remember that triaging a bug may sometimes take lots of time – and in case of most of bugs you have linked to the developers are clearly doing their best to solve the issue, while in the rest there is too little people affected to consider that bug a significant regression, and other bugs have a greater priority.

Adam

Yeah, yeah, yeah, FOSS is free, not just Free; it’s run by volunteers who aren’t obligated to do anything for you; not everyone knows how to fix everything, so people do what they can; blah, blah, blah. It’s all true, and we all know it, and it’s nothing new.

But that’s not the point. Look past my post–the symptom–and see the problem.

The problem is the product. Ubuntu is both a project and a product. As a project it’s wonderful, just like Linux, Debian, and any number of FOSS software projects. As a product, however, it is nearly in a state of decline.

e.g. A user upgrades from 11.10 to 12.04 “Long Term Support”. Then he reboots and finds that software mysteriously stops working in the “LONG TERM SUPPORT” edition. He wastes his valuable time debugging a problem that shouldn’t exist and finds out that it’s due to an OpenSSL change; not strictly Ubuntu’s fault, but remember, it’s about the PRODUCT. The whole point of having Linux distros is for the distros to make things work together. So he begs and pleads, along with other people having the same problem, for Ubuntu to do the OBVIOUS thing and patch OpenSSL so software will work again–his only alternative being to DOWNGRADE the entire OS! He begs, pleads, waits…and nothing happens.

Then while browing Planet Ubuntu (I’m not stalking anyone’s blog; this just popped up, and it seemed like a good opportunity to make a point) he sees good news: The system for handing out imaginary trophies to newbies who changed their first desktop wallpaper is full of unit tests to prevent regressions and has a bright, stable future! WOOHOO!

…But Ubuntu is still broken. He still can’t depend on the “LTS” release to not break his software which used to work. Some people can’t even upgrade one LTS to the next LTS. And his desktop UI keeps crashing, while the previous release of Ubuntu didn’t.

I’m not blaming Jono Bacon for this, or anyone who has been working on their accomplishments system. I don’t care about that. If you think that’s my complaint, you’re missing the point.

The point is that Ubuntu is fundamentally broken and unreliable as a product as long as serious bugs and regressions such as these (of which these are only a sample) go ignored–and unfixed, despite obvious, simple fixes being posted. Ubuntu’s priorities are totally messed up. These folks can work on whatever they want–but it is, in a sense, a tragedy that such engineering effort is going into gimmicks like this while fundamental issues are neglected.

People who care about Ubuntu, and who have the time and expertise to fix such issues, need to get their priorities straight. They need to do the less-fun stuff like fixing bugs and optimizing code. Security should be priority 1, then data loss, and then regressions. New features should be at the BOTTOM of the list.

Ubuntu does everything I want it to do–except for the things that are broken. I’d be happy if no new features were added for 2 or 3 releases, if they’d just FIX BUGS and leave the rest alone! This is the 21st century! Is it too much to ask that software quit crashing and inexplicably breaking other software? When will correctness and quality get the priority they deserve? When will developers start caring about the quality of their work? Why is there so little pride and craftsmanship in programming?

Ubuntu’s bug #1 is famous, but no one takes it seriously. People are going back to Windows 7 because of stupid regressions in Ubuntu that they have to deal with every 6 months!

I don’t know who to blame specifically, and I don’t know exactly how to fix the problem, and, no, I don’t deserve anything from anyone. Yes, this is a rant. But it’s the TRUTH. It’s REALITY. THIS is what is preventing the legendary “year of the Linux desktop.”

When I have time, I file bugs and help debug them, and occasionally even patch them if I have the ability. But at other times in my life, when I am busy with non-computer-related work, when I need my computer to be a functioning tool, I need it to JUST WORK. And the vast majority of people in the world are in this mode all the time. They don’t care about FOSS or volunteerism or passing the buck–they just need it to work, and to KEEP WORKING, and to NOT SUDDENLY BREAK.

I have tried to make it as clear as possible–there should be no need to read between the lines of this post. Don’t rant against my rant; talk about the real, underlying issues. Remember, most people won’t bother to complain, they’ll just leave quietly.

I’ll end this with an exhortation: developers, you who have the time and expertise to make software better: set aside your egos on a regular basis and work on unfun but desperately-needed fixes. Make things work before making them better. Do it not for yourself, but for the good of Ubuntu, the FOSS movement, and for those people who need their computers to JUST WORK because they have work to do. Do it before those people buy a Mac or Windows 7. Do it before FOSS desktop software becomes a joke and we lose the ability to even run our own software on our own systems, because FOSS on the desktop won’t be taken seriously.

I do agree with pretty much all said. And it is something that needs to be said, because its easy to sweep these issues under the rug. There was a time back in 2009 or 2010 when boot up seed was top of the list and some progress was made, then it suddenly dropped off the map and Unity came around. Boot up speeds dont seem of any importance anymore and if you care about boot time then the solution is what… just buy a new computer I guess? Obviously this is just one issue amongst many. Ive not been to a UDS yet… do topics such as what Adam mentioned ever get touched upon or are we in such a world now that its not politically correct?

Love Adam or hate him… he is here because he likes Ubuntu and wants to make it better, otherwise he would have never voiced his thoughts.

http://forteller.net/ Børge / forteller

Cool stuff! Will you be using Mozilla’s Open Badges?

http://profiles.google.com/amanic Marius Kruger

They do talk a lot about quality at UDS and there has been a huge push in ubuntu for over a year already to improve quality by adding lots of automated tests. This is very encouraging. But they do need volunteers to write more such tests, so I’d encourage anybody who has this itch to at least scratch a little i.e. try to write one test for something you depend on and don’t want broken by an upgrade. The test can be a very simple smoke test, but it should alert early on in the cycle if something broke.. http://qa.ubuntu.com/