I have to confess, after I heard I found out we where shipping Unity in Ubuntu by default I was nervous. I got asked many times what my feelings were, and I think I generally dodged the question. This was a pretty risky move, which we are still a few months away from finding out how well the risk pays off.
Given that a lot of the design behind Unity wasn't done in the open and hadn't had a long time to mature, I've been sceptical of whether we (as in, the Ubuntu project) could pull of such a massive change in a such a short period of time, and still have happy users.

I've been using Unity on and off on my netbook (which is my secondary computer), but while enjoying a long weekend I've spent the last few days using it a lot, and my feeling towards the it have changed quite a bit.

I think it was the right decision. Overall, it feels like an overall improved experience, even with its current rough edges. Exactly what I think we need to win over a wider audience and have them fall in love with Ubuntu head over heels. Everything is starting to feel much more tightly integrated and with a purpose, as well as some eye-candy sprinkled in a lot of the right places.
I'm really glad Canonical decided to invest to heavily in such a risky and insanely complicated task, Natty is probably one of the most exciting releases I can remember.

There are still a few key challenges ahead, most notably to me is making the design process more open and inclusive, but still being able to deliver something that feels polished and not a pile of consensus between people who have gotten good at arguing. The Ayatana community does seem to be slowly growing, though, so the future looks pretty bright. Getting the right balance between Canonical and a community around design feels like one of the hardest problems to solve, luckily, Canonical continues to hire the brightest and most enthusiastic minds around, so I'm sure it will eventually feel like a solved problem.

I think it's been almost 6 years since I landed in the Ubuntu world, I've done all kinds of things in the community ranging from starting and building the Argentine LoCo to editing the Ubuntu Weekly Newsletter, to evaluating new Ubuntu members in the Americas region. With its ups and down, great press and wild controversies, it still feels like the best place to be.

I am ZOMG very tired from the exciting release for Ubuntu One, but I wanted to highlight a very pleasant surprise.
We launched the Ubuntu One Music Streaming a week ago, and yesterday, while hadn't yet publicly released, we got a patch that adds support to tell last.fm the music you are listing from the Android app.

After over a year’s worth of feedback from users like you and a clear view of where we want to take Ubuntu One in the future, we’ve just made some changes to the Ubuntu One service offering and pricing plans.

For starters, we will no longer offer the 50 GB plan to new subscribers. Everyone will get the basic plan and then have the option to add various ‘add-ons’ of services and storage as needed. But here are the details:

Ubuntu One Basic – available now
This is the same as the current free 2 GB option but with a new name. Users can continue to sync files, contacts, bookmarks and notes for free as part of our basic service and access the integrated Ubuntu One Music Store. We are also extending our platform support to include a Windows client, which will be available in Beta very soon.

Ubuntu One Mobile – available October 7th
Ubuntu One Mobile is our first example of a service that helps you do more with the content stored in your personal cloud. With Ubuntu One Mobile’s main feature – mobile music streaming – users can listen to any MP3 songs in their personal cloud (any owned MP3s, not just those purchased from the Ubuntu One Music Store) using our custom developed apps for iPhone and Android (coming soon to their respective marketplaces). These will be open source and available from Launchpad. Ubuntu One Mobile will also include the mobile contacts sync feature that was launched in Beta for the 10.04 release.

Ubuntu One Mobile is available for $3.99 (USD) per month or $39.99 (USD) per year. Users interested in this add-on can try the service free for 30 days. Ubuntu One Mobile will be the perfect companion to your morning exercise, daily commute, and weekend at the beach – we’re really excited to bring you this service!

Ubuntu One 20-Packs – available now
A 20-Pack is 20 GB of storage for files, contacts, notes, and bookmarks. Users will be able to add multiple 20-Packs at $2.99 (USD) per month or $29.99 (USD) per year each. If you start with Ubuntu One Basic (2 GB) and add 1 20-Pack (20 GB), you will have 22 GB of storage.

Users currently paying for the old 50 GB plan (including mobile contacts sync) can either keep their existing service or switch to the new plans structure to get more value from Ubuntu One at a lower price.

We know that you will enjoy these new add-ons as well as the performance enhancements we’ve made to Ubuntu One in recent months. If you have questions, our recently updated support area is a great place to start. There you’ll find a link to the current status of Ubuntu One services, a link to our frequently updated list of frequently asked questions, and a way to send us a direct message. As always, you can also ping the team on IRC (#ubuntuone in freenode). We welcome your questions, comments and suggestions.

We spend a lot of time making sure we're not violating any licenses, and usually work with upstream early on. Charlie Smotherman got confused about how we had implemented music streaming and filed a bug reporting a violation. I'd encourage anyone who even suspects there may be a license violation to report a bug or contact us as soon as possible, but maybe hold off on the inflammatory blog posts
We've contacted him explaining all this but he seems to not had a chance to update his claims so I'm bringing this up now.

Nobody on the Ubuntu One team commented on any of his blog posts either. Ampache seems like a nice piece of software and even some people on the Ubuntu One team use it. We chose to go with Subsonic clients (we are not using any of the server pieces as it doesn't fit with our infrastructure) because the API seemed to be very nice, the existing clients where very nice to use, and all upstream developers where friendly and happy to help us release the service.

I'm sorry if any feelings got hurt, but there's no need to lash out like that.

For future reference, the whole team hangs out in #ubuntuone on Freenode.

One of the questions that took a little while for me to fully understand was a very simple one: why does Ubuntu One exist?

Depending on who you ask, you may get a different answer, but here's my take on it.

Above all, to extend the power of Ubuntu as an environment. Ubuntu One already allows you to many things beyond the basic file sync we started off with, you can keep your contacts from your phone and desktop (and between other Ubuntu devices) in sync and backed up, notes, bookmarks, all your important files are backed up and synced, you can share them privately or publicly, you can buy music that gets delivered right to your music player, and soon you will be able to stream any of your music to your phone. And this is just today. As the project matures, we are working hard to make it easy for more and more third-party projects to use our platform and out-pace us in ideas and code.
All of this allows Ubuntu to extend its reach into mobile devices and even other operating systems. It feels like integrating into the real world today, not only the world we want to build.

Openness is the next thing on my mind. I know about all the criticisms about the server software not being open, I understand them and I've been through this same process with Launchpad. Right now, Canonical doesn't see a way to fund a 30+ developer team of rockstars, a huge infrastructure and bandwidth usage that is mostly used at no cost and still offer up the code to any competitor who could set up a competing project within minutes. I am sure someday, just like with Launchpad, we will figure it out and I will see all my commits push me up thousands of positions on ohloh. Until then, I'll have to continue working on Wikkid or any of the other 20 projects I use and am interested in, to keep me at a decent ranking.
All that said, the Ubuntu One team releases tons of source code all the time. A lot of the libraries we build are open sourced as soon as we get some time to clean them up and split it out of our source tree. All our desktop clients are open source from the start. On top of that, we work on pieces like desktopcouch, enabling couchdb for the desktop. We even got the chance to work with a closed-source iphone application, iSub, to open source his code so we could base our new streaming client on. We get to pay developers of open source projects on the Android platform as well, to work on improving it so we can deliver a better and more secure experience. We also get a chance to learn to package applications and upload new versions of the libraries we use to the Ubuntu repositories. And hundreds of other small things we do that feel so natural we forget to advertise and be proud of. All of this on Canonical's dime.

Finally, a goal that is dear to my heart. Make Canonical profitable. I have been overwhelmed over and over again by the passion with which Mark personally, and the company as a whole, contributes to making open source be the standard way of developing software in the world. I can understand why it's easy to feel uncomfortable with a privately owned company pursuing a profit while sponsoring an open source project which thousands of people contribute to, but after having sat down in dozens of meetings where everybody there cared about making sure we continue to grow as a community and that open source continues to win over tens of thousands of computers each month, I only worry about Canonical *not* being sustainable and constantly growing.

All these reasons for working on Ubuntu One have been close to my heart for many years now, a long time before I took the final step of investing not only my free time, but my work time, leisure time, and not too seldom, my sleep time, and started working for Canonical in a very strict sense of the term "full time".

I've spent time working in a few different teams, all of them are interesting, exceptionally skilled and open source is a core part of their lives. Ubuntu One is where I feel I can do the most impact today, and I'm beyond lucky to have given the opportunity to act on it.

For the first year and a half in Canonical I worked with the amazing Launchpad team, with the ambitious goal of building a new user interface, introducing AJAX in an established code base and rolling it all out on time. While all of that was overwhelming in itself, what was more important to me was making sure the UI remained consistent across time.
Long story short, it was a success and it's been 8 months since I've left the team and the established process is still on-going.

When I started working with the Launchpad team I was tasked with designing and rolling out a new interface using cutting-edge technology on a well established product and team. The existing processes and team structure made it very hard to roll out big changes while also ensuring consistency as time went by.
While the general designs and work ow changes were being eshed out, I started to drive some change to the existing processes, enabling me to be successful at an objective that would take a year to accomplish, and unexpectedly, beyond that.
The project was 4 years old and had over 500 dynamic pages with different templates and layouts that had been left untouched at different points in time. The goal for the next year was to make the application easier to use, even enjoyable. I also had to make the UI consistent across the board, take the project from static HTML pages into the wonderful world of in-line editing, streamlined work-flows and predictable interactions. In parallel, fundamental features that had been developed were going completely unused and we needed to turn that around. A re-usable AJAX infrastructure had to be developed from the ground up, new features needed to be designed and delivered, and general navigation issues needed to be addressed.
However, this story isn't about the success of the roll out of a new interface, but rather the success in the process changes that evolved during that year and how the project went from nobody feeling ownership over the user interface, to the developers taking strong ownership.

I feel very passionate about this subject, and hope this experience can help other projects and teams.

A little while back, I hinted at us delivering new features for mobile phones, specifically Android and iPhone. Now that we're past the initial research, architecture and initial implementation phase, I'd like to share one of the new features we'll be releasing in Ubuntu 10.10: music streaming.

In Ubuntu 10.04, we released the music store, and to compliment that, we will be allowing you to stream any music you have in your Ubuntu One account to your iPhone or Android mobile phone. This feature will be bundled as part of the paid plan, although we are planning some re-structuring to that, yet to be announced.

We've chosen to base this new service on free software, and have picked Subsonic clients as our platform, implementing compatible APIs on our servers.
On the iPhone, Ben Baron, who develops the iSub client for that platform, has decided to open source the code for his application, enabling us to build our iPhone as an open source project. We can't thank him enough, for enabling that for us, you should try out iSub, it's an amazing application.

We hope to slowly start opening up the testing of the service before the 10.10 release, but more on that as we make progress.

We should have released the source for the iphone client right after we did the upload to the appstore, but a bunch of bureaucracy and crazy work deadlines postponed this until now.
We're going to be doing some work for the Ubuntu 10.10 release on the iphone client as well as on a new Android client, both clients are going to be open source, like all our other Ubuntu One clients.
We've created the projects on Launchpad, pushed the initial source code for the iphone client, and will start pushing Android as soon as we get out of the exploration stage.

A few months back the Ubuntu One team launched mobile contacts syncing, our first step into the mobile world. After a few initial rocky Beta days of cleaning up some scaling rough edges, it’s been a smooth ride since. It turned out to be a very popular service, which has us excited, and reinforced our eagerness to build more mobile services for Maverick.
While the full roadmap hasn’t been set in stone yet, we’ve had a lot of feedback about offering a separate, feature-rich mobile service at a lower price, as well as integration into Android.
We’ve decided to take on some of these challenges, and are committed to delivering more and more mobile services, some of which we will introduce around the Ubuntu Maverick release in October.

In the meantime, we’ve decided to extend the 30-day trial period for mobile contact sync until the Maverick release, where we will re-instate it as part of a bigger, juicier and with more native integration, mobile package.

This is effective now, so if you’ve signed up for our paid account exclusively for mobile sync, feel free to downgrade to the free plan, we will notify all mobile users before the 30-day trial is turned on again.

As we finish our research and initial development, we will announce the features that will be rolled out and probably open up for testing in our alpha phase to a small group of lucky people.

We have very exciting and challenging plans for the future of the new web+mobile Ubuntu One team (more on this soon), and we’re looking for an exceptional web engineer to join us.

The summary for this position is:

We are looking for an exceptional engineer to work on Ubuntu One’s web infrastructure with a proven track record for exceptional problem solving and integration into third-party systems. This person should help the team design, build, and deploy web and mobile applications with a high degree of quality and passion. If you’re the type of person who gets excited about delivering cutting-edge technology to hundreds of thousands of users, in a lean and friendly environment, we are looking for you!

While we slowly ramp up to release mobile phone contact sync, using my own contacts as test data I realized that once I had merged my phone’s address book and Thunderbird’s address book, I had quite a few contacts duplicated due to them having different names with different information in them. So I had one of those “you know what would be cool…?” kind of moments, and started working on a feature that would let me merge contacts on the web, saving me hours of copy-n-paste.
A few weeks later, an initial pass at that feature has rolled out! Yay agile software development!

There are a few tweaks to the contacts interface, and you will see a new option:

So, for example, let’s pretend you have 2 contacts that are the same person but have an extra name in one of them, one of them has his phone number, the other, his email:

and

We go to our new merge feature and select both of them:

Finally, we get a preview of what this will look like:

Done!

Plans for the future are:

- Allow conflict resolution when the contact has 2 fields that are the same but have different values
- Allow editing the contact in the merge preview
- Allow merging from the contacts page instead of a separate page
- Use this same mechanism when conflicts arise in couchdb merging contacts
Also, contact syncing from thousands of mobile phones will be opened up for a public alpha very very very soon. Stay tuned!

After a year and a half in the User Experience team at Canonical, I’ve decided to move to the Ubuntu One team. It’s been an amazing experience to be part of that team but I’ve been missing doing development on a regular basis a lot lately, so I’ve decided to move into a role where I can get my hands dirty more often.

I will start by taking on anything on the web interface together with an amazing team, we will deliver a great experience and a higher level of polish for Lucid. There are some exciting new features coming to Ubuntu One, so it’s a great time to be part of the team, especially with John Lenton and Elliot Murphy as managers.

This does mean I will be moving away from the work I’ve been doing on Launchpad which makes me sad, it’s a fantastic and ambitious project filled with the smartest and most passionate engineers I’ve known.

If in the next few months you don’t start feeling like life is getting better for you on the Ubuntu One web UI, please come and find me and point me and hold me up to my promise of wonderful webby things.

All projects in Canonical have a strong focus on testing. From all of them, I think Bazaar ranks the highest on obsesiveness on testing. As a drive-by contributor, it always felt like a very high entry barrier, and deterred me from getting into complicated changes. It was only after I bit the bullet and got into more complicated changes (in Launchpad, actually) that I understood that tests where my best friends ever. It’s a safety net against myself, and actually lowers the barrier, because I don’t need to know about the rest of the code base to make a change, tests will tell me if I break something (seemingly) unrelated.

On the more extreme side, there is test driven development (TDD). You write the tests first, watch them fail, and then start producing the code that will get them to pass. Having co-authored bzr-upload with the TDD-obsessed bzr developer, Vincent Ladeuil, I thought that if I was going to add a new feature, I may just as well try it (again).

It rocked.

I set up the test, my carrot, and the task went from “start poking around code” to “fix this problem”. With the test written, it became very clear what parts of the code I needed to change, and how the feature had to work.

During UDS Vincent and I made sure we shared a room so we could talk a bit about what we wanted for the future of bzr-upload.

To ensure we didn’t loose any of the conversation, he took notes and sent them to me, so now I’m passing them on for those of you interested in contributing or just knowing what features are in the pipeline.
* Create a .bzr-upload-ignore file that ignore any action for which one the paths matches an ignore regexp. Use the working tree version by default, fallback to the versioned one otherwise

* New command: “bzr upload-check”. Walk the remote site ensuring that every file still has the same content that the local version –restore optionally restore the remote content to the local value. Optionally for remote sites implementing ssh and providing an md5 binary, the check can be implemented by comparing the local and remote md5 avoiding the full downloads.

Edit: High level of understanding, but a strong association with “attention”, “warning”, and “danger”. Might be worth modifying colour or shape to distance the icon from that interpretation.

Merge: Reasonable understanding of “merge”. However, participants were not entirely sure if the icon referred to the state ‘merged’ or the branches themselves.

Remove: Icon strongly associated with “do not enter” and “delete”. The interpretation “remove” comes only in third place. The icon is strongly evocative and might be better used to designate a more consequential or prohibitive action.

Remote bug: A reasonable percentage of respondents understood the “remote bug” icon. Many, however, did not. It appears that the key for interpreting this icon is the representation of the bug itself. Various potential states of a bug were suggested as interpretations. This icon could be made more explicit.

External link: Relatively well understood. It is worth noting that the icon has powerful suggestion of globality and reach (associated with translation, languages, internationalization, etc). It is a very evocative icon that could be more fully exploited perhaps in another context.

What next? We’ll attempt to create new versions of the icons, run another session of user-testing, and if understanding improves, Launchpad gets new icons \0/

Following up on my last post about user testing icons, it has been incredibly successful! We’ve had over 100 responses, and are now going through the data to put together a summary. I will post information on our findings as soon as we finish the work.

In the mean time, Charline Poirier, who is in charge of user testing in our team, has created another survey with 5 more icons to help us get more data. If everyone could give this survey another spin, and create some networking effects to help spread the survey to non-Launchpad users, it would be tremendously helpful to us. Here’s the link: http://www.surveymonkey.com/s.aspx?sm=6iwthaIT4FwPCsMPa1EDEA_3d_3d

We’re trying to improve the icons we have in Launchpad so they’re more usable across different cultures and types of users, and our first step is to do some user testing on our current icons.

The Canonical User Experience team has set up a survey to gather information on how users see our icons, so if you have a few spare minutes (it’s very quick!), please take the survey and pass it on to other people, especially if they don’t use Launchpad, as they will be less biased.