Wednesday, 12 January 2011

How to contribute to NetworkManager (or nm-applet)

Since NetworkManager (and all of the attached parts; VPN plugins, clients, backend...) is such a complex system, we're always looking for people to help out in whichever way they can.

One of the things I'd like to focus on this cycle (even if this announcement should have come long ago), is test cases and generally getting a good grasp of what works and what doesn't with NM, the clients, or plugins. Test cases are useful for us to know that things are performing as they should and even more important where development snapshots are involved, given the "in flux" nature of the code we're providing users. It's not that it's unstable code really (in fact, it's clearly not... 0.8 is now a stable branch that got tons of bug fixes, and seems rock solid if I believe the type and number of reports we get). Still, I'm interested to know about failures. That's partly why I wrote a number of test cases on the Desktop Testing Team tracker. There's a need for more though, and that's where the help of the community comes in.

If you know of some things that are important to you in NetworkManager, nm-applet, or the VPN plugins, write test cases for them! It will help everyone make sure those remain working, iron out the small annoying bugs, and just improve on the overall usefulness of NetworkManager.

Obviously, test cases and testing isn't the only place you can help. Are you annoyed at some little thing that works, but you'd love for it to go one step further in providing an amazing experience? Then we need you.

It's also very much the way I started contributing to Ubuntu, dealing with small annoyances which would make my life easier in using the desktop every day... And it was as simple and providing support for saving group or user password for the VPNC plugin.

I can already think of a few more of these small things, such as hiding the SIM PIN when prompted for it (since it's a password)...

I've started identifying small (but important!) bugs like this in Launchpad. As for other projects, look for the 'bitesize' tag. Here's an example.
They may not all be tagged bitesize, but if there's something that almost works for you and you want to take a look at fixing it, jump in! We'll all be glad you did. The same principle applies to many of the bugs marked as Wishlist, which are good ideas, maybe some need more discussion upstream, but they are all ready to be worked on (and have varying degrees of difficulty).

If you're looking to work on NM, the first thing you may want to look at is the wiki at http://live.gnome.org/NetworkManager. It's generally also a good idea to subscribe to the mailing list (see the previous link), so you can discuss changes with the community at large. Finally, there's truly no place more useful than the DebuggingTips page even for non-technical users. It's where you can poke NetworkManager to tell you exactly what goes on. In. Details.

In the cases where changes can be reasonably integrated into Ubuntu and/or Debian directly, feel free to submit merge requests and patches. This includes helping out fixing issues in the growing indicator patch for the applet :)

Finally if you're just curious and want to help out, you should know that there is a lot of work being done at the moment to simplify NM in various ways; all of which to in time become version 0.9. If you want to know more about the plans for NM 0.9, it's here: http://live.gnome.org/NetworkManager/ApiSimplify

When I'm connected I'm always happy to answer questions and help out in any way possible, both on NM and general desktop-ish stuff. You can reach me on #ubuntu-desktop or #nm on Freenode. I'm cyphermox.

Wednesday, 5 January 2011

Natty nm-applet improvements

As those running Natty have undoubtedly noticed (and it has been noted on the Ayatana mailing list), we currently have a stop-gap measure (until we get connman and indicator-network magic!) for an indicator for network connections being nm-applet with a big ugly patch to make it work as an indicator.

In light of the discussion I'm referring to above, as well as a number of bugs that have been reported against network-manager-applet, I've been working on fixing these issues, including making the animations work again, re-adding icons for wireless signal strength and fixing the icons when connected to VPNs.

Most of this was coming from the fact that icons could not be dynamically composited by nm-applet when using libappindicator as it used to be doing. However, it's just about ready to all be live again:


All I'm waiting for is review of a merge request to provide the new icons needed. :)

Now, there is still a number of things that need to be fixed in the indicator patch and in the look and feel of nm-applet as an indicator. While this is still meant to remain a bridge until we can switch to connman and indicator-network, I'm looking forward to getting new ideas and to know about the issues you see in nm-applet's look right now. Jump in on the ayatana list and give us your thoughts!

Sunday, 12 December 2010

Supporting the Harmony 300 on Linux

Today, I bought a Logitech Harmony 300 universal remote. At about 60$ CAD, it's really a bargain, and despite it's limited feature set compared to other Harmony remotes (I also have the Harmony 670, which has selectable "tasks"), it fits the use I want to make of it.

I had to use Windows. There is just no way this could be done under Linux, due to a variety of factors including lack of support in my favorite project, Concordance, and Logitech's choice to use a SilverLight application to handle configuration and authentication.

I'm pretty sad of the choices made by Logitech on this. Where all they had been doing to support a Linux community around their devices was to keep an old website working (and to this day, it's still working and fine for a large majority of the Harmony devices, usable with Concordance to configure remotes such as the 525, the 700, the 900, etc.), they chose to support this model with the new myharmony.com website which doesn't appear to expose the same level of control, and definitely complicates use in Linux. I don't think keeping the same old methods would have really meant such an investment to them, and I doubt exposing the possibility of downloading the same old EzHex files for programming would have been a cause for concern for intellectual property rights re. other manufacturers and systems designs.

Lack of understanding and basic support of Linux users by large corporations such as Logitech remains, I think, one of the key reasons why Linux has yet to reach and "stick" to a majority of everyday users. I believe that omitting to give alternative options to users who choose to work with a different operating system is not only causing harm to the Linux community, but also causing Logitech (just as an example, other companies are in the same boat) to lose potential customers. After all, wouldn't it be normal for the standard target users for home automation and function aggregation devices to be pretty close to the same group of "early adopters" as currently targetted by the Linux ecosystem?

Please, Logitech, get your act together. I've contacted you on this subject again. I'm sure others have as well. I think we understand you might not want to bother, but at least give us enough information so that we could still send you money through buying your hardware, but do our own support if you don't want to take care of it. The Concordance community will be happy, and I'm certain other groups of users of your hardware will, too. I doubt this always means going as far as sharing system schematics, full hardware specs or whatnot. It just means letting us know what we need to know to use the devices to their full potential.

Logitech and others currently have a great opportunity in doing a stellar job at fostering communities of users based around their products, which would not only serve as to possibly have more users, but also as a great example on how a company can succeed by leveraging not just the buying power of users, but also their willingness to support each other directly. Am I dreaming or at the very least, this could me relatively fewer expenses on support, with very little effort in sharing some information?

As for current solutions to accessing the website, Moonlight could have been a possibility, but under Ubuntu Natty I didn't even have that choice. I think the website bailed out just because I run Firefox 4.

Tuesday, 12 October 2010

Booting to ISO images from a USB key

I'm pretty sure this has been done before (I recall seeing a blog post about it... if you're the one who posted on Planet Ubuntu with a similar howto, let me know as I want to talk to you, at least to say thanks), but here it is anyway:

A couple of days ago I wrote this quick script to generate a roughly correct grub.cfg from the contents of a directory filled with .iso files. The goal: generate a USB bootable key that runs GRUB and allows you to choose which ISO to boot. It could be Ubuntu desktop, netbook, etc, doesn't matter, as long as you have enough room on the key.

This is done by leveraging the loopback grub command and the isoscan parameter. But first, setting it up...

You'll need (to):

  • one free USB key, formatted to vfat (mkfs.vfat -F 32 /dev/sdX1) the more space the better
  • create a directory called "iso" on it
  • install grub on it:
    grub-install --root-directory=/media/MOUNTPOINT /dev/sdX
    • this will create the boot/grub directories and install everything grub needs
  • copy iso files to the iso/ directory
  • run update-grub.py (available in bzr branch: lp:~mathieu-tl/+junk/bootable-iso-usb) from the key's mountpoint 
    • Careful: it's only quickly tested, and overwrites boot/grub/grub.cfg from the current working directory.
Sorry for the unimaginative naming of the script.

In short, this script attempts to guess what kind of distribution is in the ISO file. I've tested desktop and alternate with success, both seem to boot and properly get you to an install (or for desktop, "maybe-ubiquity", which means you'll get a prompt for whether you want to run the live session or just ubiquity to install). All this needed was to make use of the iso naming scheme and more importantly of the contents of the ISO files, as read by isoinfo (from the genisoimage package).

Even if it never ends up being of any use, it was at least a fun little thing to write.

Tuesday, 28 September 2010

Videotron Huawei E1381 USB 3G dongle

I've been fortunate enough today to be lended a Huawei E1381 3G USB modem. I'm happy to report all I had to do was to plug it in to my Aspire One running Maverick UNE and confirm it was immediately recognized and available in NetworkManager.

What's more, Videotron's new 3G offering is already available from the mobile-broadband-provider-info package, so you can already plug in such a key, create a new 3G connection in NM and select Videotron as the ISP to quickly get online!

Needless to say, this is pretty good news knowing the current developments in 3G offerings in the province of Quebec; so thanks to all those involved to make this available :)

As I side note, I'll be going to UDS-N in October, and I'm very interested to know about your success stories or even failure stories about 3G modems. I can't promise anything, but I *do* think it would be great to get a good grasp of what 3G devices are supported or not. So if you own a 3G USB dongle which still doesn't work in Maverick and you are going to UDS, don't hesitate to ping me on IRC or stop me IRL so we can look into it.

I may write up a wiki page with devices which are known to work (or not to work), so stay tuned for an update on this subject.

Tuesday, 14 September 2010

Looking back over the past few months...

I'm pretty new as a Canonical employee overall, only having been with the company for about 7 months, but I must say I'm really thrilled to be part of a large gang of people so involved in making Ubuntu great; with so much pride in all the work accomplished. If there's one thing that has been constantly motivating me, it has to be the prospect of working every day with the community and with other Canonical employees on making Ubuntu better.

Certifying hardware

In the past seven months, I've been working as a Hardware Certification Engineer in the Montreal office. What does that mean? Well it's pretty simple: testing, testing, testing, automation, testing.

Yup. Testing. The hardware certification team is pretty much the group bringing you your daily Dell deals from behind the scenes, driving the testing efforts to make sure you can get systems available from large manufacturers such as Toshiba, Dell, HP, no matter if they are desktops, laptops or server. Getting the Big Orange Stamp of Approval(tm) on these systems so that you can get them with Ubuntu pre-installed, and truly get support from our excellent Support team (many of them working from Montreal too!).

What this truly meant for me was tons and tons of learning, with lots of experience gained. I've been identifying a lot of kernel bugs, installer issues, etc. I've learned way more about casper than I had ever dreamed :)

There was obviously not just testing involved, as there were some times where I needed to track down the location of systems, deal with manufacturers on how to get a new system from them to our labs, or quickly work with the OEM teams to get new offerings (and for that, new certified systems) out of the door. We've been privileged enough to have lots of systems shipped to us, which has always been one of the most valuable things manufacturers and distributors could do to help the Ubuntu community. I hope we still get so keen support for years to come.

On top of it all was automation of various testing efforts, one of which being maintenance of the amazing piece of work Marc Tardif started with checkbox and the kickstart / preseed systems that make daily testing possible for the many systems in the Canonical certification labs.

When you look for a cool new computer to run Ubuntu on next time, make sure you take a look at the Certification website: webapps.ubuntu.com/certification. You'll undoubtedly be happy you did.

On the side

I haven't only ever been doing certification testing. Part of the real cool things about Canonical is the fact that being involved in a lot of things, being passionate about what we do, is truly encouraged. In fact, it really couldn't be otherwise.

I've done as much as I could to help with the ISO testing efforts whenever there was some free time. This has been truly a lot of fun as well, and certainly of use, since I do have an ESX server accessible for testing Server images (especially JeOS installs), some systems on which to try out Wubi, and a lot of interest in EC2 and cloud computing.

My work day rarely ever stopped when I got out of the office. Part of why I joined Canonical may have been my involvement in the Ubuntu Quebec LoCo team, organizing events and trying to motivate people to contribute to Ubuntu. I'm still as involved in the LoCo team as ever, and I'm always very happy to help people with their issues on IRC as much as on the ubuntu-qc mailing list, or even in person at the various events Ubuntu-Quebec or other Linux user groups have organized in Montreal. I've even started an Ubuntu Hour gathering in Longueuil, though to my chagrin, I've rarely had much company. I'm at least happy to have been able to use that time to get stuff done on other projects and to answer mailing list postings.

I've also been reasonably active in the Debian community, and still working towards becoming an official Debian developer (if you are a DD and would be so kind as to sign my GPG key, please ping me on IRC :). I've been maintaining concordance and congruity, two applications to control and program Logitech Harmony remotes (one CLI, one GUI), the GNU Accounting Utilities (acct), the Ethos libary (a plugin framework), as well as the Emerillon map viewer for GNOME (with the help of the Debian GNOME team. Thanks!).

And now

Those who know me well know how strong I feel about one of my favorite projects: NetworkManager. In order to further my involvement in Ubuntu and help out NetworkManager, but also other projects, and truly help making Ubuntu rock yet even more, I've just started in the Canonical Desktop team. I'm thrilled to join the others who bring you cool new toys and two (and more) awesome desktop environments with every new release.

For the future

My task won't only be to maintain NetworkManager, but also to work on maintaining ConnMan and making sure it's truly usable and useful for Ubuntu users. The rest of the stack underlying these two beasts won't be spared: I look forward to help bringing the hot new features of wpasupplicant, mobile-broadband-provider-info, isc-dhcp (version 4, nothing less!) to Ubuntu, as well as ensuring all of these won't descend in bug hell.

Another aspect of it will be helping out on the maintenance of Firefox and Chromium.

There isn't a whole lot more I can add about this, but I'm very happy I can lend a hand to Chris Coulson and the others from the Canonical Desktop Team but also everyone in the community contributing to and working on the above products. It's truly a daunting task to maintain all of these systems with so many moving parts, but I wake up every day looking forward to what I'll be doing, and certain I'll enjoy every part of it.

Friday, 10 September 2010

Broadcom driver now open source

This has been brought to my attention today. I see this as a huge win for Ubuntu, since, let's face it, Broadcom devices are a large part of the WiFi device ecosystem. I'm happy to see Broadcom finally publishing some of their source code, and through this helping out Linux users of all distributions get better working WiFi. I see this as a win for Ubuntu in general because it will always make me happier to see people having fewer issues with wireless devices. This also translates to less wheel-spinning with broken drivers we could not possibly fix (since they are closed source), towards more productive work on other aspects of Ubuntu... or just a better chance of fixing driver issues :)

Of course, this is a work in progress and not all Broadcom devices are currently supported by this driver, but I believe that in due time, Broadcom could become one of the golden examples we can give to hardware manufacturers on how to provide the best kind of support they can to the Linux community.

Read more about this on Slashdot, OSNews, or read the annoucement on the Linux Wireless mailing list.

Thanks Broadcom!