Canonical Voices

Posts tagged with 'ubuntu'

beuno

After a solid 6 months of work, music streaming is up for public testing!  \o/

Read the full announcement for all the details, and go see the wiki page on how to sign up.

Read more
beuno

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.

Read more
beuno

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.

Read more
beuno

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.

I wrote a paper on the whole experience and presented it at the agile conference XP2010 in Norway.

Here's the introduction:

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.

Here's the paper for download: xp2010_paper.pdf

Read more
beuno

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.

More on our epic roadmap to 10.10 soon!

Read more
beuno

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.

The projects are available at:

iphone:  https://launchpad.net/ubuntuone-ios-client
android: https://launchpad.net/ubuntuone-android-client

Stay tuned for more on our new mobile services!

Read more
beuno

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.

It seems to be the case every release, but, the future is exciting!

Read more
beuno

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!

If this sounds like you, check out the full job description and send us your CV!

Read more
beuno

After a few hiccups with our servers, Ubuntu One contact phone sync is open again for new accounts.

Check out the wiki with the instructions to get set up: https://wiki.ubuntu.com/UbuntuOne/PhoneSync/

Sorry for the inconvenience, Slashdot still seems to be a mixed bag of pain and joy  :)

Read more
beuno

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!

Read more
beuno

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.

Read more
beuno

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.

The results?  in one hour, I implemented a feature that lets you ignore specific files on upload. With tests.

Read more
beuno

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-files FILES” to allow uploading individual files. Upload the specified files if no uncommitted
changes exist, –force overrides the uncommitted changes check.

* 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.

Read more
beuno

Following up on our survey on icons in Launchpad, Charline Poirier provides us with the outcome:

Edit 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 merge-proposal-icon:  Reasonable understanding of “merge”.  However, participants were not entirely sure if the icon referred to the state ‘merged’ or the branches themselves.

Remove 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 bug-remote:  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 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/

Read more
beuno

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

Read more
beuno

As promised, Launchpad has been fully open sourced (as opposed to the initial idea, nothing has been held back). Get it now, fix your favorite pet bug, and improve tens thousands of people’s experience.

Mark Shuttleworth really deserves a lot of praise for this bold and brave move, open sourcing not only the code, but all  it’s history. It’s a fantastic day today.

Update: yes, fully means including soyuz and codehosting, Mark has decided to release everything. The whole history is there.

See the loggerhead page:

launchpad-open-source

Read more
beuno

Check out what happened when AJAX bug tags editing landed in April:

bug_tags_graph

Note that since Launchpad has the edge/production split, so the changes in the graphs are less drastic since a set of users start interacting with new code before others.

Read more
beuno

UDS repercussions

Check out UDS helping out the Gnome Zeitgeist developers: http://seilo.geekyogre.com/2009/06/udss-influence-on-gnome-zeitgeist/

Read more
beuno

About a month ago, I went to Canonical’s office in London for a sprint, and made good use of my Sunday by visiting the National Gallery. One fantastic thing about London, is the fact that all museums are free, not just because otherwise a few years back I couldn’t of afforded going, but because the fact that they are free gives you the freedom of going to the same ones over and over again, and just calmly visit the bits you’re interested in.

As I was walking by, I saw a painting that really struck me. It was a terrible and dark dragon eating two men, one of them is in agony while it’s face is being eaten off. Quite shocking:

Two Followers of Cadmus devoured by a Dragon

After looking at it for a little while, I went closer to read the description of it, which unexpectedly shocked me ten times as much:

“This gruesome episode comes from the story of Cadmus which is told in Ovid’s ‘Metamorphoses’ (III: 1-151). Cadmus was sent by the Delphic oracle to follow a cow and build a town where it sank from exhaustion. The cow stopped on the future site of Thebes, and Cadmus, intending to sacrifice it, sent his followers to get water from the neighbouring well of Ares. They were killed by the guardian of the well, a dragon who was the son of Ares. Cadmus then killed the dragon and on the advice of Athena sowed its teeth in the ground, from which sprang up armed men who slew each other, with the exception of five who became the ancestors of the Thebans.”

This got me thinking on how much first impressions are important in the user experience, but really hit me how much more important the actual content is. We tend to relay the content creation and management to “the marketing folks”, when I feel it’s a crucial part that should be worked on together to balance off the amount of text, with the tone in which it’s written, and to ensure that we’re adding value to the users’ experience.

Yes, I’m starting to see UI everywhere.

Read more