Canonical Voices

Posts tagged with 'meet the devs'

Laura czajkowski

Martin Packman

Laura:  What do you do on the Launchpad team?
Martin:  I’m on the newly created Blue squad, and we’re on the nebulous task of maintenance at present. I’m also on loan doing some juju development work.

Laura: Can we see something that you’ve worked on?
Martin:  You can see everything I’ve worked on. Well, all the things where I’ve had the convenience of using launchpad rather than having to send patches by email.

Laura: Where do you work?
Martin:  From home like most of the other developers in Canonical. I’m only a few hours away from the London office, but haven’t been there since the relocation.

Laura: What can you see from your office window?
Martin:  A weeping birch, and whatever feathered things perch atop. Sky, often blue, generally grey. Houses on the other side of the road. This time of year, swift acrobatics.

Laura:  What did you do before working on the Launchpad team?
Martin:   Bazaar! Which is still a pretty key part of how Launchpad works. In between I worked on a cloud api proxy, which has sensibly been dropped in favour of just using the native openstack api.

Laura:  What did you do before working at Canonical?
Martin:  Whatever came up, computer support and some development work.

Laura: How did you get into free software?
Martin:  Mostly from using it, having it break horribly, and getting the urge to make the code actually work.

Laura:  What’s more important? Principle or pragmatism?
Martin:  Principle is more important, otherwise you compromise all the way to  the other side. But you need some pragmatism to get anything done at all.

Laura: Do you/have you contribute(d) to any free software projects?
Martin:  I’ve tended to submit changes for anything I use heavily at the time, and to various bzr related projects. I’d use this space to hector some maintainer who’d been sitting on a patch for ages, but everyone’s been organised of late.

Laura:  Tell us something really cool about Launchpad that not enough people know about.
Martin:  It actually works pretty well in lynx!

Laura:  Is there anything in particular that you want to change in Launchpad?
Martin:  You mean apart from making it work better in lynx? I’d like bug search to suck less.

Read more
Laura czajkowski

Vincent

Laura:  What do you do on the Launchpad team?
Vincent: Maintenance. Although I’m eagerly waiting for the sprint with gmb to get some hints on how to handle the beast :)  In the mean time, I’m focusing on fixing bugs and making the udd importer more testable.

Laura: Can we see something that you’ve worked on?
Vincent:  https://launchpad.net/bzr  and http://babune.ladeuil.net:24842/

Laura: Where do you work?
Vincent:  At home

Laura: What can you see from your office window? View from where I sit
Vincent: The venerable Strasbourg post office, lovely old stones.

Laura:  What did you do before working on the Launchpad team?
Vincent:  Developing bzr.

Laura:  What did you do before working at Canonical?
Vincent:Various service/consulting work for > 20 years, including some episodes at software editors.

Laura: How did you get into free software?
Vincent:  With pleasure

I think the most important event was in 1993: I encountered a blocking bug in g++ related to C++ templates (way before it was standardized). That was a roadblock, no work-around and it was Friday afternoon. In despair, I posted a reproducing case in the related newsgroup. When I came back to work on Monday I got an email telling me the bug was known *and* fixed *and* where to get the patch for the compiler.

That was a light-bulb instant: free software support could be far superior to commercial software support !

One week later, I got a second email asking me if I was out of trouble… Amazing, not only did I get a fix faster than I could have dreamed, but the guy *came back* to ensure I got it…

I never looked back.

Laura:  What’s more important? Principle or pragmatism?
Vincent:  Both are important. If you forget one, be prepared to pay the cost. Both are dangerous too if you forget the other:

- being pragmatic only most often means you’re adding to your tech debt or rely on others to finish your work,

- respecting principles excessively means you never deliver anything.

Laura: Do you/have you contribute(d) to any free software projects?
Vincent: bzr is my most important contributions (including a few plugins). I’ve occasionally sent patches to gtk, perl modules and various other bzr upstream projects.

Laura:  Tell us something really cool about Launchpad that not enough people know about.
Vincent:  Pass  :)

Laura:  Is there anything in particular that you want to change in Launchpad?
Vincent:  Make it easier to test against for all projects that rely on it (I’m probably biased here as the udd importer severely suffer from not being able to properly test interactions with launchpad (read *and* write (branch creation mainly)).

Read more
Laura czajkowski

Jelmer Vernooij

Laura: What do you do on the Launchpad team?
Jelmer: I’m one of the blue haired freaks on the Launchpad blue squad, although my hair isn’t actually blue – I’m sure we can fix this at the next squad sprint. At the moment, we are working on maintenance: fixing
critical bugs in Launchpad and dealing with incidents.

Laura: Can we see something that you’ve worked on?
Jelmer: I’ve contributed quite a bit to the code behind recipe builds. Most of my work has been on the backend though, not directly user-visible.

Laura: Where do you work?
Jelmer: Like most of us I work at home, which in my case is in Utrecht, the Netherlands. Occasionally I cowork with other teleworkers in Utrecht.

Laura: What can you see from your office window?
Jelmer: At the moment, I see just a big sad drapery made out of rain. On brighter days, I look out on a park and a canal.

Laura: What did you do before working on the Launchpad team?
Jelmer: The Blue squad, which I’m currently in, was originally the Bazaar team. Before that, I worked on the Launchpad team too. This was back in the days when there were no squads, but teams – I was in the Soyuz team. The inimitable Matt Revell interviewed me back in 2010:

Laura: How did you get into free software?
Jelmer: A long time ago, in high school, I ended up maintaining a few server machines running FreeBSD and Samba. After hitting some bugs, a dive into the source code followed to see what I could fix. I’ve been involved with various free software projects ever since.

Laura: What’s more important? Principle or pragmatism?
Jelmer: Do I really have to choose? That’s not very pragmatic.

Laura: Do you/have you contribute(d) to any free software projects?
Jelmer: Beside Launchpad, the main free software project I am involved in is Samba. There are several other projects that I have made major contributions to, such as Bazaar, CUPS, Wireshark, OpenChange, BitlBee.

I’m a Debian maintainer and Ubuntu uploader, mostly for projects I am involved in upstream. This knowledge comes in handy when working on the archive side of Launchpad.

Laura: Tell us something really cool about Launchpad that not enough people know about.
Jelmer: https://launchpad.net/builders lists all the Launchpad builders and
the mischief they are up to.

Laura: Is there anything in particular that you want to change in Launchpad?
Jelmer: It would still be really nice to have dashboards of some kind in
Launchpad. There is even a LEP.

Read more
Laura czajkowski

Papa Smurf

Laura: What do you do on the Launchpad team?
John: I’m the team lead for the Blue squad. Right now our squad is on Maintenance, so I generally do the coordination work of our team with other teams and the system administrators.

Laura: Can we see something that you’ve worked on?
John: Before we switched to maintenance, our team was focusing on doing Bazaar work. Within the more recent time, we’ve done stuff like fixing up the Ubuntu Distributed Development package importer, and getting translations for Quantal started for Launchpad.

Laura:Where do you work?
John: I work from home in the Netherlands.

Laura: What can you see from your office window?
John: We have a forest near our house, and some of the other neighbors houses.

Laura: What did you do before working on the Launchpad team?
John: As mentioned, we were focused on development of Bazaar, though arguably that was still part of the Launchpad group (not officially, but in spirit).

Laura: What did you do before working at Canonical?
John: I worked for a company developing medical imaging algorithms, mostly for detection and visualization of disease.

Laura: How did you get into free software?
John: Our team wanted to use something better than CVS for development. At the time SVN was pretty hard to set up, and there was just the beginnings of a couple of tools for distributed version control. I got into tla at the beginning, and was happy when Canonical started Bazaar, and I was able to hack on it.

Laura: What’s more important? Principle or pragmatism?
John: I’m a fairly pragmatic engineer. I think it is good to use principle as a guideline, but in the end if the work isn’t in the hands of people using it, it is providing no benefit and is arguably wasted effort.

Laura: Do you/have you contribute(d) to any free software projects?
John: Well, Launchpad and Bazaar are both pretty clear things (and tla a little bit before that). I also developed some other tools while here at Canonical. Such as Meliae for profiling python memory.

Laura: Tell us something really cool about Launchpad that not enough people know about.
John: The UDD package importer turns the changes from debian packages into real VCS branches that you can do lots of nice stuff on. (annotate the history, log the history, see the graph over time, etc.)

I think we are at about 90% coverage, and you can do “bzr log ubuntu:package” to find out the recent history for a package in ubuntu.

Laura: Is there anything in particular that you want to change in Launchpad?
John: My own personal project with launchpad is improving the connection handling when accessing Bazaar branches. Right now it is approximately 3s just to do the ssh handshake and start talking to codehosting. I have some improvements that should decrease that significantly, but we encounter some strange hanging bugs that are only reproducible in production. And LP’s commitment to having minimal user-visible downtime is particularly problematic for SSH connections. A single HTTP request is less than 5s, but an SSH connection can legitimately be active for an hour if accessing a large project.

Read more
Laura czajkowski

Launchpad Clinic at UDS-Q

Let’s face it. Launchpad is not without its bugs. Everyone probably has at least one that they’d like to see fixed, and most of those that do also have the ability to fix them, if only they could get a leg-up on the learning curve of Launchpad development.

To that end, Graham Binns and I will be running two Launchpad Development Clinics at UDS-Q. We’ll be there to help you get on the road to getting your bugs fixed, and to offer advice on every step of the Launchpad development process. We’ll have EC2 instances ready for you to develop on, so if you haven’t already gone through the process of setting up local Launchpad development on your machine, you don’t need to worry.

I have created a wiki page on which you should register if you’re going to be attending either of the clinics. Just list your name and the ID of the bug(s) you want to work on on that page. We’ll check the bugs out and get in touch with you if we think they’re too big to work on in the clinics – in which case we’ll try and work with you to get them fixed over a longer period. We’ve added the event to summit schedule, for Tuesday and Thursday of UDS so why not sign up and come along!

I’m looking forward to hearing from you all, and to helping you make Launchpad awesome(r).

code blue

Read more
Laura czajkowski

Contributing to Launchpad

Ever wished there was just one feature you’d like to see enabled in Launchpad. Ever wondered when one of the bugs you have taken the time to report and document would be implemented.  Well how about we help you to get these bugs fixed.  Launchpad is a free and open source project, its platform is also open and developed in a transparent fashion. The source code for every feature, change and enhancement can be obtained and reviewed.

This means you can actively get involved in improving it and the community of Ubuntu platform developers is always interested in helping peers getting started. The Launchpad development team are continuously working on areas in Launchpad and other projects but there just isn’t enough time in the day to get every bug fixed, tested, deployed and out there.  What we’d like to help to do is encourage and help users get more involved. We would like to get more of the developer community involved in Launchpad, users who’ve never developed before to experienced hands on developers and show you how to get started. There is documentation written up, but we’re going to explain it a less scary way in  basic steps.

Getting Started

First things first, you need bzr. All of Launchpad’s branches use bzr for source control, so you’ll need to install it using apt-get:

 $ apt-get install bzr

Next, you need to create a space in which to do your development work. We’ll call it ~/launchpad, but you can put it pretty much anywhere you like on your system.

$ mkdir ~/launchpad

Because getting all the ducks in a row to make it possible to do Launchpad work takes a while, we’ve actually got a script that does all the legwork for you. It’s called rocketfuel-setup (see what we did there?) and once you’ve got bzr installed, you can

$ cd ~/launchpad
$ bzr --no-plugins cat http://bazaar.launchpad.net/~launchpad-pqm/launchpad/devel/utilities/rocketfuel-setup > rocketfuel-setup
$ chmod a+x rocketfuel-setup
$ ./rocketfuel-setup

You’ll be prompted for various details, such as your Launchpad username, and you’ll be asked for your password so that rocketfuel-setup can install all the packages that Launchpad needs. After this, you might as well go and have a sandwich, because downloading and building the source code will take at least 40 minutes on a first run.

Once rocketfuel-setup has completed on your machine, your ~launchpad directory will look something like this:

$ ls ~/launchpad/
lp-branches lp-sourcedeps rocketfuel-setup

The only directory you need to worry about in there for now is lp-branches. As the name suggests, this is where your Launchpad branches are stored.

Now that you’re all set up, it’s time to find a bug to fix and get some coding done!

Where to Begin

Now, it’s fair to say that there are plenty of bugs in Launchpad worth fixing. However, it’s even fairer to say that you don’t want to pick on of the Critical bugs as your first effort for Launchpad development, mostly because the Critical bugs are all fairly complex.

Luckily, the Launchpad team maintains a list of trivial bugs – the ones with simple, one-or-two line fixes that we just haven’t been able to get around to yet. You can find it here on Launchpad.

Once you’ve found a bug you want to fix, you need to create a branch for it. There are some utility scripts to make your life a bit easier here. In this case, rocketfuel-branch, which creates a new Launchpad branch from the devel branch that rocketfuel-setup created.

$ rocketfuel-branch my-branch-for-bug-12345

You’ll now find that branch in ~launchpad/lp-branches

$ ls ~/launchpad/lp-branches
devel my-branch-for-bug-12345
$ cd ~/launchpad/lp-branches/my-branch-for-bug-12345

Now that you’ve got a branch to work in, you can start hacking! Before you do, though, you should talk to someone in #launchpad-dev on Freenode about the problem you’re trying to solve. They will help you figure out how best to solve the problem and how best to write tests for your solution. We call this the “pre-implementation call” (though it can happen on IRC) and it’s very important, especially for first time contributors.

Once you’ve had your pre-imp call, you can get coding. Don’t forget that the people in #launchpad-dev are there to help you as you go. Don’t worry if you get stuck; Launchpad is a very large project and even seasoned developers get lost in the undergrowth from time to time. Thankfully, there’s a team of committed people who are able to wade in with machetes and rescue them. I’m going to stop this analogy now, since it’s starting to wither.

What to do once you’re written code

Once you’ve finished hacking on your branch, you need to get it reviewed. Launchpad has a feature that makes this really, really simple, called Merge Proposals. Here’s how it works.

First, commit your changes to your branch (you should have been doing this all along anyway, but just in case…) and push them to Launchpad:

$ bzr ci -m "Here are some changes that I made earlier, with a useful commit message."
$ bzr push
Using saved push location: lp:~yourname/launchpad/my-branch-for-bug-12345
Using default stacking branch /+branch-id/24637 at chroot-83246544:///~yourname/launchpad/
Created new stacked branch referring to /+branch-id/24637.

You can now view the branch on Launchpad by using the bzr lp-open command:

$ bzr lp-open
Opening https://code.launchpad.net/~yourname/launchpad/my-branch-for-bug-12345 in web browser

The page that will open in your browser contains a summary of the branch you’ve pushed, and will look something like this:

You can link it to the bug you’re fixing by clicking “Link a bug report”. If you’ve named your branch something like “foo-bug-12345″, Launchpad will guess that you want to link it to bug 12345 in order to save you some time.

From the branch summary page, you need to create a merge proposal. To do this, click “Propose for merging.” You’ll be presented with this page:

 

 

On this page, you’re going to explain what you’ve changed and why. There’s a template for what we refer to as the merge proposal cover letter on the Launchpad dev wiki.

Things you absolutely must include in your cover letter:

  • A summary of the problem.
  • A summary of your proposed solution.
  • Details of your solution’s implementation.
  • Instructions on how to test your solution and how to QA it.
Not all of the other items in the template will apply to your branch. If there’s any confusion, just ask for clarification in #launchpad-dev.
Once you’ve entered all your branch’s details in the “Description of change” field, click the “Propose merge”  button to create the merge proposal. Once you’ve done that, hop over to #launchpad-dev on Freenode and talk to the On-call reviewer (listed in the channel topic), who will review your branch for you and, once it’s ready, land it on the Launchpad mainline. If there’s no on-call reviewer listed you can find out who should be available for that day by taking a look at the reviewer schedule. If all else fails, a general call for a reviewer should net you a willing Launchpad developer, though you’ll have to wait for them to have time in their day to take a look at your branch.

Launchpad Clinic – UDS 

At UDS-Q we’re going to run two day with the help of Graham Binns who will be there to help with hands on set up and walk people through their bugs they would like to work on  and figure out where to start.  If you’re interested in taking part in these sessions, please add your name and the bug(s) you are interested in so we can review them ahead of time, there are many to chose from that are tagged with trivial if you want to start there.

We will have a EC2 instance set up of Launchpad to maxamise the time available to work on these areas.

Read more
Dan Harrop-Griffiths

Meet Laura Czajkowski

Laura CzajkowskiDan: What’s your role on the Launchpad team?

Laura: I’m the Launchpad Support Specialist, so my job is pretty varied each day. Launchpad is rather larger than I first ever thought or had experience in using but it’s great to see so many people use it on a daily basis.

My role is to help people via email or IRC with their queries or point them in the right direction of where they can get more information or submit a bug or help them achieve something. I also look after Launchpad bugs and questions each day and it’s fascinating to see the varying questions we get on there so it’s a great way to learn and also see what interesting projects are on Launchpad and the communities that use it.

Dan: You’ve been working on Launchpad as a community member for a while though yeah?

I’ve been using it in the Ubuntu community in the past for blueprints, reporting bugs and and tracking issues and the odd time if I can help out in translations.

Dan: What’s been the biggest challenge in your new role so far?

Laura: Bazaar and PPAs both of which are bizarre to me at present, but the folks in the Launchpad and Bazaar teams have been really helpful to me and really made working with them easy.

Dan: Where do you work, and what can you see from your window?

Laura: I live in London, and work from home four days a week so when I look out the window I see the reflection of the London Eye. The other day a week I head into Canonical HQ.

Dan: If time/money was not an issue, what would you change about Launchpad?

Laura: Oh I’d love to make Launchpad translatable as I do know many people who love to get more involved, having it translated would help here. I’d also love to get more of the developer community involved in Launchpad, and where Launchpad isn’t doing what they’d like get them to submit patches and get them more involved in the process. It’s open source after all :)

Dan: How did you first start to get involved in the open source community?

Laura:I got involved when I was in college where I was roped into joining our computer society Skynet. Soon I became treasurer and event organiser and then eventually president of the society and got involved running open source conferences. Never looked back since!

Read more
Matthew Revell

Meet Raphaël Badin

Raphaël BadinEarlier this year, Raphaël Badin joined the Launchpad team as a developer.

Matthew: What do you do on the Launchpad team?

Raphaël: I’m a member of the Red Squad reporting to Julian Edwards and I’m currently working on the derived distributions feature.

Matthew: Can we see something that you’ve worked on?

Raphaël: Not yet because this feature is still in the works but once it’s released the changes will be pretty visible.

Matthew: Where do you work?

Raphaël: I work from my home in Paris, France.

Matthew: What can you see from your office window?

Raphaël: The other side of the street … over the rooftops I can see the very top of the Sacré Coeur.

Matthew: What did you do before working at Canonical?

Raphaël: Most recently I worked in a small Python/Django shop active in the field of participatory democracy and public participation. Before that I also worked in the banking industry.

Matthew: How did you get into free software?

Raphaël: I was introduced to Unix in college. When I started to work I had the chance to cross paths with free software zealots and was quickly convinced by the value of free software. I’ve been using Debian/Ubuntu ever since.

Matthew: What’s more important? Principle or pragmatism?

Raphaël: If you really want to choose between the two I would say it is something to be decided on a case by case basis ;-) … but I think they work hand in hand most of the time.

Matthew: Do you/have you contribute(d) to any free software projects?

Raphaël: Mostly small bug reports/patches to Django and Drupal.

Matthew: Tell us something really cool about Launchpad that not enough people know about.

Raphaël: The PPAs are nothing new but are a great way to build and distribute your packages for ubuntu.

Matthew: Is there anything in particular that you want to change in Launchpad?

Raphaël: I believe performance is a major part of the user experience and thus I would love to take part in the ongoing effort to improve Launchpad’s performance.

Matthew: Thanks Raphaël!

Read more
Matthew Revell

Meet Huw Wilkins

Huw Wilkins
Earlier this year Huw Wilkins joined the Launchpad to look after the user interface. Here’s a quick intro to who he is.

Matthew: What do you do on the Launchpad team?

Huw: I work on Launchpad’s user interface. This means I do a bunch of design work and front-end development. I work with developers and help them to create features with good user interfaces.

I come up with ideas for how we can improve our current interfaces and generally do whatever I can to make Launchpad look better and nicer to use. I’m still relatively new to Launchpad but I hope you will start to see the fruit of this work soon.

Matthew: Can we see something that you’ve worked on?

Huw: Most of the visible work I’ve been doing has been fixing bugs in various parts of our UI. Hopefully you might have noticed there are less small issues and breakages. If you use private bugs then be on the lookout for a new (more obvious) notification style soon.

Matthew: Where do you work?

Huw: I work from home in Sydney, Australia.

Matthew: What can you see from your office window?

Huw: I look out over some rooftops and trees. Sometimes in the evenings I get beautiful sunsets.

Matthew: What did you do before working at Canonical?

Huw: Most recently I worked for a travel software company in charge of designing the UI for a massive web application. I have also worked as a freelancer and also spent a few years working in tiny fast-paced creative agencies.

Matthew: How did you get into free software?

Huw: A friend of mine handed me a CD with the first beta of Ubuntu (Warty) on it. I quickly discovered a bunch of amazing open source software and I’ve been running Ubuntu ever since.

Matthew: What’s more important? Principle or pragmatism?

Huw: Principle. But that only works if you live in a vacuum. It would make my job a lot easier if Launchpad lived in a vacuum, but it doesn’t, so I often have to be pragmatic.

Matthew: Do you/have you contribute(d) to any free software projects?

Huw: A number of years ago I was heavily involved in Ubuntu Studio. In recent years I open sourced a user feedback app for Django that started out as
part of a personal project.

Matthew: Tell us something really cool about Launchpad that not enough people know about.

Huw: Oh! Oh! You’ll have to wait a bit longer but some of the guys have been working on a way to choose specific types of bug actions that you want
to get emailed about. A lot of people are about to have much happier inboxes.

Matthew: Is there anything in particular that you want to change in Launchpad?

Huw: I want Launchpad to be more personal. There are lots of things going on in Launchpad that do not concern me, and a lot that does. I would love
to make Launchpad do the work of finding that information instead of me.

Matthew: Thanks Huw!

Read more
Matthew Revell

Meet Ian Booth

We’ve seen quite a few new faces in Canonical’s Launchpad team lately. Ian Booth is one of them and is now part of the Launchpad Code team.

I asked him a bit about who he is and what he is working on.

Matthew: What do you do on the Launchpad team?

Ian: I only recently started working on Launchpad. I work on the “Code” team, reporting to Tim Penhey.

We deliver functionality associated with managing and importing branches, merge proposals, code reviews; Bazaar-Launchpad integration; the XML-RPC and web services API etc.

Personally, I’ve also done some work on improving the menu rendering performance and other infrastructure type things.

Matthew: Can we see something that you’ve worked on?

Ian: There’s not a great deal that’s visible to the end user (or what could be considered a headline feature) just yet.

Something I could mention is that I’ve done work on improving how lp: short alias URLs (eg lp:firefox/trunk) are handled. If an invalid link is processed, the user is redirected back to the referring page with a nice message instead of getting an oops page.

Matthew: Where do you work?

Ian: I work from home in Brisbane, Australia.

Matthew: What can you see from your office window?

Ian: I can see the kids’ trampoline and our back garden (or should that be all the weeds).

Matthew: What did you do before working at Canonical?

Ian: I worked for 10 years at Caterpillar, developing an onboard/office system to control the real time running of large open cut mining operations, using cool technologies like GPS, mesh wireless networking and embedded onboard computers. I’ve also worked as a data communications engineer, project manager, and also tried my hand a getting a startup company up and running (sadly, without success).

Matthew: How did you get into free software?

Ian: The use of open source software has been critical to the success of various projects I have worked on. A large factor for me in pushing the use of such software on these projects has been the need to be able to diagnose and fix issues, and develop customisations/enhancements, which would otherwise have been at the mercy of the vendors’ release schedule or otherwise out of our control.

Matthew: What’s more important? Principle or pragmatism?

Ian: Can I say both? I don’t think they have to necessarily be mutually exclusive. But I would err on the side of pragmatism, so long as it fitted within my moral boundaries.

I suspect one context in which you may be framing the question could be the inclusion of binary blobs and so called non-free components within otherwise open source/free software distributions like Ubuntu. In those cases, so long as it’s legal to do so, I say give the end user the functionality they need every time.

Matthew: Do you/have you contribute(d) to any free software projects?

Ian: I’ve contributed features and/or bug fixes to Sofia (a web framework which was popular around 10 years ago), Hibernate, Zope (only a very small fix so far but hopefully more as I get more knowledge), the Bazaar plugin for Intellij, and other (much) smaller scale projects.

Matthew: Tell us something really cool about Launchpad that not enough people know about.

Ian: Hmmm. That’s a difficult question given my short time on the project. One feature I found really useful is the degree of integration between Launchpad and Bazaar, especially the recent improvements to allow lp: alias names to be used to refer to branches.

Matthew: Is there anything in particular that you want to change in Launchpad?

Ian: I would love to modernise the GUI and/or look and feel to make it more “sexy”.

Matthew: Thanks Ian!

Read more
Matthew Revell

Meet Rob Collins

Rob Collins joined the Launchpad team recently. Here’s a bit about him.

Matthew: What do you do on the Launchpad team?

Rob: I’m the Architect for Launchpad – I’m responsible for guiding the development and technology choices we make so that Launchpad can meet the needs of our stakeholders, users, developers and system administrators.

Practically speaking this means that I do a bit of everything: if I don’t, I can’t really feel what’s going on across the system, and being well informed is key to making good decisions / giving good advice.

Matthew: Can we see something that you’ve worked on in Launchpad?

Rob: A few recent examples of my personal code are: email list moderation pages are now batched, so should time out much less often if a list gets a lot of mail to moderate; I’ve been poking at bugs and bug API performance quite a bit, and the /attachments API is significantly faster now; the /messages API is going to be faster soon — and the main bugs page has had several seconds of overhead shaved off it for many bugs. I’ve set up a page with some of the things I think will help us with building and running Launchpad as we move forward.

Matthew: Where do you work?

Rob: I work from home like so many of us do; I recently moved to Rangiora, NZ. Yes, we were 40km or so from the epicentre.

Matthew: What can you see from your office window?

Rob: Grass, fence, roofs and sky; shorly to be grass, hedge and sky ;)

Matthew: What did you do before joining the Launchpad team?

Rob: Most recently I was one of the developers of Bazaar at Canonical, working mainly on the deep guts of the system.

Matthew: You’ve dedicated your Tuesdays to performance issues in Launchpad. Tell us about some of the improvements you’ve made.

Rob: So the ones I’ve listed above are pretty nice.

Here’s a list of specific timeout bug fixes I’ve done. More importantly though, we’ve been working on better diagnostics gathering for timeouts, and that work is making things easier and easier to analyse.

Matthew: What else are you working on right now?

Rob: Release features when they are done — this change to how we develop and rollout launchpad is a key change to speeding up the delivery of features. It’s not the full story, because we don’t (yet) have a plan for dealing with schema changes without downtime — that’s in the slightly longer term pipeline.

Matthew: What’s the next big thing you want to tackle in Launchpad?

Rob: Downtime-free schema changes; this should permit us to deliver new functionality much more rapidly.

Matthew: What experiences from your time in the Bazaar team will help with your new-ish role?

Rob: Ah! I spot a leading question. One of the interesting differences between Bazaar and Launchpad is that nearly every operation in Bazaar exercises an entire stack from scratch: there’s no active DB server with loaded caches ready and primed to go. That really got me thinking, continually, about the overheads involved in the entire stack : I think we need that same thought and consideration in Launchpad as we work on performance and deployment.

Matthew: How can community contributors help with what you’re working on?

Rob: Many, many ways!

Firstly, there’s the current timeout bugs. All of these can be fixed by patches … the exact patch and how hard it is to write will of course vary :)

Many timeouts are actually pretty shallow issues — but others will require schema changes and so forth. I’m delighted to help mentor folk working on any part of Launchpad.

The process and deployment changes we’re doing are mainly a sysadmin/deployment issue and not as amenable to contribution (by anyone not one of our sysadmins).

Matthew: How did you get into free software?

Rob: Thats a long story :) Gradual love affair starting with demo code back on an Amiga A500.

Matthew: What’s more important? Principle or pragmatism?

Rob: Case by case basis ;)

Matthew: What free software projects do you contribute to?

Rob: Currently I’m still swimming for the surface in Launchpad ;)

Recently I’ve contributed to:

  • Launchpad
  • Bazaar
  • A variety of python testing projects:
    • testtools,testresources,testscenarios,fixtures,testrepository,
      unittest in Python itself
  • Storm
  • Ubuntu and Debian

The list going way back is longer … but also mainly of historical interest.

Matthew: Tell us something really cool about Launchpad that not enough people know about.

Rob: Recipes. Recipes are cool.

Read more
Matthew Revell

Meet Jon Sackett

Jon Sackett joined the Launchpad Registry team a couple of weeks ago. Here’s a quick run-down of who he is.

Matthew: What do you do on the Launchpad team?

Jon: I’m part of the Registry team; we maintain the people, teams and projects bits and pieces used by all the other parts of Launchpad.

Right now I’m mostly helping pay down technical debt, but I’m also helping with features that help those core objects be smarter about the way they use other applications.

Matthew: Can we see something that you’ve worked on?

Jon: Almost everything I’ve done has been internal without a real UI component.

Matthew: Where do you work?

Jon: I work in my home office in an apartment in downtown Durham, NC. Sometimes I change it up and work from my porch.

Matthew: What can you see from your office window?

Jon: The old brickface and industrial windows across the road. On days where I’m working from my porch I get a better view of the downtown

Matthew: What did you do before working at Canonical?

Jon: I worked as a Python/Django developer at a company called MetaMetrics, that does some really neat things in education with natural language processing.

Matthew: How did you get into free software?

Jon: I was introduced to Linux in college as a better environment for coding in my CS classes. Since moving into web programming and Python, I think almost every tool I use has come from free software.

Matthew: What’s more important? Principle or pragmatism?

Jon: In concrete matters (like code), pragmatism. It’s no use to anyone if your principles only prevent you from doing things.

That said, principles are still important; when you opt for the pragmatic approach, your principles can still influence how
that plays out.

Matthew: Do you/have you contribute(d) to any free software projects?

Jon: Sadly, precious little. I have a patch in the Django project, and a couple of my own projects are available under a BSD license. One of the reasons I wanted to work on Launchpad was to do more with and for free software.

Matthew: Tell us something really cool about Launchpad that not enough people know about.

Jon: How completely well it supports the whole development lifecycle — I think a lot of people consider Launchpad just another code hosting service, and it’s so much more than that.

Matthew: Thanks Jon!

Read more
Matthew Revell

Meet Benji York

Benji YorkRecently, Benji York joined Canonical’s Launchpad team. I asked him a little about himself and his work.

Matthew: What do you do on the Launchpad team?

Benji: I work on the Foundations team. Right now I’m concentrating on the web service APIs and improving the OpenID integration.

Matthew: Can we see something that you’ve worked on?

Benji: There’s not much to see yet. Most of my changes thus far have been bug fixes or purely internal.

Matthew: Where do you work?

Benji: I work from my home in Virginia, USA.

Matthew: What can you see from your office window?

Benji: Just the shrubs that border my lawn. Once the weather cools off a bit I want to try working from the wifi-covered park/beach near my house.

Matthew: What did you do before working at Canonical?

Benji: I worked at Zope Corporation for about 6 years, most of that time as the team lead for their main product. Before that I worked in the automotive industry, mostly writing supply chain and manufacturing software.

Matthew: How did you get into free software?

Benji: I think the first piece of open source software I used to any degree was Python 1.5. Since then open source software has slowly taken over almost every niche of my computing world.

Matthew: What’s more important? Principle or pragmatism?

Benji: Pragmatism. If a thing doesn’t do what it needs to do, it’s not worth much.

However, I believe that principles are there to help us be pragmatic in a scope larger than the immediate moment. It’s not pragmatic in the long term to skimp on good design or testing just to get something out the door. Any good principal is grounded in pragmatism.

Matthew: Do you/have you contribute(d) to any free software projects?

Benji: When I was in college the console (NES, SNES, Genesis, etc.) emulation scene exploded and I had a side project that let people connect console controllers to their PC. I was approached by one of the Linux input device guys about contributing some of that code. That was my first open source contribution.

Since then I’ve made large and small contributions to dozens of open source projects. Most of those have been in the Zope ecosystem.

Lately I’ve put most of my open source hacking time into Manuel, a system for writing better tested documentation and better documented tests — it’s sort of a spiritual successor to Python’s doctest.

Matthew: Tell us something really cool about Launchpad that not enough people know about.

Benji: I’m sure most readers of this blog will know, but I didn’t know that the Launchpad and Bazaar integration is as nice as it is. Being able to branch from LP, make changes, mark the branch as fixing a particular bug, push the branch to LP, view the diffs online and then generate a merge proposal that will be automatically emailed to reviewers is very convenient.

Matthew: Is there anything in particular that you want to change in Launchpad?

Benji: I’m not familiar enough with LP yet to have strong feelings about changing it. Give it a few months and I’ll be plenty opinionated.

Read more
Matthew Revell

Meet Steve Kowalik

Steve Kowalik recently joined the Soyuz part of the Launchpad team at Canonical, so I asked him the, by now familiar, questions!

Matthew: What were you doing before you joined the Launchpad team?

Steve: I worked on the Ubuntu Mobile team for 2.5 years before switching to the Launchpad team to work on Soyuz.

Matthew: Can we see something that you’ve worked on from that time?

Steve: You sure can. The images and large parts of the integration work for Ubuntu Netbook Remix 9.04 and Ubuntu Netbook Edition 9.10 were done by me. I was also responsible for image builds for the three ARM sub-architectures for the 9.10 release.

Matthew: Where do you work?

Steve: I work from my apartment in Sydney, Australia.

Matthew: What can you see from your office window?

Steve: Another apartment block, so not the most glamorous of settings. From the other side of my apartment, I can see the local river. So it depends on the definition of office, if it’s my “office” or the balcony I work from on summer days.

Matthew: What did you do before working at Canonical?

Steve: I worked at a company in Burwood, NSW specializing in satellite communications, and worked on supporting and developing their in-house Debian-derived distribution.

Matthew: How did you get into free software?

Steve: I became interested in Linux when I was in high school, after I came across the term and researched it on the Internet. I started running it in 1999, and switched to Debian from Red Hat in 2000. I became a Debian Developer in 2001, and switched to Ubuntu in mid 2005.

Matthew: What’s more important? Principle or pragmatism?

Steve: I believe pragmatism is more important, as it allows people to use hard data to define the problem or solution space, and work within its boundaries.

Matthew: Do you/have you contribute(d) to any free software projects?

Steve: I’ve had a large number of patches and changes in Ubuntu, some in Debian, and I’ve written a Debian package checker from scratch, called Linda. I’ve been involved in free software for over ten years now.

Matthew: Tell us something really cool about Launchpad that not enough people know about.

Steve: You can now upload packages to PPAs and Ubuntu via SFTP! As an added bonus, I wrote the support for it in Launchpad.

Matthew: Is there anything in particular you plan to work on while you’re with Launchpad?

Steve: I plan on helping to make Soyuz more stable, more feature-ful and hopefully, faster.

Matthew: Okay, Kiko’s special question! You’re at your computer, you reach for your wallet: what are you most likely to be doing?

Steve: I’m either paying a bill, or buying something online.

Read more
Matthew Revell

Meet Jelmer Vernooij

Jelmer Vernooij recently joined the Launchpad team at Canonical, so I caught up with him to give him the usual Meet the developers interview.

Matthew: What do you do on the Launchpad team?

Jelmer: I work in the Soyuz team, where I hack on the build system, package management and archive publishing in Launchpad.

Matthew: Can we see something in Launchpad that you’ve worked on?

Jelmer: Come to think of it, there aren’t yet a lot of visible things that I have worked on in Soyuz so far. However, some of the work that I did on Bazaar is indirectly visible in Launchpad. For example, the Git, Mercurial and (some) Subversion code imports are done through the foreign branch plugins, of which I am the main developer.

Matthew: Where do you work?

Jelmer: I work from home, and at at the moment that’s in Utrecht, a city with about 300k inhabitants in the center of the Netherlands.

Matthew: What can you see from your office window?

Jelmer: I look out over a canal and a small park in front of my apartment. It’s looking nice at the moment, covered in snow.

Matthew What did you do before working at Canonical?

Jelmer: Before joining Canonical I was working on my bachelors degree in Computer Science at the University of Utrecht. I also did part-time work for hacking on Windows software, small device firmware as well various free software projects.

Matthew: How did you get into free software?

Jelmer: In high school I used to help maintain several FreeBSD and Linux servers with Samba. We had a complex script that kept the Samba database in sync with the master database of students (in MySQL) and since this script kept falling over, I decided to add support to Samba to allow it to access our database directly.

Unfortunately the abstractions for Samba’s user database API needed some work and one thing led to another. Before I knew it, I was deep down in Samba development — almost ten years ago now.

Matthew: What’s more important? Principle or pragmatism?

Jelmer: They both have their place. Principles are important, but pragmatism might be necessary to get closer to a point where you can conform to your principles.

I’m certainly a free software pragmatist; I’ll use non-free software as long as there are no viable free software alternatives. The only non-free packages left on my system are skype (there just isn’t anything free that works as well) and the flash plugin for Mozilla (gnash isn’t there yet).

Matthew: Do you/have you contribute(d) to any free software projects?

Jelmer: When I can and where time permits I fix my pet bugs myself, so I’ve contributed a lot of small patches to a variety of projects.

Aside from that there are a few projects I work on on a regular basis. Samba was the first project I worked on and (apart from Launchpad) it still remains the project I spend most of my time on. I seem to have a thing for trying to figure out proprietary protocols — I’m also a developer on the OpenChange (Microsoft Exchange/Outlook) and BitlBee (MSN/AIM/ICQ) projects.

A couple of years ago I became interested in distributed version control systems and started playing with Bazaar. Since Samba was maintained in Subversion I started working on the bzr-svn plugin and later the bzr-git plugin so I could work on Samba with Bazaar, but I’ve also contributed to other areas of Bazaar.

For most of the projects I’m active in I’m also involved in the packaging for Debian and Ubuntu.

Matthew: Tell us something really cool about Launchpad that not enough people know about.

Jelmer: The upstream report gives a nice overview of the state of Ubuntu and how well upstream projects are tracked in Launchpad.

Matthew: Is there one developer who has been an inspiration to you? If so, why?

Jelmer: There are quite a few developers that have inspired me over the years.

I much appreciate the encouragement, mentoring and patience from Andrew Bartlett, Andrew Tridgell and Jerry Carter when I first started contributing to Samba. Without them I probably wouldn’t be involved in free software as much as I am today.

Pair-programming with Robert Collins and John Arbash Meinel during the first few Bazaar sprints taught me a lot about extreme programming and got me hooked on test driven development.

While I occasionally get annoyed by what seems like nitpicking in code reviews for Bazaar, I also realize that it’s great to get so much high-quality feedback. It has definitely made me a better programmer.

Matthew: Okay, Kiko’s special question! You’re at your computer, you reach for your wallet: what are you most likely to be doing?

Jelmer: I’m probably reaching for my credit card to pay for something online, most likely CDs or books.

Matthew: Thanks Jelmer!

Read more