Colin Guthrie Interview

Hello and welcome to LinuxCrazy Podcasts. Today I am pleased to introduce to all of you, Colin Guthrie. Colin's Open Source involvement includes, Mandriva Linux, PulseAudio, and Trac.

Colin welcome to the Podcast.

  1. What has your journey been like with Linux, and how did it start?
  2. I was first introduced to linux at University (back in '97). We used an early version of Redhat on the machines in the computer labs. I'm of the generation that was used to typing in BASIC programs to play on my ZX Spectrum, and grew up with the DOS command line and green screen PCs. So I'm very familiar with the command line and back in 97 this was very much needed on Linux. From there I generally fiddled about with Linux until I started my own company in 2000. We used Mandrake (as it was called then) as it seemed like a more user friendly version of Redhat. It worked very well for us even if the company did fail! Since then I've continued to use Linux and Mandriva, as it is now known, is still my distribution of choice!

  3. What motivated you to become involved in Open Source Projects?
  4. The ideology appeals to me. Most of my general circle of friends are non technical so FOSS projects allow me to scratch my itch quite easily and as the communities are online, not knowing people nearby or in my usual group of friends is no impediment to getting involved. I also learned a great deal from people over the years and like to give something back.

  5. What aspects of Mandriva do you feel the developers and maintainers have got right?
  6. We're not the biggest distro so that can help in terms of politics etc. Just like working for a small company rather than a multinational gives more freedom in your decisions so does working with Mandriva. I've become the defacto maintainer for several packages/sub systems in Mandriva and as a result I've built up a position of trust and authority even tho' I'm just a contributor - i.e. not on the payroll. Other contributors are similarly involved with key subsystems and the group of people involved are all a really good bunch. There are not many contributors or developer employees that I don't know all that well (even if I've not met most of them!!)

  7. What is it about Mandriva you would like to see improved?
  8. It would be nice to have a pet millionaire who would spend money on marketing and development conferences.... but other than that I'd like to see more community involvement and more marketing. We do try to get new people involved and most people find the community both welcoming and rewarding. With marketing it's always very hard. As a company Mandriva has to focus on OEM deals and other direct-revenue ventures, but for the contributors like me, it's usually the public profile that matters more. And from a spending perspective, it's very hard to see a ROI for marketing spend. So it's tricky, but I guess more community-led marketing and awareness would be the thing I'd like to see more of. For me personally, it would be great if there was more money available to fund contributors to attend relevant conferences - this is marketing in a way, but for example I'd really loved to have attended Guadec/Akademy last year but couldn't get the funds together.... so the pet millionaire would be really nice :p

  9. What are some of the Projects within Mandriva that you enjoy contributing to?
  10. Well my personal quest is to improve sound on Linux. For me PulseAudio is a big part of that. For PA to be a success, it needs to be integrated well into the environment and that means having various tools and utilities that support it. I tend to sit on the fence between the Gnome and KDE camps using a healthy mix of apps from the two projects (which Mandriva makes very easy with nice themes shared and polished on both DEs). Gnome has very much embraced PA but sadly KDE has not which can lead to lots of configuration problems. Over the last six months I've taken it upon myself to integrate PA into Phonon (KDE's multimedia framework) and KMix (it's sound mixer application). This has been very much welcomed. The work I've done is fairly convoluted but it's not really that hard - it just takes someone to get the ball rolling... that's what I'm doing and I hope others will join in and improve the foundations I'm laying there.

  11. Could you give me an overview of Pulseaudio?
  12. Sure. PulseAudio is a userspace sound framework. It handles sound mixing (e.g. multiple applications playing different sounds simultaneously) but also handles various other aspects of a modern desktop linux system, namely tracking which user is logged in and when they are allowed access to the sound hardware; dealing with Bluetooth and Apple Airtunes audio devices (the latter being something that I introduced myself); and dealing with running remote X11 applications over SSH (where the display and the sound are available locally even if the application is run from miles away!). PulseAudio also deals with driving the sound hardware in a more efficient way than standard audio systems allowing for power savings on mobile platforms. IIRC PulseAudio now has 100% usage on the linux SmartPhone market (where bluetooth and powersavings are two important aspects).

    With it's companion tools, it also provides a central configuration and control point for all applications. I've very much of the opinion that having different, complex sound configuration settings in different applications (hidden under various different menus and dialogs) is a terrible thing for HCI and accessibility. Having a single application you go to to control all your sounds and to configure your preferred devices is IMO an essential part of a modern desktop.
  13. Describe the relationship between Alsa and Pulseaudio?
  14. Well it depends what you mean by ALSA!! This is often something people don't understand but ALSA is in two very separate parts - the Kernel Drivers and the Userspace access library. When ALSA was introduced, it was recognised that using ioctls and other techniques applicable to the legacy OSS sound system would just be too unwieldy for developers and it was decided to write an interface library that took care of this for you. I'm not aware of any ALSA clients that talk to the kernel directly, they all go through libasound. Some people (especially the few remaining OSS fanatics) will criticize "ALSA" for it's complexity, but really they are referring to the userspace library rather than the kernel side. The userspace layer has evolved over time and arguably it has become pretty complex (I'm by no means an alsa programmer!) but the kernel side remains very clean. Regardless of all this, how do PA and ALSA interact? Well PA very much still uses the ALSA drivers and userspace library. In fact PA is arguably one of the most advanced ALSA clients, taking advantage of various new technologies, including the timer based scheduling where we disable the interrupt for the sound hardware and use the kernel timers instead. This technique has exposed many bugs in several ALSA drivers due to no one really using it before. This is often blamed externally as "PulseAudio bugs" but really it's just that we were the first to try and use ALSA in this way. Things are better now but there is still a lot of ignorance out there regarding PA and it's reputation has suffered as a result.

    So libasound is a generic audio API. It could in theory be tailored to interface with other systems, not just the ALSA kernel drivers. As a result we provide a PulseAudio plugin for alsa that allows any alsa client to output sound to the PA server via the ALSA API. This is very important to ensure that pulseaudio is adopted as it means that most applications will work fine if pulseaudio is plugged into the stack. Of course the complexity of the ALSA API means that some applications use of ALSA is somewhat bizarre and does cause breakage, but over time this will be fixed and the apps themselves will be better for it too!

  15. What is the process for someone to configure Pulseaudio?
  16. They shouldn't!!!! Plugging PulseAudio into a linux system is a very involved process. It requires integrating it into the system so that it starts appropriately and that the defaults are configured to use it. Several applications and audio libraries also need to ensure that they are configured for use with PA by default. Overall it's not something I'd expect a user to have to deal with. This is why we have distros! it is the job of the distro to configure PA for you and ensure that their packaging allows it to be used most efficiently. The user should only have to deal with one application that allows them to set things up the way they want - Digital v Analog output, Mic vs. Line in recording etc. and that's it! Distributions who integrate PA badly in the past have also damaged PA's reputation unfairly. Of course there *are* bugs in PA, but we're not *always* to blame for sound problems :p

  17. Will there come a time when sound on Linux will "just work"?
  18. Absolutely and we're getting closer every day. Sadly hardware vendors will find a way to break things, but for me at least I'm pretty close to getting the perfect audio stack. My bluetooth wifi works great, if I answer a skype call and open my Bluetooth headset the call is moved over to it automatically, my airtunes device works (not greatly and I've only myself to blame here - I'm working on it!) too and I can run apps on other machines on my network and get sound from them locally. If I want to test other user accounts and switch users, my user is blocked from sound while the other user is active and things just work again once I've logged out of that user.... for me things are very close to "Just Working". It's not universal sadly and we still need to work on the drivers that don't support glitch-free and the bugs in PA itself.

  19. Explain the configuration program Drake.
  20. Mandriva comes with the Mandriva Control Center or drakconf as it is known. The name comes from the Mandrake days, but it provides a central place to configure your computer. Think of it like the Control Panel in Windows or the System Pane in OSX. While Gnome and KDE provide tools that go some of the way to doing what Drakconf does, they are still quite far behind. Users of Mandriva really like the flexibility this interface gives even novice users. It really is one of Mandrivas advantages over other distros.

  21. What is your programming background?
  22. I studied Comp Sci at Uni and learned C then. Since then I've developed a lot of things in C++ and also scripting languages like PHP and Python. It all started typing in lots of boring lines of BASIC from computer magazines just to watch a crappy animation! I tend to find that once you know how to program the language itself is not really a problem - the syntax changes but the concepts and techniques generally remain the same. Most of the time it then boils down to knowing the libraries and APIs of the various projects rather than a given language per-se. I know the PHP APIs pretty well so for anything "scripty" it's always my first choice even if it's not always an obvious one!

  23. Do you get much time to program and what language do you enjoy using?
  24. Generally C or C++ or PHP. My day job is mostly PHP and SQL so in that sense I'm never too far away from programming, but I do like to vary things in my "free" time with more structured languages just to keep me on my toes!

  25. Which open source programs would you like to see developed?
  26. Well PulseAudio obviously and the tools that go with it. Also I think that semantic search is very important so anything in that field is essential. I really like Spotlight on OSX and having a solid system on Linux that can compete with that is very much needed. There is too much diversity in this field with various projects that purport to deal with it - beagle, kat, tracker etc. etc. I really just want to get to the stage where there is one universal system that all desktops (Gnome, KDE etc.) agree on and embrace. I hope this will result from the Nepomuk project but time will tell. In a related field, I also want to see more integration with online services like Facebook and Flickr etc. whereby my Photo management app can see both my local photos and remote once as part of my "Photos" collection. I hope that the Akonadi system provides this although it's very much a KDE only app... one day perhaps it will be adopted more widely. After that I just want everything to be network transparent. I want a wireless digital photoframe in my house to be able to access the same Facebook account that my desktop does to display me my friend photos, I want my music to work on my Hifi, my laptop and my mp3 player... everything should sync and everything should work with everything else. Interoperability all the way!!

  27. What resources have you found most helpful when troubleshooting within Linux?
  28. Mostly people. IRC channels and mailing lists are great ways to get support from people who know more than you and have something they are willing to pass on. That's why I help other people too - it's a payback - "do as you would be done by" as they say!

  29. What would be your dream job?
  30. Well I work for myself with a small team of colleagues whom I am proud to call friends and it doesn't get much better than that. We could do with more money and less work to actually do, but such is life. If I wasn't so involved with that I would no doubt be working on Linux Audio helping to drive integration efforts.

  31. What can users do to improve Mandriva, or Pulseaudio for that matter?
  32. Good bug reports and acceptance that bugs exist! Everything has bugs and with Free software the only way to really see it improve is to give quality feedback. Not everyone is able to do that and if so they should ask friends to help them learn or simply do it for them. Conversely a lot of people have an expectation that you must supply them with a perfect system at no cost, and this attitude has to be left at the door if you want to come in and play! Lower your expectations and get involved with the process that would see the product in question meet those higher exceptions you started with! Doing so is both educational and rewarding!

  33. What is the biggest hurdle in getting users and developers working more closely?
  34. Good question. I think it can relate partly to attitudes. There are many different types of people in the world. Some are quiet and have brilliant ideas, others shout lots but actually don't really have anything to say! Then there is everything in between. I tend not to judge people and try and get along with everyone, but every now and then you come across some one with an attitude that just really rubs you up the wrong way. This can happen so it's important to deal with such situations in a rational way! So don't pre-judge. Try to be polite and respectful. And remember that if you get a curt reply from someone it doesn't mean they are not interested or don't care - they may be someone who has to reply to lots of emails and requests and as such don't always have time for the pleasentries. Don't take these kind of things personally. I've certainly had my first impressions of people happily proven wrong on more than one occasion. Oh and Pizza and Beer!

  35. What are the specs of your current boxes?
  36. Well my main machine is a 3 year old Dell laptop. Core 2 Duo 2200 or something. I've got a server at home which is an aging Athlon thingy and a new Media centre which is a four-core intel thingmygig. It's strange but I used to know hardware specs inside out but these days I just don't keep up with hardware trends. My laptop is still going strong and still a pretty good machine despite being 3 yrs old. I'm pretty seriously considering treating it to a SSD upgrade and using it for another few years!

  37. Describe your home network?
  38. Main server with ~1Tb raid 1 storage + 500Gb scratch for recording TV. MythTV for recording and scheduling. Gig LAN + 802.11n wireless (different subnets and security policies). Network booting (NFS root) media centre PC (so no HD - silent!! and I could clone it without any hassle if I wanted more in different rooms - just need hardware!). Run XBMC and MythFrontend on the media centre. That's about it really. I've got a few audio devices (airtunes and a custom little board running pulseaudio via NFS root) that I keep meaning to wire up properly. Kinda want to put some PIRs in too so that sound could follow me wherever I go in the house automatically.... not go round to that yet tho' :p

  39. What gives you the most enjoyment within the Open Source community.
  40. For me it's when someone you don't know sends you an email of finds you on IRC just to say "thanks" for something you've done. I don't do things for recognition or praise, but it's nice when someone makes just a small effort to thank you. That and the people involved and the prospects of what FOSS can deliver to people all around the world, especially those who cannot afford commercial software - there is still the cost of hardware but if we can take the $$$ out of the 0's and 1's then it's a great start!