Archive for the ‘Meet the devs’ Category

Meet Rob Collins

Monday, September 20th, 2010

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.

Meet Jon Sackett

Tuesday, August 24th, 2010

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!

Meet Benji York

Thursday, July 29th, 2010

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.

Meet Steve Kowalik

Monday, June 21st, 2010

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.

Meet Jelmer Vernooij

Friday, February 19th, 2010

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!

Meet Francis Lacoste

Wednesday, October 28th, 2009

Francis LacosteFrancis Lacoste recently started on a six-month stint of running the Canonical Launchpad team. It seemed like a good time to find out a little more about him.

Matthew: How did you get into free software?

Francis: It was 1996, with a few friends at university, we started an online cinema magazine and) I developed the first generation of the content management system for the site. I was looking to develop this as a “free for non-commercial use” software. Since my Mac at the time kept crashing (Internet and Apple didn’t worked well), I looked into mklinux which was a Linux variant for Powermac. And then I stumbled upon the GNU Manifesto. This made so much sense to me, that I ditched the “free for non-commercial use” and became a GNU head.

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

Francis: What is more important, water or air? This is a false dichotomy. You need principles because otherwise your actions are meaningless, at the same time if your principles cannot be applied, cannot drive to action, then your principles are just wishful thinking. The beauty of this interrelation is that you can start anywhere and find the whole. Start at action, ask yourself what are the principles behind it and then you discover more actions you could make to be more effective. Or you can start at principles and then ask yourself how to apply them which will bring more insights as to some way to improve your principles.

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

Francis: Not much since joining Canonical (and having a kid). I still receive emails for perl (sic) modules I developed eons ago. I also worked for a few years on the LogReport project. I also met future-Canonical-colleague Martin Pool on the first implementation of what was to become the Apache Java project. Specifically, I updated the mod_jserv implementation to support the Java 1.1 Servlet specification.

Of course, now that Launchpad is open-source, I do daily contributions to open-source :-p (actually, that’s not even true as my responsibilities don’t leave me a lot of time to code — but contributions is more than just code).

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

Francis: Launchpad Answers is a really easy way to build community support around your project. (Full disclosure, that was the app I was responsible for when I joined the Launchpad project.)

Matthew: In the Principia Discordia, Malaclypse the Younger states that all things happen in fives. What five things are coming soon in Launchpad that you’re most excited about?

Francis: 1. In September, we defined a strategic vision for Launchpad around “bridging the gap between upstreams and the Ubuntu distribution”. This will help us to develop a much more focused application.

The current set of features related to the strategic focus you can expect are:

2. Forwarding of triaged bugs from Ubuntu to the upstream bug tracker.

3. Daily Ubuntu packages of upstream tip.

4. Sharing of translations between upstreams tip and the Ubuntu source packages.

5. Zero OOPS Policy. This means rooting out all time outs and errors.

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

Francis: Ordering books on amazon.ca. Although by now, I don’t need to reach for my wallet for this.

Matthew: Thanks Francis!

Photo of Francis Lacoste by Simon Law, CC-BY-SA, published on Flickr.

Meet Matthew Revell

Wednesday, October 21st, 2009

Matt Revell
Our intrepid communications expert, the venerable Matthew Revell, has been quite busy interviewing the Launchpad developers of late. I thought I’d turn the tables on him and ask a few questions!

So, here goes:

Julian: Mr Revell, I’ve heard your name pronounced in different ways. Can you please slay this dragon once and for all, is it RE-vell or re-VELL?

Matt: I pronounce it with the emphasis on the second syllable, to rhyme with
“bell”. But I’m not precious about it 🙂

Julian: Ok excellent, I’m glad we got that sorted out. So, tell us about your role in Launchpad. What are your day-to-day tasks, and do you have any special duties on top of that?

Matt: I work in the new Launchpad Strategy team, with Karl Fogel and Jonathan Lange. My main responsibility is communication with the people who use Launchpad: documentation, blogging, in-line help, the Launchpad tour, announcements, that sort of thing. So, you should speak to me (mrevell on Freenode) if you have ideas or suggestions for that sort of thing.

With Karl and Jonathan I’m also talking to lots of people who use Launchpad to find out how we can improve what we offer. So, at November’s Ubuntu Developer Summit in Dallas we’ll be organising lots of meetings to talk to people who work on Ubuntu to find out how Launchpad can better connect them with upstream projects.

Something else I’m interested in is usability and I’m now one of Launchpad’s trainee UI reviewers, which can be fun and daunting.

As for day-to-day tasks, most days are pretty different for me but I do have the fun job of weeding out the spam sent to our feedback@launchpad.net address each day. With such a huge volume of spam, even those few messages that slip through the filter still add up to a hundred or more a day.

Julian: Where do you work?

Matt: Right now, I’ve converted a corner of our dining room into an office and work there mostly. I live in the city of Wolverhampton, which is about 40 miles east of the England/Wales border and around 130 miles north-west of London. From time to time I pop up to an arts centre in the city, as they have free wifi in their cafe, for a change of scene.

We’re moving to a village a few miles from here soon, though.

Julian: What can you see from your office window? Having been to your office, I can appreciate you might want to make up an answer here.

Matt: Heh, I can see other houses in my street and that’s about it 🙂

Julian: What did you do before working at Canonical?

Matt: I did a similar job at an ISP/web host. I spent most of my time writing articles about how to set up a dedicated server’s DNS and that sort of thing.

Julian: Apparently you used to do stuff with LUG radio! Tell us more about that.

Matt: Yeah, I was a presenter on the LugRadio podcast from the first show until May 2007, when I left to do a politics show on a local station in Wolverhampton. Although the LugRadio podcast is now over, the LugRadio Live event continues and is taking place this Saturday in Wolverhampton.

Julian: How did you get into Free software?

Matt: I got my first computer when I was six. It was a Sinclair ZX81 and was a great introduction to computing. A couple of Sinclair Spectrums, a Commodore Amiga (many hours spent in writing bad code in Amos) and several Amstrad PCWs later, my dad got a PC. I had always enjoyed trying to get my machines to do something different so we ended up putting IBM’s OS/2 on it.

From there I ran a Fidonet BBS and then got into the internet, where free software was pretty hard to avoid 🙂 It wasn’t until 2001, though, that I first installed SuSe Linux on my PC, and from there went through various versions of Red Hat, with a Gentoo pit-stop, until I settled on Debian. When the Ubuntu Warty beta became available, I tried that out and have run Ubuntu since then.

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

Matt: I think the pragmatic answer is that it’s important to find a route between the two 🙂 I believe in Free software both as a matter of principle and because of the practical benefits it offers me.

I think the only non-Free software I use right now is Skype but that’s because it’s the only way to speak to certain people free of charge and I think that benefit outweighs the relatively minor risks of a VOIP app being proprietary. I also use SIP quite a bit but even then it’s through a hardware adapter so, while it’s an open standard, it’s actually using proprietary firmware.

More generally, I think it’s important to have principles that guide you but none of us is ever right all the time and so it’s important to re-think from time to time.

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

Matt: Yes, Launchpad 🙂 I used to do a lot for Ubuntu’s Fridge news site and the Ubuntu marketing team. I’ve also worked on some documentation for Bazaar.

My wife and I have two small children so any time I’m not doing paid work is rarely mine 🙂 I keep hoping I’ll find some time to get stuck into the Gnome Documentation Project and to take my Python skills beyond less-than-rudimentary; I’m not holding my breath, though.

Julian: There is a vicious rumour circulating that you like to talk like a Leprechaun when drunk. Can you confirm or deny this rumour?

Matt: I don’t have to be drunk.

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

Matt: Usually buying something I don’t have time to use. I bought a Bluetooth remote control a few weeks ago with intention of turning an old laptop into a Boxee machine. The remote is still in its packaging.

Thanks very much Matt! And now, I return you to your regularly scheduled programming.

Meet Deryck Hodge

Thursday, September 10th, 2009

Deryck Hodge and a hatRecently, Deryck Hodge took over from Bjorn Tillenius as the leader of Canonical’s Launchpad Bug Tracker team. That seemed like a good chance to catch up with Deryck. I’ll post an updated interview with Bjorn soon covering his new role as Launchpad Technical Architect.

Matthew: What do you do on the Launchpad team?

Deryck: I work on the bugs application in Launchpad and am also, as of two weeks ago, the bugs team lead.

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

Deryck: I’ve been doing Ajax work on the bug page mostly. All of the inline bug subscription work is by me, and the inline description editing as well.

Matthew: Where do you work?

Deryck: I’m in Dadeville, Alabama, a very small town no one has everheard of. It’s not far from Auburn, a university town in Alabama. It’s a nice rural community around Alabama’s largest man-made lake.

Matthew: What can you see from your office window?

Deryck: The short answer is my drive way. The longer, more accurate, answer is a Barbie go-kart and two little tyke
four wheelers (of which none of them run), a pile of old lumber, some cardboard to take to recyle, and my dog, lying under the steps of my porch. I’m hesistant to tell all this as it makes me so much of a Southern cliche here in the U.S.

Matthew: What did you do before working at Canonical?

Deryck: I worked for several media companies. I worked for a company in Las Vegas called Greenspun Media most recently. And before that, I worked for the Washington Post Company and Scripps. I worked on all manner of web apps, but I had particular experiences in social applications — Facebook Platform, Open Social, iPhone, etc. I was even Emmy nominated as a developer if you can believe it (along with two colleagues) for a project I did while at the Post.

Matthew: How did you get into free software?

Deryck: Initially, a friend of mine gave me a RedHat CD. He was a Samba dev and was constanly talking with me about FOSS, so I knew a bit just from conversations with him. I was interested in learning to code and really getting into the
personal freedom FOSS granted. I tried RedHat for a while, then left it. Then, I came back to Linux as I was learning more about coding, spent some time on Suse and then settled on Ubuntu early on after it appeared.

Really, my interest in coding and FOSS are intertwined. I wouldn’t have learned to code had I not had access to free software and friends in FOSS who mentored me.

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

Deryck: I’m pragmatic in my pursuit of principal. 🙂 Seriously, though, principal drives everything for me, but I think you have to be pragmatic in achieving the goals that are derived from your principals. Some things are possible now, some in the future, and I try to be realistic about what can be achieved in the pursuit of my principals.

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

Deryck: I have been a Samba Team member for a little over 5 years now. I don’t work on Samba itself, but I have done a fair amount of work in supporting the project through maintaining its web sites, web apps, and related servers. I have some
minor, older contributions to Samba itself for SWAT and a couple of the VFS modules. I also have done some small contributions to Django in the past. I wish I could get back to helping on Django more. It’s one of those projects that’s just close to my heart.

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

Deryck: It’s open source! Okay, so maybe some people have heard of that, but we should say it again. Launchpad is open source! Come hack on it with us!

Matthew: One of your favourite bands is Marillion. They’re about to release a stripped-back accoustic album. Are you ever tempted to take a stripped-back, simpler, almost “accoustic” approach to your code?

Deryck: I would love to be simpler, more “accoustic” as you say. But I wonder if my code isn’t more like Marillion’s Brave — a bit winding with some personal digressions, but (hopefully) a satisfying piece of work all the same.

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

Deryck: I’m addicted to buying online. I’m an easy sell for digital work — music, books, art. Anything I can carry on my phone, ebook reader, or laptop. I’m a bit of a virtual worlds addict, too. So I probably spend too much on Second Life. I’m the poster boy for funding the web via micro payments. 🙂

Matthew: Thanks Deryck!

Meet Gavin Panella

Tuesday, April 7th, 2009

We’re back on the Meet the devs trail and this time we’re heading for Launchpad’s most easterly UK-based developer! Let’s meet Gavin Panella.

Matthew: What do you do on the Launchpad team?

Gavin: I work on the Bugs team, adding useful new features and improving existing features in the bug tracker.

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

Gavin: I’ve been working with Graham and Björn on the bug activity log recently, which also included a lot of behind-the-scenes work to sort out bug notification emails. We have a long term goal to drive notifications from the activity log, but until recently the code was too fragmented to even contemplate that. There are two obvious changes that a Launchpad user will notice from our work so far: a far more
detailed bug activity log, and the interleaving of bug activity with comments on each bug page.

Matthew: Where do you work?

Gavin: In Norwich, UK, about a 5 minute walk from from the centre. I like it here, but it’s a little too remote; there is an airport, Norwich International, but it only seems to fly to Schipol, Alicante, and the rigs.

Matthew: What can you see from your office window?

Gavin: Another house and a car park. Not picturesque at all. But of course I’m always looking at my monitor, working on Launchpad 🙂

Matthew: What did you do before working at Canonical?

Gavin: I was self-employed in Luxembourg for a few years, doing consulting with FOSS, and worked (very indirectly) for Sir Chunky “Beard” Sweater before that at Virgin Money, working on database and web apps, and some system administration.

Matthew: How did you get into free software?

Gavin: I bought my first PC when I started uni, and spent half of the first term reinstalling Windows again and again, the excitement of which faded rapidly. Someone gave me a CDR of Red Hat, 4.2 I think, which was the first I’d heard of an alternative to DOS and Windows for PCs. Unfortunately the CD was broken, but I asked around and eventually someone (thank you, David Mansell!) took pity and helped me get Debian running.

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

Gavin: In the past I tended to get incredibly hot under the collar about trying to do things The Right Way, but working on the Launchpad team has helped me learn to be more pragmatic.

But it’s not really either/or. Principles help being pragmatic work long-term, and actually doing things helps inform your principles.

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

Gavin: Not many, and not much; children take up most of my non-work time. I have contributed a little to Bazaar, and I’ve published some of my own projects in the past. Most recently I’ve contributed stuff to galleryuploader, python-macports, and storm on Launchpad.

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

Gavin: The API. Early adopters are using it now, but when it gets out of beta I think it will be huge, but in ways I can’t imagine yet. That’s the coolest thing; that users can get creative with Launchpad.

Matthew: Your son is named Marlow. Have you made in any Faustian pacts in your time?

Gavin: Three or four; good looks, wit, and intelligence, obviously. However, when it’s discovered that my soul is mortgaged out to multiple lenders, there will be hell to pay.

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

Gavin: Lending my credit card to my wife. Yep.

Matthew: Thanks Gavin!

Meet Jeroen Vermeulen

Friday, February 27th, 2009

Jeroen Vermeulen gives us our first Asian stop-off in the Meet the devs series.

Matthew: What do you do on the Launchpad team?

Jeroen: I work on the Translations application. That’s where we translate software (including all of Ubuntu’s “main” section!) from English into just about any language I’ve ever heard of. Many people still know it by its original name, Rosetta.

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

Jeroen: It’s a funny thing: that question makes me realize how little really “visible” stuff I’ve written. I’ve been working with the database a lot and of course fixed bugs. You could say there’s mostly things that you can’t see in Launchpad that I worked on.

Recently though I’ve been working on something you should see show up in more places soon: the inline text editor. If you have javascript enabled in your browser, you can already use the existing version when you edit a bug title. No need to click through to an editing form: you just click the “edit” icon and the title becomes editable in-place.

The version I’ve been working on together with Danilo Šegan (I found out how to type that weird letter by accident: -c S) also works for multi-line text. And of course it resizes to fit your text as you type. I had hours of fun resizing my browser window and seeing that it reacted properly.

It’s been both fun and a nuisance, since JavaScript lets you do very powerful stuff very quickly… and then it lets you spend days debugging the silliest little things. It’s a far cry from the C++ work I’ve been doing in my spare time. There, all your weak typing happens at compile time. At run time it’s all strong typing with a tiny bit of polymorphism. So it’s usually the compiler that spots the bugs, not your tests per se. As the language matured we grew habits and practices to reinforce this. Nowadays I barely even use polymorphism anymore in C++: only in a handful of isolated patterns, and more often than not purely at compile time. As my friend Kirit Sælensminde puts it, it’s great to have a compiler as a theorem prover for your code’s correctness!

Matthew: Where do you work?

Jeroen: Mostly in Bangkok, Thailand. I like to poke fun at my colleagues in places that are 40°C colder.

Matthew: What can you see from your office window?

Jeroen: One of the reasons why I picked the place: some green, unused land! It’s got grass, trees, birds, and not a whole lot of noise. That’s pretty rare in this city. What there is is usually hidden behind walls.

Right under my window there’s a dirt road with a volleyball net strung across it. Sometimes the children have to stop playing and lift the net to let a car pass underneath.

Matthew: What did you do before working at Canonical?

Jeroen: I worked for a Thai government department set up to promote open-source software in the country. It was a good chance to learn, both about technology and about cultures.

Nothing shows how the two can interact as well as the questions I got at trade shows. For instance, many people believed that software you give away cannot possibly have any value. To those people I had to explain how the software made money for the companies behind them, or they just wouldn’t consider using it. This in a country where pirated proprietary software is the norm, and price-competitive with free downloads.

Other people thought that “open source” and “linux” were the same thing, and were very sceptical when you showed them free software running on Windows. Those who do work on free software, and we have some very enthusiastic people doing that, tend to be a bit too shy for the process. They are often reluctant to badger authors about accepting patches or translations. Translating Ubuntu in Launchpad is a great way for them to get around that.

Matthew: How did you get into free software?

Jeroen: Mainly by not staying out of it. When I started programming for fun in the early 1980s, the only reasons my friends and I ever saw not to share our code were embarrassment (if the code was ugly) or fear of someone passing it off as their own (if the code was pretty). But most of the credit goes to some great people I met in and after university, and a company called Cistron that got me working with 100% free software professionally.

I did work a few jobs involving proprietary software, and some of those left a very bad taste in my mouth. At Cistron we sometimes had to patch the software we used, because it wasn’t always mature. But at least we could, and we’d be helping the software mature in the process. We didn’t need to ask for permission, or wait for someone who already had our money to decide whether our problem was a priority. In the proprietary world you always had to beg or wait for permission to solve some problem or other.

Surprisingly often, it’s easier and cheaper to deal with a problem yourself than to go through the process of getting proprietary software licenses for it. That’s even before you start handing over money. If you do make it past that, you come to the stage where you start seeing the little gaps between what you bought and what you needed. And then you end up coding your own in-house glue anyway.

There was a lot of the code as well, under the glitzy surface. Oh, the code! Some examples I’ve seen:

  • A button in a user interface switches the application between two modes. The button changes its label and its colour between modes. The business logic decides which mode it’s in by looking up the button’s current colour. Yes, you read that right. This is in a large-scale financial application. The code was then given to cheaper foreign engineers for maintenance, despite all the comments, identifiers etc. being in the local language and unreadable to the engineers. The maintenance was necessary because the application relied on some proprietary commercial infrastructure that was being end-of-lifed by its vendor.
  • A database table has three consecutive rows for every logical item it describes. A loop searches them linearly instead of using SQL’s WHERE clause. Instead of using a meaningful marker, the loop computes what row #i represents by taking i % 3. The switch statement has cases for 0, 1, 2, and “default.” It’s been a while but I seem to remember there was a case for 3 as well.
  • A database object cache looks if the object you requested is already in memory. It does so by taking the numeric id for the object you want and comparing it to each of the cached objects’ addresses. It never finds a match because in-memory addresses simply have nothing to do with identifiers in the database. The problem goes unnoticed for years (causing memory leaks and data loss) because the compiler, also proprietary, takes until version 5.0 to start noticing that this is a very basic type error.

It’s not like we don’t make those mistakes in free software. But we let people catch us at it, and it’s better for everyone. In fact I’m convinced that projects like Linux and MySQL became so popular in part because there were enough things for beginning contributors to fix.

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

Jeroen: You’re eating soup. The bowl breaks. (Not likely, but work with me here). Now tell me which was more important: the bowl or the soup?

I know a lot of people get very worked up about this. But principle and pragmatism are on a two-way street. Going one way, principle is where you look when deciding what you should do. Or, and this is usually what gets people worked up, what everyone should do. But going the other way, you look at pragmatic reality and discern all sorts of principles. That, I think, is the real attractor to the whole debate &mash; free software has basically revived classical philosophy. What you learn there, what catches your imagination, what patterns you see and choose to explore, is all very personal.

There are people like Eric Raymond who will say that everyone just does what’s in their best interest, and nothing else will decide the course of events. The big epiphany they take from the free/open-source development is game theory and how it applies to markets. Then there are people like Richard Stallman who see how the given incentives in the market pit us against each other, and decide that it’s a bad thing. They derive a field-specific model of morality. Personally I’m fascinated by both.

But enough weaseling: I’m more on the “principle” side, because I don’t think principles are inherently non-practical. One of the smartest people I’ve known once said that morality evolves. It grows and adapts to help us survive as a group, just like perspective vision or opposable thumbs. Software licensing is at a point where different people try different things and we’re seeing what works. If I “sell” you software, it has to be like a piece of property, except copying is free and unlimited. So should we pretend that the program is still “my property” after the sale, only I’m also letting you use it? Or is it now yours, except I can sell it to others as well? It’s a lot like the old particle-or-wave debate about the nature of light.

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

Jeroen: In all sorts of ways, usually to scratch an itch: a patch here, some documentation there. My main project is libpqxx, the C++ client API to PostgreSQL. I worked with the old API back in 2000, and it was as if the right approach just jumped at me, shouting “code me, code me!” I get a lot of positive feedback about how it blends in with the language and its standard library.

Sometimes you can do more good by documenting than by coding. We engineers are all the same: once you understand something, it’s “obvious” and suddenly you’re unable to explain it. I thought D-Bus was a great development when I first saw it, but the documentation was thin on concepts and too detailed. Since I had to figure out the concepts anyway, I made a list and pretty soon I had a decent introduction written up. It even sparked some debate between developers about unresolved design questions. Funny how a contribution like that is easier to make when you’re new to the project. Much the same happened with fcgi, a nice “persistent CGI handler” similar to FastCGI but much simpler.

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

Jeroen: My personal favourite is a very basic one that we’ve had for ages: because Launchpad mirrors subversion and CVS repositories, you can play with the code of some project and still have full revision control.

When I wanted to mess around with a piece of code I got from the internet, I used to download a tarball, unpack, work on the code, then diff against a freshly-unpacked copy. Or I’d check out the repository and never commit. But now I can just branch off Launchpad’s copy of the source tree, and commit changes locally to my own branch.

Matthew: What’s your favourite TLA?

Jeroen: Hard one, since I have over 23,000 to choose from! I keep them here.

It started out as a joke about TLA-space pollution, but some people actually use it as a reference. I do, too.

What’s my favourite TLA? I like the name of the list itself, which is a meta-TLA. GTF stands for GPL’ed TLA FAQ. If you send me a new entry you become part of the GTF Contributor Program or GCP, and you get a little logo you can show on your home page.

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

Jeroen:Probably checking for a 10-Baht coin so I can get a motorcycle ride back to the main road. The dogs get a little frisky sometimes, so the wild ride may be marginally safer. The coin looks just like a worn 2-euro coin at about 1/10th the price. They’re similar enough that many coin slot machines had to be recalibrated.

Matthew: Thanks Jeroen!