Martin Albisetti's blog

3Feb/1012

Moving to Ubuntu One

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.

Tagged as: 12 Comments
28Nov/090

Why test driven development rocks

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.

Tagged as: No Comments
26Nov/093

Plans for the future of bzr-upload

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.

Tagged as: 3 Comments
13Oct/095

Research results on Launchpad icons

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/

Tagged as: 5 Comments
5Oct/090

Improving Launchpad icons, round 2

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

Tagged as: No Comments
21Jul/094

Launchpad is now fully open source

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

Tagged as: 4 Comments
22Jun/092

Launchpad AJAX changing user habits

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.

Tagged as: 2 Comments
3Jun/090

UDS repercussions

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

Tagged as: No Comments
18May/091

User Experience everywhere

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.

Tagged as: 1 Comment
10May/094

latest bzr + fat pipe = awesome

bzr_speed

Tagged as: 4 Comments