• Home
  • About
  • Blog Archives
  • Contact Me
  • FAQ
  • The Big 101
Subscribe: Posts | Comments | E-mail

jonobacon@home

Archive for December, 2009


Posted on December 30, 2009 - by jono

Announcing Acire

After a wonderful week in England with family celebrating Christmas, Erica and I flew home to the East Bay. We were sat at Heathrow having a cup of coffee and I was thinking of what I occupy myself with on the plane ride over. Unfortunately, Lernid hacking was out of the question as I had no net connection on the plane, so I got to thinking of something else. After some busy hacking time at 35,000 feet I am proud to show of the results of my labor: a little program called Acire.

Let me provide a bit of an introduction.

I love Python and I love PyGTK and as I have waxed lyrical about recently, I am passionate about how tools such as Quickly are lowering the bar for opportunistic programmers to scratch their itch. The problem is, much as Python and PyGTK are incredible for writing apps, like any other tool they still need to be learned, and the best way to learn is by downloading, running and playing with code snippets. Traditionally this has involved finding scattered bits of sample code online and stuffing it into a directory. Not only do we download other people’s sample code but we often write our own little code snippets as we learn new parts of these tools, and these would be perfect to share with others. Unfortunately, many of us never end up putting them anywhere online. Acire is a first step in making this whole process easier.

Right now, Acire is a tool that allows you to browse snippets easily. It looks like this:

The combo box in the top left provides different categories of snippets. In the screenshot above you can see the general category PyGTK, but there is no reason why we can’t have sub-categories such as PyGTK -> TreeViews. When you select a category, the list underneath it shows all the current snippets. Clicking on a snippet not only loads the code in the view to the right, but also provides a simple description and location of the snippet underneath the code. You can then run the snippet by clicking the Execute button or copy the full code to the clipboard by clicking the Copy button.

To make snippets work in Acire, I have created some simple metadata tags that snippet authors should put at the top of the snippet in the code. Here is an example:

# [SNIPPET_NAME: Actions]
# [SNIPPET_CATEGORIES: PyGTK]
# [SNIPPET_DESCRIPTION: Demonstrates using Actions with a gtk.Action and gtk.AccelGroup]

To test this out I have already added this meta data content to all the examples from the PyGTK Manual. This functionality already makes browsing available snippets, running them and looking at the code an absolute doddle.

I have just got in from a day of traveling, I am exhausted, and headed to bed. I will get the code online tomorrow and talk more about plans for Acire. :-)


Posted on December 24, 2009 - by jono

Lernid: Progress And Walkthrough

Tonight I completed a bunch of hacks on Lernid and a number of new bug fixes, improvements and refinements have landed. To best explain where Lernid stands, I wanted to perform a little walkthrough of how it works.

Imagine you are interested in joining the fictional Ubuntu Example Week event. No longer do you need to know what the heck IRC is, figure out what software you need and figure out how to connect and join the right channel. Simply fire up Lernid:

When Lernid starts all you need to do is select the week you wish to participate in and enter a nickname. When you connect you will see all the sessions that are part of the event and the current session will be indicated with an arrow:

In the Classroom pane you can see the main session happening (only the session leader talks here), and in the Chatroom pane you talk with other session participants about the current session.

When the session starts, the session leader can show the first slide by simply typing in [SLIDE 1] and the slide will appear conveniently in the top-right of the Lernid window: this means you can see the slide and the session at the same time. For you session leaders and organizers, all you need to do is save your slides as a PDF (which OpenOffice.org and other office suites can do), put them online somewhere, and add the slides in the Description in the iCal feed that contain the sessions. Lernid will do all the rest in terms of automatically downloading the PDF and displaying the correct slide to Lernid viewers.

At this point Lernid viewers can now not only see the session going on and chat about the session, but can also see the slides triggered by the session leader as they happen. This already provides a far more interactive feel to the sessions.

Now the session leader wants to show all of you lovely Lernid viewers a web page. To do this he/she just types in the URL in their session and Lernid will automatically load it into the built-in browser and show it to you, but still show the main Classroom and Chatroom channels so you are not distracted away:

Now the session leader wants to get back to the slides and triggers the next slide by typing in [SLIDE 2] and Lernid automatically flicks back to the slide view and displays it, again never taking your eyes away from the main Classroom and Chatroom channels:

With these features we can breathe new life into online learning channels that are based on IRC. Lernid now provides a simple means for people to get involved: no more faffing around having to learn what IRC is and how to get connected, and when you are connected via Lernid, you can view rich content with slides, view web pages instantly and easily see the schedule of events, all converted to your local timezone. :-)

So…what’s next? Well, I want to fix a few remaining bugs and then roll out a 0.4 release to my PPA, which I hope to have ready as a nice little Christmas present. The next step is to then remove the hardcoded Ubuntu server configuration which I added for convenience sakes and instead add a preferences dialog where you can select from multiple server configurations. This means that our friends in Fedora, OpenSuSE, Debian and elsewhere can rock their learning events with Lernid too. My plan is to merge these features in, fix any last remaining bugs and then consider Lernid as 1.0, ready in time for Ubuntu Developer Week.

It has been a fun journey, and thanks for all the wonderful contributions, patches and encouragement to and for Lernid. I really hope it helps enliven our rocking learning events!

UPDATE: Check out the new Lernid Website.


Posted on December 23, 2009 - by jono

Lernid Gets Presentation Support

I just wanted to share a cool new feature I just hacked into 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: http://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!


Posted on December 22, 2009 - by jono

Art Of Community Rated #2 Must Have Social Media Book By Mashable

Two lovely nuggets of Art Of Community information to share:

  • Firstly, The Art Of Community was rated #2 in Top 10 must-have books on social media by Mashable. 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 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. :-)


Posted on December 19, 2009 - by jono

Unchaining The Opportunistic Programmer

Recently I have been writing a lot about 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; 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. Go and check it out. :-)

For extra bonus Quickly content, check out our Shot Of Jaq shot too.


Posted on December 17, 2009 - by jono

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

Help communicate needs of upstreams to Launchpad team
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

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

Developers


Get Harvest more production ready
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

Facilitate transition of Permissions Reorganisation
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

Community Council

Developer Membership Board

Technical Board

Translations


Improve 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

Definition of 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

Increase community developer contributions in Launchpad Translations
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

Help the LoCo council to be successful
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

Governance Changes


LoCo Council
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

Americas
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

Kubuntu
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

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

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

Improve UDS Scheduling
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

summit.ubuntu.com
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 and 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

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!


Posted on December 17, 2009 - by jono

Application Indicators In Python

I am really excited to see Ted’s post 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 and started playing with the module. I contributed my code as an example on the wiki. 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. :-)


Posted on December 16, 2009 - by jono

Two New Articles

Just a quick post to outline two recent articles that are online:

  • Communitizing the community with community tools -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 – Bruce Byfield interviewed me about The Art Of Community and what I would like to see in an up-and-coming second edition.

:-)


Posted on December 15, 2009 - by jono

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?


Posted on December 14, 2009 - by jono

Community Meetings: Rock Not Ramble

I just had another article published on ZDNet. This one is called Community Meetings: Rock Not Ramble 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. :-)



  • Ad Ad Ad Ad
  • Prepare For Awesome

  • Recent Articles

    • Rest Well, My Friend
    • Incredible Stories Of Free Software and Open Source
    • On Zareason
    • This Friday: Rockridge Ubuntu Global Jam In Berkeley
    • Rocking The Application Indicators
    • Articulating IRC Contributions Concisely
    • Revisiting Ethos
    • Getting More Developers Interested In Participating In Ubuntu
    • 11.04 Ubuntu Developer Summit Announced
    • Help Colin Get His Kids Back
  • Recent Comments

    • Gerv on On Zareason
    • Deborah Lang on Facebook Account Disabled
    • duanedesign on Rest Well, My Friend
    • YADev on Application Indicators In Python
    • Navneeth on Incredible Stories Of Free Software and Open Source
    • Christoffer Holmstedt on Getting More Developers Interested In Participating In Ubuntu
    • Tachyon Feathertail on Getting More Developers Interested In Participating In Ubuntu
    • Neil Wilson on Getting More Developers Interested In Participating In Ubuntu
    • flipefr on Getting More Developers Interested In Participating In Ubuntu
    • Christoffer on Getting More Developers Interested In Participating In Ubuntu
  • Flickr Photos

  •  

    December 2009
    M T W T F S S
    « Nov   Jan »
     123456
    78910111213
    14151617181920
    21222324252627
    28293031  
  • jb@h Rockstars This Year

    • ethana2 (34)
    • Zac (18)
    • nixternal (17)
    • Tachyon Feathertail (15)
    • James Duncan (13)
    • Mackenzie (13)
    • Tom (12)
    • Bruno Girin (11)
    • Jimbo (11)
    • Adam Williamson (10)
© 2008 jonobacon@home - At home with Jono Bacon, Community Manager and Author