
Lernid Gets Presentation Support
I just wanted to share a cool new feature I just hacked into [Lernid](https://www.launchpad.net/lernid) today. The current cut of the feature is still very new, but it works great. I have added *slide support*. 🙂
This is how it works: imagine you are giving a session at the upcoming UBuntu Developer Week or Ubuntu Open Week. The sessions are scheduled in the iCal feed, and in the *Description* you can add the following to your session:
[SLIDES: https://www.myaddress.com/slides.pdf]
This PDF file contains slides for your presentation.
When it comes time to run your session, you type in `[SESSIONSTART]` in the IRC channel and all Lernid clients will go and download the PDF file and display the first slide in a small and convenient, and resizable pane within the interface.
The session leader can then change to the next slide by typing the following in the session:
[SLIDE 2]
This will then change the slide and display it for all Lernid clients. This now means that in tutorial sessions we can display presentations to viewers while the session is going on. This is a huge feature for our learning weeks. Also, don’t forget that we also have functionality built into Lernid to display URLs shown in the channel too in the built-in web browser. This is all helping Lernid to become a solid platform for online training.
This is how it looks:
The feature landed in bazaar today, but it will take a little while for me to eek out some of the bugs. As such, don’t expect it to work flawlessly in the daily builds of Lernid. My aim is to have these bugs squashed by the new year. 🙂
Rock and roll!

Art Of Community Rated #2 Must Have Social Media Book By Mashable
Two lovely nuggets of [Art Of Community](https://www.artofcommunityonline.org) information to share:
* Firstly, *The Art Of Community* was rated #2 in [Top 10 must-have books on social media](https://mashable.com/2009/12/21/must-read-ebooks/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Mashable+%28Mashable%29) by [Mashable](https://mashable.com/). Wow, I am tickled pink about this. Thanks, Mashable folks!
* Secondly, I have have heard from a bunch of people that the legendary [.net Magazine](https://www.netmag.co.uk/) reviewed *The Art Of Community* saying it was well written, well structured and intriguing that O’Reilly support it as a free e-book too. Rock and roll. 🙂
If you lovely people spot any more reviews, do let me know. 🙂

Unchaining The Opportunistic Programmer
Recently I have been writing a lot about [Lernid](https://www.launchpad.net/lernid), an application that makes online learning events more fun and more accessible, and at the heart of what has enabled me to write Lernid is [Quickly](https://wiki.ubuntu.com/Quickly); a framework for scratching itches. Quickly has enabled me to re-connect with my *coding mojo*, and deliver the fruits of my labor to others.
As such, Quickly and I are friends. *Good friends*.
What excites me most about Quickly is how it helps *opportunistic programmers* to be productive and feel accomplished in their work. This in turn leads to huge opportunities around diversity in the application space. My excitement is not just about Quickly as software, but an ethos that is at the heart of Open Source.
To explain more about this, my friends at ZDNet published an article I have just written called [Unchaining the opportunistic programmer](https://blogs.zdnet.com/BTL/?p=28752). Go and check it out. 🙂
For extra bonus Quickly content, check out our [Shot Of Jaq shot](https://shotofjaq.org/2009/12/quickly-unchaining-the-itch-scratcher/) too.

Lucid Community Team Plans
As many of you will know, I manage the Ubuntu Community Team at Canonical, which has horsemen Holbach, Castro and Planella in it. A large chunk of my job is to take into account the wide range of needs from our different stakeholders (community teams, Canonical teams, upstreams etc) and to flesh out a strategy for my team for each cycle. To do this I gather input and feedback from the team and these stakeholders and put together strategy that will guide the team’s work through the cycle. Today I want to share this strategy with you all.
Most components in this strategy includes a blueprint which itself includes a set of actions and in most cases a spec that outlines the goals for Lucid. The benefit of this approach is that you can subscribe to blueprints you are interested in and keep track of those projects as we work through them. If there are elements of these blueprints that you would like to contribute to and get involved with, do let us know. 🙂
So, on with the blueprints. Please note: each of these blueprints is targeted for the Lucid cycle only and these are the blueprints that my team specifically is working on with assistance from the community – other Canonical teams are of course working on their own sets of blueprints. Also, this does not include all community blueprints: there are many blueprints that are not part of my teams expected deliverables.
### Upstreams
> **Engage in outreach with targeted upstreams to build support for Application Indicators into their code**
[https://blueprints.launchpad.net/ubuntu/+spec/community-lucid-application-indicators-outreach](https://blueprints.launchpad.net/ubuntu/+spec/community-lucid-application-indicators-outreach)
> **Help communicate needs of upstreams to Launchpad team**
[https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-launchpad-upstream-improvements](https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-launchpad-upstream-improvements)
> **Continued documentation for Upstreams**
[https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-upstream-documentation](https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-upstream-documentation)
> **Upstream Contacts**
[https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-upstream-contacts](https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-upstream-contacts)
> **Adopt-an-Upstream initiative**
[https://blueprints.launchpad.net/ubuntu/+spec/community-lucid-adopt-an-upstream](https://blueprints.launchpad.net/ubuntu/+spec/community-lucid-adopt-an-upstream)
### Developers
> **Get Harvest more production ready**
[https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-harvest-next-steps](https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-harvest-next-steps)
> **Improve Kernel community patch flow**
[https://blueprints.edge.launchpad.net/ubuntu/+spec/kernel-lucid-bugs-with-patches](https://blueprints.edge.launchpad.net/ubuntu/+spec/kernel-lucid-bugs-with-patches)
> **Facilitate transition of Permissions Reorganisation**
[https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-permissions-reorg-process-changes](https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-permissions-reorg-process-changes)
### Governance Support
> **Help the IRC Council in being effective**
[https://blueprints.edge.launchpad.net/ubuntu/+spec/irc-council-lucid-plans](https://blueprints.edge.launchpad.net/ubuntu/+spec/irc-council-lucid-plans)
> Community Council
> Developer Membership Board
> Technical Board
### Translations
> **Improve translation status reporting**
[https://blueprints.launchpad.net/ubuntu/+spec/community-lucid-improving-translation-status-reporting](https://blueprints.launchpad.net/ubuntu/+spec/community-lucid-improving-translation-status-reporting)
> **Increase community participation in coordinating translations**
[https://blueprints.launchpad.net/ubuntu/+spec/community-lucid-community-participation-in-coordinating-translations](https://blueprints.launchpad.net/ubuntu/+spec/community-lucid-community-participation-in-coordinating-translations)
> **Definition of translations best practices and policies**
[https://blueprints.launchpad.net/ubuntu/+spec/community-lucid-translations-best-practices-and-policies](https://blueprints.launchpad.net/ubuntu/+spec/community-lucid-translations-best-practices-and-policies)
> **Improve Quality Assurance on translations**
[https://blueprints.launchpad.net/ubuntu/+spec/lucid-qa-community-testing-translations](https://blueprints.launchpad.net/ubuntu/+spec/lucid-qa-community-testing-translations)
> **Increase community developer contributions in Launchpad Translations**
[https://blueprints.launchpad.net/ubuntu/+spec/community-lucid-increasing-lp-translations-dev-community-contributions](https://blueprints.launchpad.net/ubuntu/+spec/community-lucid-increasing-lp-translations-dev-community-contributions)
### LoCo Teams
> **Raise awareness of LoCo team work**
[https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-loco-stories](https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-loco-stories)
> **Help the LoCo council to be successful**
[https://blueprints.launchpad.net/ubuntu/+spec/loco-council-lucid-plans](https://blueprints.launchpad.net/ubuntu/+spec/loco-council-lucid-plans)
> **Make LoCo Directory usable for the LoCo Community**
[https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-loco-directory-development](https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-loco-directory-development)
### Governance Changes
> **LoCo Council**
[https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-loco-council-nominations](https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-loco-council-nominations)
> **EMEA Membership Board**
[https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-emea-board-changes](https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-emea-board-changes)
> **Americas**
[https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-americas-board-changes](https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-americas-board-changes)
> **Asia/Oceania**
[https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-asia-board-changes](https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-asia-board-changes)
> **Kubuntu**
[https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-kubuntu-council-changes](https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-kubuntu-council-changes)
### Regular Cycle Activities
> **Ubuntu Open Week**
[https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-ubuntu-open-week](https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-ubuntu-open-week)
> **Ubuntu Developer Week**
[https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-ubuntu-developer-week](https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-ubuntu-developer-week)
> **Release Party Coordination**
[https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-release-party-coordination](https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-release-party-coordination)
> **Ubuntu Global Jam**
[https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-ubuntu-global-jam](https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-ubuntu-global-jam)
> **Ubuntu Free Culture Showcase**
[https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-ubuntu-free-culture-showcase](https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-ubuntu-free-culture-showcase)
> **Improve UDS Scheduling**
[https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-summit-improvements](https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-summit-improvements)
> Team Sprint Planning
> LoCo Docs Day(s)
> Release Name Announcement
> Governance Assessments
> LoCo Week
> Debian Relationship
> LoCo Stories
> UDS Planning
> DebConf
> Desktop Events
### Infrastructure
> **The Fridge**
[https://blueprints.edge.launchpad.net/fridge/+spec/community-lucid-fridge-improvements](https://blueprints.edge.launchpad.net/fridge/+spec/community-lucid-fridge-improvements)
> **summit.ubuntu.com**
[https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-summit-improvements](https://blueprints.edge.launchpad.net/ubuntu/+spec/community-lucid-summit-improvements)
> **LoCo Directory**
[https://blueprints.edge.launchpad.net/loco-directory/+spec/community-lucid-loco-directory-development](https://blueprints.edge.launchpad.net/loco-directory/+spec/community-lucid-loco-directory-development) and [https://blueprints.edge.launchpad.net/loco-directory/+spec/loco-directory-event-registration](https://blueprints.edge.launchpad.net/loco-directory/+spec/loco-directory-event-registration)
> **Harvest**
[https://blueprints.edge.launchpad.net/harvest/+spec/community-lucid-harvest-next-steps](https://blueprints.edge.launchpad.net/harvest/+spec/community-lucid-harvest-next-steps)
> Brainstorm
> Participate Pages
> Hall Of Fame
> 5-a-day statistics
> Governance Tracker (WIP)
> Sponsoring Overview
As you can see, we have quite a bit to keep us occupied in this cycle. 🙂 If you want to watch the sausage being made, subscribe to the blueprints you are interested in,and do hang out in `#ubuntu-community-team` on Freenode where we work together. There you can see such exciting conversations as:
> <jono> jcastro, call?
> <jcastro> all set
We look forward to seeing you there! Horsemen…roll out!

Application Indicators In Python
I am really excited to see [Ted’s post](https://gould.cx/ted/blog/Having_a_tidy_systray) regarding some of the improvements coming to the desktop notification area. This part of our desktop has become something of a wild west – icons look ugly, are spaced too close together, have left/right click inconstancy, often provide obscure and inaccessible widgets and cannot be easily controlled across notification icons with a single keyboard shortcut. This approach will fix many of these issues.
This approach has two distinctive components – the user interface improvements and the technology to implement. The user interface changes I think are really interesting and bring some distinctive benefits:
* Application indicators are more consistent – no more left and right-click inconsistency. Always left click to see the items.
* Scrubbing – you can click once on an app indicator and scrub left and right through other indicators with your mouse.
* More accessible – importantly, scrubbing also applies to the keyboard: this means you could bind a key to the indicator applet, hit that key and then use the arrow keys to navigate through all the indicators.
* Themable panel icons – you can set a specific icon to be a panel icon for an indicator: this should make it easier for creating single colour panel icons for light and dark themes.
* KDE/GNOME compatability – one thing that really excites me is that by using this spec, KDE applications running in GNOME will have their application notification menus rendered with GTK widgets and vice-versa.
I am really excited about the opportunities this brings to the desktop, and I am also really excited about us working with our friends in KDE on this spec.
I wanted to give this a roll in my more native Python tongue so I [added the Karmic PPA](https://edge.launchpad.net/~indicator-applet-developers/+archive/indicator-core-ppa) and started playing with the module. I contributed my code as an example [on the wiki](https://wiki.ubuntu.com/DesktopExperienceTeam/ApplicationIndicators). Here it is to show how it works:
import gobject
import gtk
import appindicator
if __name__ == “__main__”:
ind = appindicator.Indicator (“example-simple-client”, “indicator-messages”, appindicator.CATEGORY_APPLICATION_STATUS)
ind.set_status (appindicator.STATUS_ACTIVE)
ind.set_attention_icon (“indicator-messages-new”)
# create a menu
menu = gtk.Menu()
# create some labels
for i in range(3):
buf = “Test-undermenu – %d” % i
menu_items = gtk.MenuItem(buf)
menu.append(menu_items)
# this is where you would connect your menu item up with a function:
# menu_items.connect(“activate”, self.menuitem_response, buf)
# show the items
menu_items.show()
ind.set_menu(menu)
gtk.main()
I basically created an indicator object and threw a GTK menu into it and as if by magic my app appeared in the notification panel, properly spaced out and enjoying the benefits I mentioned above. Pretty simple. 🙂

Two New Articles
Just a quick post to outline two recent articles that are online:
* [Communitizing the community with community tools](https://blogs.zdnet.com/BTL/?p=28330&tag=col1;post-28330) -thanks to my friends over at ZDNet for publishing this for me. This is an overview of some tools I find awesome for building great communities.
* [Interview with Datamation on The Art of Community](https://itmanagement.earthweb.com/osrc/article.php/12068_3853331_2/Ubuntus-Jono-Bacon-Managing-an-Open-Source-Community.htm) – Bruce Byfield interviewed me about *The Art Of Community* and what I would like to see in an up-and-coming second edition.
🙂

Ubuntu Community Hack Fest
Tonight I had an idea I wanted to run past Ubuntu community folks. I think it could be fun to have an *Ubuntu Community Hackfest*. In it we would pick two days and devote them to hacking on software projects that are community-related. This could include existing project such as:
* LoCo Directory
* Harvest
* Quickly
* Hall Of Fame
* The Fridge
* Lernid
* Brainstorm
* Improvements to the Ubuntu Forums
It could also include ideas for other projects we have discussed at UDS such as the Governance Tracking System. This could also be a great time to build that new website your LoCo needs, work on a new Quickly application that can help the community or some other kind of project.
I would recommend that those who get involved would share their work as they do it on blogs, post screenshots, share snippets, and of course twitter and dent all the while.
So, would anyone be interested in getting involved with this?

Community Meetings: Rock Not Ramble
I just had another article published on ZDNet. This one is called [Community Meetings: Rock Not Ramble](https://blogs.zdnet.com/BTL/?p=28260&tag=col1;post-28260) and talks about how to get the most out of online discussion meetings. It begins:
> At the heart of great communities is great communication. Different communities converse in very different ways. Some step out into the big blue room and talk face to face in coffee shops, classrooms and lecture theatres, whereas some chew the fat online on mailing lists, in chat channels and in forums. Unfortunately when many communities set up shop they make one particularly common mistake: they focus too heavily on the medium as opposed to the approach.
Go and check it out [here](https://blogs.zdnet.com/BTL/?p=28260&tag=col1;post-28260). 🙂

Lernid 0.3 Brings The Rock And Roll
Today I kicked out a new release of Lernid – Lernid 0.3. This release packs in some juicy new features and bug fixes, and we are edging closer to Lernid 1.0 ready for our next major learning event: [Ubuntu Developer Week](https://wiki.ubuntu.com/UbuntuDeveloperWeek).
This release brings the following new features:
* **Refined Interface** – the interface has been re-factored to make better use of space and work better on smaller-resolution screens such as netbooks.
* **Schedule View** – Lernid now has support for real events. Events are specified using an iCal feed: this means that any calendaring application can be used to create and publish events. Events are now displayed in a special schedule view, in chronological order.
* **Local Event times** – traditionally events in our Ubuntu learning weeks were always shown with the internationally confusing UTC timezone. Now all events are shown in the users local timezone. Goodbye, confusion, it was nice knowing you. 🙂
* **Notifications** – 10 minutes before an event begins Lernid will pop up a nice little notification bubble to remind you that an event is about to start. No more missing those rocking events!
* **Improved Browser Feature** – Lernid has a built in web browser in which sites relevant to the session can appear. Switching between sites is devilishly simple, and we now have Reload and Stop buttons.
* **Automatic Website Loading Triggered By Session Leaders** – a useful new feature I added today ready for this release adds a listener for web addresses in the main classroom session. This means that when the session leader mentions a web address, it will automatically show in the browser pane. This offers a first-of-its-kind feature for our learning weeks in which content can be delivered to attendees automatically without them having to do or type anything, right from inside Lernid. Other listening features are planned in future releases.
* **Translations Support** – we now have translations support fully built into Lernid, with available translations in Arabic, Asturian, Brazilian Portuguese, Catalan, Chinese (Simplified), Czech, Danish, Dutch, English (Australia), English (Canada), English (United Kingdom), Esperanto, Filipino, Finnish, French, German, Hebrew, Hungarian, Indonesian, Italian, Lojban, Malay, Polish, Portuguese, Romanian, Russian, Slovenian, Spanish, Swedish, and Telugu. Thanks to our awesome translations community for all their hard work!
Thanks to David Planella, Lucian Adrian Grijincu, and Andrew Higginson for contributions to this release.
Also, Lernid is built using the [Quickly](https://edge.launchpad.net/quickly) framework, and if it were not for this awesome tool, I doubt I would have ever started hacking on Lernid. If you have ideas for cool desktop applications and have an affinity with Python, you should give it a whirl. More information about Quickly and links to the always wonderful Didier Roche’s tutorial is [here](https://archivedblog.jonobacon.com/2009/10/19/ubuntu-and-the-opportunistic-programmer/).
### Getting Lernid
Lernid is still very much in development. This 0.3 release is still considered a pre-release and not final. This release is considered a more stable release in our scheme of pre-releases though. You can get it from my PPA. Simple issue the following commands:
sudo add-apt-repository ppa:jonobacon
sudo apt-get update
sudo apt-get install lernid
(*Right now Lernid 0.3 is still building, so there may be a delay until it is available to you*)
This will deliver each new release of Lernid directly to your desktop in Update Manager updates.
If you would like to play with the crack-of-the-day, the always awesome Nathan Handler has set up a daily builds PPA. You can add it with:
sudo add-apt-repository ppa:lernid-devs/lernid-daily
sudo apt-get update
sudo apt-get install lernid
Enjoy!

Shot Of Jaq: A Few Weeks In
It has been a few weeks now since [Aq](https://www.kryogenix.org/) and I started doing our new podcast, [Shot Of Jaq](https://www.shotofjaq.org/). What a crazy few weeks.
As some of you will know, we did [LugRadio](https://www.lugradio.org/) for four years, and we really got into the habit of the LugRadio formula. Four year and 2million downloads later, I am proud of our achievements there: I consider it a success. That feeling of success has a negative side-effect though: jitters. Just before we released our first Shot Of Jaq shot I felt the same jitters I did just before we released LugRadio Season 1 Episode 1. In many ways the jitters were worse: we knew a lot of LugRadio fans were going to be checking out the new show, and even though we have made it clear that Shot Of Jaq is *not* LugRadio, we want to meet people’s expectations. Even though it is early days, I am really happy with the response so far.
The whole point of shot Of Jaq is that each shot is (a) no more 10 or so minutes long (b) the shot *starts* the conversation and (c) encourages the Shot Of Jaq community to weigh in and share their thoughts, thus continuing the conversation together. The format is new, I am not aware of anyone taking this approach before, but so far people seem to be getting into the approach, with some rather awesomely referring to it as *shotcasting*, which is pretty darn cool.
So far we have released the following shots, newest first, with the number of comments right now shown in brackets:
* [Jaqback, issue 1!](https://shotofjaq.org/2009/12/jaqback-issue-1/) (*25*) — this one was released today
* [Video Killed The Screwdriver Star](https://shotofjaq.org/2009/12/video-killed-the-screwdriver-star/) (*53*)
* [The Open Office Renaissance](https://shotofjaq.org/2009/12/the-open-office-renaissance/) (*38*)
* [The Arm Invasion](https://shotofjaq.org/2009/12/the-arm-invasion/) (*66*)
* [The Great Twitter Gravy Train](https://shotofjaq.org/2009/11/the-great-twitter-gravy-train/) (*60*)
* [It Begins](https://shotofjaq.org/2009/11/it-begins/) (*40*)
Each shot you can listen to from your browser and get involved in the conversation right away. Want to subscribe, well check out our [MP3](https://shotofjaq.org/feed/) and [Ogg](https://feeds.feedburner.com/ShotOfJaqOgg) podcast feeds. I hope you check it out and we see you there.
So far things are still really new and we are beginning to settle into the format, as well getting used to doing a podcast after a year of not doing LugRadio. I have to say, it is pretty exciting getting back in the saddle, and thanks to everyone who has been so supportive of the show. 🙂