Blog posts from April 2009...

Starting Work at Canonical Tomorrow

I'm writing this from a plane, somewhere over New Mexico, headed home from a few days working in Las Vegas. My last few days, actually. As I write it's Friday (the posting of this is now Sunday), and on Monday (tomorrow), I'll start work for Canonical, the company behind Ubuntu. I will be working on Launchpad, specifically joining the team working on the app's bug tracker component.

While I have great friends I'm leaving behind at Greenspun, I know the time is right for me to move on. My heart has always been in free software first and media somewhere after that. The group I've worked with is a progressive segment of the news/media world, but at the end of the day, I've been doing closed, proprietary development for the last few years. I'm excited to lend my hand to free/open source software development again. I feel a bit like I did when I joined the Samba Team, though experience has given me a different set of eyes through which to view this coming change. There will be plenty of challenges and new things to learn, certainly, and I plan to just dive in, work hard, and contribute whatever I can to Launchpad.

I will continue to work from home. Most of Canonical works from home offices, and that will be a nice change, having so many peer telecommuters. My day will be time shifted, with me starting earlier, to better sync with my largely European teammates. This is a positive for me, since I'll finish work earlier and have some time in the afternoon with the kids after school. Because I'll be starting so early, I don't plan to work from the attic office I was using, the one that also houses my wife Wendy's business.

So there is the new job to start in the next few days, but also a whole world of changes happening around that, all of which are positive and exciting, and I truly can't wait to log on IRC Monday and get started.

Link | Posted by deryck on April 12, 2009 | 0 comments

Scripting Simple Shell Commands

I'm setting up a latop with a fresh install of Ubuntu. I haven't done a clean install on a real machine in who knows when, and over the last 3 months or so I've become a huge fan of PPAs. I have several PPAs to keep up to date with packages I use that have frequent updates beyond what's available from Ubuntu updates. Since I'm adding several at once, I'm adding a lot of PPA keys. Doing this reminded me of a simple trick I use when running a frequent command. (Some form of this is common among developers or sys admins, but if you're less experienced with a shell or Linux this may be useful to know.)

First, the command for installing a PPA key is...


sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com [KEY]

...where [KEY] is the PPA's key finger print.

So the easiest way to use this is to cycle back through your bash history and replace the previous run with the new key and run again. For me, I know I won't remember the particulars of this command in a month or two when I need to run it again and it's no longer showing up in my bash history. I'll end up having to consult a man page or the Launchpad help pages. Not a big deal, but with things like this -- commands I use semi-regularly but not enough to keep in memory -- I usually add a little bash script. For example, with this command I created a script called add-ppa-key:


#!/bin/bash

if [ $# -eq 0 ]; then
    echo "Usage: add-ppa-key KEY_FINGERPRINT"
    exit 1
else
    FINGER=$1
fi

sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com $FINGER

I always add the usage test with each command like this, just so I can use tab completion to find the command, run it with no arguments, and get back a statement of what I need to do. I have a "bin" directory in my home directory and append $HOME/bin to $PATH in my .bashrc. I have several of these type of scripts in this bin directory, for building software or even for simple to remember but frequently used rsync commands or PythonPath export statements. Not only does this make commands reusable without having to completely remember them, it's also nice for documenting commands. So the next time someone asks me what the command for installing a PPA key is, I can do cat ~/bin/add-ppa-key and paste the output into IRC, IM, or what have you.

Link | Posted by deryck on April 1, 2009 | 0 comments