
Dimebag: Still Remembered, Still Missed
Five years ago today, one of my heroes was murdered. [Dimebag Darrell](https://en.wikipedia.org/wiki/Dimebag_Darrell), guitarist from Pantera, Damageplan and Rebel Meets Rebel was shot while performing in Columbus, Ohio by Nathan Gale, a crazed fan disgruntled with the split of Pantera. The metal world and beyond was devastated by the news. In such a tight-knit and almost-tribal community, the passing of one of it’s most loved and well respected members was awful.
In my parents generation, everyone remembers where they were when Kennedy was shot: for metal fans, we remember where we were when Dimebag’s passing was announced. I was sat in a meeting room at OpenAdvantage in Birmingham, suited and booted, about to have the most important meeting of my career with a large Open Source deployment. Literally minutes before the meeting started, I got a text from my then-girlfriend with the news. I was devastated. Not only was Dimebag a huge inspiration in my own playing, but part of the reason why the news was so hard to swallow is that a significant reason why Dimebag was so loved was that he seemed like *such a nice guy*.
I studied every one of their audio and video releases. I would listen to their CDs, play along as I learned guitar, headbang to Pantera at my local rock club, and I used Pantera’s *3: Watch It Go* video as an inspiration for living life to the full. Dimebag was not only a musical inspiration, but a role model for one such passionate metal fan and musician in his formative years. And then, just like that, my role model was taken away from me.
I used to sneer at people who became attached to musicians, actors and the like, but today I mourn Dimebag’s passing. That may make me silly and naive, but that is tiny price to pay for everything he has given me. Rest well, buddy.

Touched
Yesterday a package arrived on my doorstep. Not just a package, but a big one, and I had not ordered anything that big to be delivered. Lo and behold, said package had my name on it and the sticker said it was from **Pete Graner**, who is my colleague at Canonical leading the kernel team. As many of you will know, he is one half of the *Open Source Posh and Becks* that is him and his awesome wife, **Amber Graner**.
So, I opened the box and to my utter astonishment I found an array of items all packed inside a patriotic hamper basket:
The box contains a quilt that Amber made with three books chronicling parts of the history of the United States. Laid on the top of the box was an awesome envelope with stars and stripes (even the envelope kept in with the theme) with my name written on it. Inside was a beautifully written letter saying some rather nice things about how I should apply for US Citizenship when I can, and how the things inside the box should help with this.
I was incredibly touched by this gesture from Amber and Pete. It is quite possibly the most thoughtful thing anyone has ever done for me, and I want to offer my heartfelt thanks to both of them. I first met Pete at a managers sprint in London and from the minute we got to know each other, I knew I had just made a lifelong friend. Little did I realize that when I met his wife, that I would get another. Thanks folks, you are both incredible. 🙂

Lernid Karmic Daily Builds Now Available
Thanks to the awesome Nathan ‘nhandler’ Handler, we now have a daily builds PPA for [Lernid](https://www.launchpad.net/lernid). This means you can run the unstable, daily, crack-of-the-day version of Lernid and have it delivered automatically right to your desktop. Currently it is built for Ubuntu 9.10 Karmic Koala, and you can suck in the goodness by running:
sudo add-apt-repository ppa:lernid-devs/lernid-daily
sudo apt-get update
sudo apt-get install lernid
When you have run this, a new Lernid package will regularly appear in Update Manager. 🙂
As ever, do bear in mind that this is unstable software: it may well crash and burn. More details on the PPA are available [on it’s Launchpad page](https://edge.launchpad.net/~lernid-devs/+archive/lernid-daily).
In other news, I have re-factored the interface a little to make better use of space in the top portion of the window – we now have a *Schedule* and a *Browser* tab:
Also, thanks to David Planella’s awesome patch which fixed the translations not being loaded into Lernid, we are now shipping with an awesome selection of languages. We do need your help to get these translations finished though, and it is as easy as typing translations into a website. Take a look at the [languages that need translating](https://translations.launchpad.net/lernid) and if you need help, take a look at [this page](https://help.launchpad.net/Translations/StartingToTranslate#Where%20to%20start).
Finally, my current goal is to get Lernid fixed up ready for an official 0.3 release. To help with this I have been filing bugs targeted at that release. Please do go and test Lernid and file bugs that you find [here](https://bugs.edge.launchpad.net/lernid/+filebug). 🙂

Lernid Gets Notifications, Browser Updates and Translations
Hi all, just weighing in with another update on my pet project – [Lernid](https://www.launchpad.net/lernid/).
I have added a bunch of new features this week to Lernid:
* **Notifications** – events that are shown in the event list will now appear in the notification area. A notification bubble will pop up 10 minutes before an event begins to remind you it is starting.
* **Multiple Browser Pages** – the browser view now has a drop-down box where you can select between different pages. This code is now ready for me to build in support for an URL to trigger a page load in the browser. This means that when you are watching a session and the session leader mentions an URL, the browser view will automatically update with the page. This provides an opportunity for the session leader to deliver content to that view in near real time: this is a first for these kinds of online learning sessions.
* **Translations** – thanks to a patch from the always awesome David Planella, Lernid now makes use of the [growing list of available translations](https://translations.edge.launchpad.net/lernid/trunk). Lernid in your language: nice!
For the eye-candy lovers, here is how our little baby looks at the moment:
As ever, code, bugs, translations and more are available in the [Launchpage project](https://www.launchpad.net/lernid/).

Lernid Gets ‘Real’ Events
Another quick [Lernid](https://www.launchpad.net/lernid) update.
So far, Lernid has merely provided a streamlined interface to the common components in [Ubuntu Open Week](https://wiki.ubuntu.com/UbuntuOpenWeek) or [Ubuntu Developer Week](https://wiki.ubuntu.com/UbuntuDeveloperWeek). I have just completed some work which starts bringing unique value to Lernid as a user interface for these events.
I have been wanting to have a means of providing a structural representation of events, as opposed to just showing a web page with a HTML table showing the schedule. This seems easy enough: just have a database, but part of the value of Ubuntu Open Week and Ubuntu Developer Week is that a wiki means that we can share the burden of scheduling the event, making corrections and swapping sessions. Wikis are not optimal though, they don’t give me the structured information I need. Fortunately, I have come up with a better way.
Last night I hacked support into Lernid to read in an iCal calendar for a given event, separate the events out and store them in a way that I can parse in Lernid. I then took this data and converted the times of the events to the local timezone – this solves one of the biggest problems people have with Ubuntu Open Week – understanding what the heck UTC is and calculating the time of the event in their local timezone. Now you can load Lernid and see the list of events with times that make sense to you. I am also planning to build in functionality to set an alarm for a given event so that Lernid will pop up a notification bubble then minutes before an event to remind you.
The benefit of using iCal as a backend means that event planners can put together events using any calendaring application, and you can not only get awesome event support in Lernid but also provide a standard iCal feed that people can subscribe to in their calendar apps. When using Google Calendar, working together on events is really simple. 🙂
So far, the changes look like this:
*Please note, the events listed are dummy data, not real scheduled events.*
The code is now in Launchpad. I am not going to be generating any more packages in the PPA until I have another tested and stable version ready, which will be 0.3. 🙂

Lernid 0.2 Released
I am pleased to announce an early snapshot release of [Lernid](https://www.launchpad.net/lernid): a little program to make connecting to Ubuntu learning events simple. Lernid is still very much in development, and still needs lots of work before it is ready for our next event, but I have had people badgering me for a package, so here it is. 🙂
You can get it from my PPA by running the following commands:
sudo add-apt-repository ppa:jonobacon
sudo apt-get update
sudo apt-get install lernid
This release fixes a bunch of bugs, includes some further layout improvements, and completes the plumbing on the first-cut of the Telepathy driven classroom IRC pane. Lernid has been translated into 27 languages, but we currently have a bug in displaying them. This should be fixed in the next release.
A few screenshots:

More On Lernid
Time for a quick update on [Lernid](https://www.launchpad.net/lernid), a little program I have been writing to make it as easy as possible to get involved in online Ubuntu events such as [Ubuntu Open Week](https://wiki.ubuntu.com/UbuntuOpenWeek) and [Ubuntu Developer Week](https://wiki.ubuntu.com/UbuntuDeveloperWeek). This is how it looks right now:
Here is a summary of the recent changes:
* **Better Classroom** – the main classroom view now ditches the embedded web IRC and instead uses Telepathy. It has better scrolling and layout and importantly, is read-only, reducing the chatter, joins/parts and other fluff that clutters a session in the main classroom channel.
* **Translated** – Lernid is now available in Arabic, Asturian, Catalan, Czech, English (Australia, Canada, and United Kingdom), Esperanto, Filipino, Finnish, French, German, Hebrew, Hungarian, Malay, Polish, Portuguese, Spanish and Swedish. If you want to help translate Lernid, [click here](https://translations.launchpad.net/lernid)!
* **Improved Layout** – I cleaned up the interface a little and tidied up some dialog boxes.
* **Fixed Bugs** – a bunch of different bugs have been fixed and it is feeling much more solid now.
My plan is to fix a bunch of remaining bugs and then upload Lernid 0.2 to a PPA so you can all try it. I am keen to get a simple yet stable verion ready for Ubuntu Developer Week.
You can find out more about Lernid on it’s [Launchpad page](https://www.launchpad.net/lernid).

The Shot Of Jaq Train Begins
Yesterday we [kicked out our first proper episode of Shot Of Jaq](https://shotofjaq.org/2009/11/the-great-twitter-gravy-train/) and I am chuffed to bits with the response. Right now it stands at 42 comments, and I am sure this will continue to grow.
The whole idea behind Shot Of Jaq is that our 10 minute shot acts as the start of a conversation, and then the conversation continues on [shotofjaq.org](https://www.shotofjaq.org/). With Shot Of Jaq being something of an experiment, I am tickled pink that our first shot has generated so much interesting discussion. I am also excited that we are seeing the beginnings of the Shot Of Jaq community forming, and we have some awesome community members already knee deep in the Shot Of Jaq spirit. Thanks so much to you all for throwing both feet in and getting involved. If you have not yet joined the conversation, [go here](https://shotofjaq.org/2009/11/the-great-twitter-gravy-train/) and join us!
In the interests of making sure the Shot Of Jaq (and Severed Fifth) sound quality is top notch, yesterday we got up at 4am and went shopping on Black Friday. There I bought a new studio computer (Quad Core Athlon 2, 8GB RAM, 640GB disk, 20″ screen), new control surface (Tascam FW-1082), bought Aq a Shure X2U XLR to USB for his side of the recording (I will give him one of our Sennheiser mics) and I have some other bits on my list to upgrade.
The next episode of Shot Of Jaq will be out on Tuesday. Looking forward to it!

Introducing Lernid
Last week, while at the [Ubuntu Developer Summit](https://wiki.ubuntu.com/UDS) in Dallas I mentioned in one of the roundtables about how wicked-cool it would be to have a desktop client for [Ubuntu Open Week](https://wiki.ubuntu.com/UbuntuOpenWeek), [Ubuntu Developer Week](https://wiki.ubuntu.com/UbuntuDeveloperWeek) and other online tuition events that we run.
One of the challenges we face every time we run these events is helping new community members figure out how IRC works. Ideally this should be as simple as running a program, selecting an event and connecting.
On the flight home I hacked up a little quickly app to get started on this. It is called [Lernid](https://www.launchpad.net/lernid).
This is how it works:
When you fire up Lernid it will ask you to select an event from a combo box and enter a nickname. The list of events in the combo box is actually held on the server side, which means we add new events and all Lernid clients will see them. This also means that other projects can use Lernid for their online events too. When the user hits OK it then loads up the main interface:
In the upper pane the schedule is displayed for the currently selected event, the bottom left pane shows the classroom channel and the bottom right pane shows the chat channel. The user is now all set to take part in the session.
Right now I have focused on getting a basic Lernid together, and I have created a [Lernid Launchpad project](https://www.launchpad.net/lernid) and published [Lernid 0.1 to my PPA](https://edge.launchpad.net/~jonobacon/+archive/ppa).
I think there is bags of room for additional features. Some ideas include:
* Filtering IRC channels – filter out the ‘QUESTION’ lines, hide join/part traffic etc.
* Scheduling – include a feature to schedule a given event on the system calendar.
* Notifications – pop up a box to indicate that an event is about to begin.
* Session leader tools – it could also be useful to include a feature for a session leader to scribe down notes, share links or twitter right from Lernid.
Hopefully Lernid can act as a starting point for the community to add new features. 🙂

Creating a roadmap for more successful teams
One of the challenges that every community faces, particularly teams inside a larger community, is the ability to coordinate what goals and ambitions the team is going to work on. Traditionally this has always been somewhat ad-hoc: people join a team and work on whatever they feel like. Ideas are ten-a-penny though. For most teams that work on larger projects (such as events, software, products and more) to actually be productive, coordinating this work can be complex: some projects require coordination across many people with different skill-sets, time-availability and resources.
Something I would like us to work towards in the Ubuntu community is encouraging a culture of best-practise in how we plan our work and coordinate our awesome teams to work together on projects. I believe this kind of coordination can help our teams increase the opportunity for success in their work, feel more empowered and productive and provide greater insight to people outside those teams on what the team is doing.
An effective way of doing this is to build a *Roadmap* for each cycle. This provides an opportunity to capture a set of goals the team will work together to achieve in each six-month period. This article outlines how to build such a Roadmap.
## Creating Your Roadmap
While at first a roadmap can feel a little like a nod to the gods of bureaucracy, they actually possess many benefits:
* **Direction** – one of the biggest complaints teams often report is a *lack of direction*. If a team gets into the habit of creating a roadmap at the beginning of a cycle, it gives the team a sense of focus and direction for the coming cycle.
* **Documented commitments are more effective** – a common rule in Project Management training is that actions assigned to people in a shared document are more effective than ad-hoc or private commitments. By documenting who will work on what in a cycle and putting their name next to an action can help seal a sense of accountability for their contributions to the project.
* **Feeling of success** – regularly revisiting a roadmap and checking off items that have been completed can develop a strong feeling of progress and success. It makes a team feel productive.
I spent some time recently putting together a little bit of infrastructure to help making roadmaps as simple as possible. This is how it works.
### Step 1: Decide what your team wants to do
The first step is to open up a discussion with your team to talk about things that the team would like to do. As an example, a LoCo Team may want to organize a booth at a given conference or work together on marketing materials, a documentation team may want to work together on a book or guide, a software team may want to work together towards a first release, and a translations team may want to work together on documentation to help translate a particular language and organize translations events and sprints.
The most effective of way of having this conversation is to produce a wiki page in which people can jot down their ideas and this can form the basis of converting key popular ideas in the team into roadmap items. Keep the discussion focused on the next cycle (which lasts six months). You should make sure you have these discussions out in the open in your team communication channels, be it mailing lists, IRC channels or otherwise.
It is important to note that *not every contribution has to be on the roadmap*. Roadmaps are great for larger projects and goals.
### Step 2: Create your roadmap document
To make things as simple as possible, I have created a roadmap template and place to store roadmaps. This is how it works:
1. Go to [https://wiki.ubuntu.com/Roadmaps/Lucid](https://wiki.ubuntu.com/Roadmaps/Lucid) and create a page in that namespace that reflects your team (e.g. https://wiki.ubuntu.com/Roadmaps/Lucid/ExampleTeam). Be sure to add a link to your new page on https://wiki.ubuntu.com/Roadmaps/Lucid by using this markup: `[[https://wiki.ubuntu.com/Roadmaps/Lucid/ExampleTeam|Example Team]]`.
2. Open up a new browser tab and go and view [the roadmap template](https://wiki.ubuntu.com/Roadmaps/Template). Click on *Edit* and copy the content from the template into your new team page that you created in the previous step.
You are now ready to start building the roadmap.
### Step 3: Capturing projects in your roadmap
The roadmap is broken into a set of sections, each of which points to a particular goal you want to achieve. Each goal then has an *Objective* block which provides a task that needs to be completed to achieve part of the goal. Each goal can have *many objectives*.
The *Objective* block is structured like this:
* **OBJECTIVE**: An Objective is a goal that you want to achieve. Summarize your objective here in one sentence (e.g. ‘*Exhibit Ubuntu at OSCON*’ and ‘*Create Lucid Marketing Materials*’).
* **SUCCESS CRITERIA**: This is a statement that can be clearly read to determine success on the above *Objective*. This needs to be as clear as possible and not vague: it will indicate if you achieved the *Objective* (e.g. ‘*A successful exhibition at OSCON*’ and ‘*Lucid website buttons, banner ads and wallpaper provided for LoCo Teams*’).
* **ACTIONS**: This is a set of steps that need to be executed to achieve the *Objective*. It is recommended that if someone volunteers to commit to delivering on an action, you put it in brackets (e.g. *Print out LoCo logo on a banner (Jono Bacon)*). There can be multiple actions for each Objective.
* **BLUEPRINT**: If a Launchpad Blueprint applies to this Objective, link it here (*optional*).
* **DRIVER**: If someone is coordinating this objective and helping those involved to deliver on their actions, list that person here (*optional*).
The aim here is to try and capture what your team wants to do and who will be contributing to the goal. Let’s look at an example of organizing an event:
> * **OBJECTIVE**: Exhibit Ubuntu at LugRadio Live 2009
> * **SUCCESS CRITERIA**: A successful Ubuntu exhibition complete with demonstrations and materials.
> * **ACTIONS**:
> * Confirm booth space with LugRadio Live organizers (Steve Harris)
> * File a request for CDs from ShipIt (Bruce Dickinson)
> * Develop artwork for main banner sign, staff badges, flyers (Janick Gers)
> * Provide demonstration laptops (2 x laptops) (Dave Murray and Adrian Smith)
> * Prepare demonstration speaking script (Nicko McBrain)
> * Promote our presence on LugRadio forums, Planet Ubuntu and Full Circle Magazine (Steve Harris)
> * **BLUEPRINT**: N/A
> * **DRIVER**: Steve Harris
The goal of a roadmap is to capture as many of these projects and apply the same structure that no only communicates what needs to be done, but also who has volunteered to work on which actions.
At the [Ubuntu Developer Summit](https://wiki.ubuntu.com/UDS) next week I will be working with many teams to talk more about this approach to roadmaps and encouraging our various teams, LoCo teams and councils to start experimenting with a roadmap to see how well it can help the team be successful.