Various Shot Of Jaq Tidbits

Various Shot Of Jaq Tidbits

[Shot Of Jaq](https://www.shotofjaq.org/) is a ten minute, twice-weekly technology and Open Source podcast that is specifically designed to be the *start* of the conversation. We have taken care to build an environment optimized around conversation and discussion, and the *Shot Of Jaq* community is growing at a rate of knots. I just wanted to provide a few updates on the show.

If you want to check it out, here are the last three shows:

* [Has Skype Won The War?](https://shotofjaq.org/2010/01/has-skype-won-the-war/)
* [Nexus Is Born](https://shotofjaq.org/2010/01/nexus-is-born/)
* [Jaqback, Issue 2](https://shotofjaq.org/2010/01/jaqback-issue-2/)

Shows come out every Tuesday and Friday, with Jaqback shows (special community shows where read out your emails) coming out about once a month on a Wednesday.

Remember, each shot is just the *beginning* of the conversation, so do join in to the discussion. I look forward to seeing you there. 🙂

## Shot Of Jaq Fan Goal

For the last half week we have been running a campaign to get our [Shot Of Jaq Facebook Fan Page](https://www.facebook.com/pages/Shot-Of-Jaq/255694367792?ref=ts) filled up to **1000** fans by Thursday. We are at *921* right now, so we are looking to you good people to get us up there. A great first step to help here is to join as a fan and then click the *Suggest to friends* link on the page and pass it on to your friends. The more fans, the more conversation, and the more fun for everyone involved. 🙂

Another great way of helping is to pop a badge on your website. Doing this is dead simple. First go to [this Facebook page](https://www.facebook.com/facebook-widgets/fanbadges.php) and you should see this:

Select *Shot Of Jaq* from the *Select a Page* drop down box and the second box will have code you can take to plonk on your website.

[Don’t forget to join the Shot Of Jaq Facebook Fan Page here](https://www.facebook.com/pages/Shot-Of-Jaq/255694367792)!

## Shot Of Jaq Scratchpad Launched

The whole point of *Shot Of Jaq* is to build a conversation and collaboration driven community around the show. As we re-iterate in every shot, we are the *start* of the conversation: ten minutes of short, sharp and fun discussion that we hope leads to continued conversation on [www.shotofjaq.org](https://www.shotofjaq.org/).

Since the show started, some community members have been looking to have a place in which they can work together on projects in and around *Shot Of Jaq* and we have not had such a resource available. We didn’t want to just throw up a wiki, disconnected and disjointed from the main *Shot Of Jaq* website…we wanted to re-think it. We now have a solution: the [Shot Of Jaq Scratchpad](https://www.shotofjaq.org/scratchpad).

The scratchpad works a little like this:

* You can go to the scratchpad and without having to register or login, type in a name for your page into a box and a page will be created for you.
* There, you and other *Shot Of Jaq* fans can work together to share information, collaborate an otherwise be fun community people. There are plenty of options for adding markup, tables, images and lots more to make your page as rocking as possible.
* Discussion about your project and page is integrated in a special way: when you create the page it will also generate a hashtag (e.g. `#soj_h`) which you can use on Twitter and identi.ca. All messages on Twitter and identi.ca containing the hashtag will appear in the sidebar on your scratchpad page. Sweet, eh. 🙂

The *Shot Of Jaq Scratchpad* provides a simple way in which you can create content, work together and projects and discuss said content and projects on Twitter and identi.ca and have it all integrated together, right here on [www.shotofjaq.org](https://www.shotofjaq.org), and none of it require frustrating user accounts, sign-ups and more.

So, with our new feature ready to roll, what kind of content and projects can you use it for? Here are just a few ideas:

* Spreading The Word – we are really keen to help share each shot far and wide. We want people to join us in the conversation, but we need you folks to help spread the word. A page on how to publicise each shot would be awesome, with tips and tricks for our community members to use.
* Transcriptions – for our deaf *Shot Of Jaq* fans, it would be fantastic to have transcriptions, and fortunately because shots are so short, they are not too much work.
* Outreach Project – we have talked in the [Shot Of Jaq Chat Channel](https://www.shotofjaq.org/chat/) about coming up with some stunts and ideas to spread awareness of the show – the scratchpad is a great place to scheme about this kind of thing!
* Resources – want to create *Shot Of Jaq* website buttons, banners and other material? Add them to the scratchpad!
* Your ideas go here…!

So ladies and gents, rock out with your pad out. 🙂

Call For Help: Convert Quickly Snippets To Python Snippets

Call For Help: Convert Quickly Snippets To Python Snippets

As I have blogged about recently, I have been really getting into the idea of enabling opportunistic developers to get to grips with writing applications for the Open Source desktop as easily as possible. This has including raving about the awesome [Quickly](https://wiki.ubuntu.com/Quickly) and I recently wrote [Acire](https://archivedblog.jonobacon.com/2010/01/12/acire-0-2-released/), a simple program for viewing a library of Python Snippets that can be used to read, learn from, run and help lower the barrier for making your own programs rock and roll.

Back at UDS there was an awesome snippets party which resulted in many examples on [this wiki page](https://wiki.ubuntu.com/Quickly/Snippets), but it is just a webpage and of course you can’t see them in Acire, you can’t run them and you can’t play with them right away. I started moving some of them over to the Python Snippets library but I need your help! This is as simple as putting together some example programs, adding some information at the top in the comments and submitting them for review.

If we can get these (and other!) snippets included, it will be another awesome resource to enable our awesome developer community to make fantastic apps that make our desktop rock that little bit more.

Interested? Intrigued? Want to help make the goodness happen? Well, read on…

## Creating Snippets

Before you create your snippets, I recommend you [install the nice and fresh Acire 0.2](https://archivedblog.jonobacon.com/2010/01/12/acire-0-2-released/).

Here is how you go about creating the snippets.

### Step 1: Grab the library

Just run:

bzr branch lp:python-snippets

### Step 2: Create your snippet

A snippet should demonstrate a specific feature in a given module or in the Python language. This could include showing how to use a specific widget, a feature of that widget, or another function. The list of snippets in the [Quickly Snippets page](https://wiki.ubuntu.com/Quickly/Snippets) is ideal for porting over to snippets!

`python-snippets` is divided into sub-directories which outlines the theme of the snippets. You should pick the most appropriate directory to put your snippet it, and add it there. If a suitable directory does not exist already, create it and add it there.

### Step 3: Add metadata

The way *Acire* pulls out the snippets is by detecting some specific metadata additions to comments at the top of the file You should now add the following meta data as comments to the top of the file:

# [SNIPPET_NAME: A Short Name For The Snippet]
# [SNIPPET_CATEGORIES: Category] <-- see CATEGORIES file for existing categories # [SNIPPET_DESCRIPTION: A single line description of the snippet] # [SNIPPET_AUTHOR: Your Name ]
# [SNIPPET_LICENSE: An Open Source license (from the LICENSES file)]

Here is an example:

# [SNIPPET_NAME: Playing a Pipeline]
# [SNIPPET_CATEGORIES: GStreamer]
# [SNIPPET_DESCRIPTION: Construct and play a pipeline]
# [SNIPPET_AUTHOR: Jono Bacon ]
# [SNIPPET_LICENSE: GPL]

You now need to add your file to your branch with:

bzr add your-snippet.py

### Step 4: Propose it for merging

With your new snippet ready, it is time to propose it for inclusion in the main `python-snippets` library.

First, commit your changes to your local branch with:

bzr commit

Now push it to your own branch on Launchpad:

bzr push lp:~/python-snippets/

As an example:

bzr push lp:~jonobacon/python-snippets/gstreamer-snippets

Now go to [https://code.launchpad.net/python-snippets](https://code.launchpad.net/python-snippets) and you should see your branch listed there. Click on it and when the branch page information page loads click on the *Propose for merging* link. Add a short description of what you examples do in the *Initial Comment* box and then click the *Propose Merge* button.

We will then review the merge and if it looks good, add it to `python-snippets` and it will be delivered to Acire users in the next daily package upload. 🙂

I really appreciate any time you can spend in contributing snippets!

Acire 0.2 Released

Acire 0.2 Released

I am pleased to announce the second release of my little project to browse, read, run and learn from a library of Python examples. This release brings us:

* Examples now have syntax highlighting and use a better font for reading code.
* An awesome new icon designed by the ever-affable Martin Owens.
* Various bug fixes.

You can grab it from the Acire PPA by running these simple commands:

sudo add-apt-repository ppa:acire-team/acire-releases
sudo apt-get update
sudo apt-get install acire

For Acire to be in any way useful you will need to grab the Python Snippets library. Subscribe to the PPA and get a fresh batch of Python Snippets daily! Subscribe by just running these commands:

sudo add-apt-repository ppa:python-snippets-drivers/python-snippets-daily
sudo apt-get update
sudo apt-get install python-snippets

Rock and roll!

**UPDATE**: It turns out we had a few dependencies missing. You can fix this with:

sudo apt-get install python-gtksourceview python-gnomeprint

We will get the packaged fixed soon, but this will get you up and running. Thanks for the feedback, folks!

Ubuntu Free Culture Showcase: Lucid Edition

Ubuntu Free Culture Showcase: Lucid Edition

Folks, we are back with another [Ubuntu Free Culture Showcase](https://wiki.ubuntu.com/UbuntuFreeCultureShowcase)!

The Ubuntu Free Culture Showcase is an opportunity to bring the best of two great worlds together by showing off high quality Free Culture content in Ubuntu. At the heart of Ubuntu’s ethos is a belief in showcasing Free Software and Free Culture, and with each development cycle we present the opportunity for any Free Culture artist to put their work in front of millions of Ubuntu users around the world. Although the space restrictions are tight, and we are limited to how much content we can include, the Ubuntu Free Culture Showcase is an excellent opportunity for artists everywhere. I am always hugely inspired by the wonderful entries that we recieve in each competition and I am excited about the opportunities we have to ship awesome Free Culture content with Karmic!

Please note, this time we are not including photo entries as the Ubuntu Art Team already has a competition for submitting photo and graphic content for inclusion as wallpapers.

The winning submissions will be made available on the shipped CDs and download images of the Ubuntu 9.04 release. Every user will be able to find the content in the `Examples/` folder in a home directory.

With this competition we are accepting submissions for audio, video, and graphic/photo submissions. We have a winner to find for each category, and the competition closes on **28th February 2010**. The time is short on this competition, so you better get cracking on some stunning entries!

Entering the showcase is simple:

* Your submission must be one of the following:
* Audio Entries – no larger than 1MB in size – made available in Ogg Vorbis format.
* Video Entries – no larger than 2.5MB in size – made available in Ogg Theora format.
* All entries must be licensed and distributable under the [Creative Commons Attribution ShareAlike](https://creativecommons.org/licenses/by-sa/3.0/) or [Creative Commons Attribution](https://creativecommons.org/licenses/by/3.0/) license.
* Upload your submission somewhere online (there are lots of free hosting solutions available such as archive.org). Do not email any of the organisers or judges with your submissions.
* Add your entry to one of the submission tables at [https://wiki.ubuntu.com/UbuntuFreeCultureShowcase](https://wiki.ubuntu.com/UbuntuFreeCultureShowcase).
* When the deadline for submissions closes, our panel of judges will pick a shortlist, and the Community Council will then pick the final winners from the shortlist.

The deadline is **28th February 2010** and you can read more about it at [https://wiki.ubuntu.com/UbuntuFreeCultureShowcase](https://wiki.ubuntu.com/UbuntuFreeCultureShowcase).

Acire: Delivering A World Of Python Snippets

Acire: Delivering A World Of Python Snippets

A few weeks back I [blogged about](https://archivedblog.jonobacon.com/2009/12/30/announcing-acire/) my new program *Acire*: a simple little tool that provides a library of Python examples called *snippets* that outline how to do specific taks. With each snippet you can browse the code, run it and otherwise learn how it works in order to help you get to grips with writing your own programs as quickly and easily as possible.

I wrote *Acire* to augment [Quickly](https://wiki.ubuntu.com/Quickly) in lowering the bar for *Opportunistic Programmers* to get involved in writing applications. For more on opportunistic programmers see my article *[Unchaining the Opportunistic Programmer](https://blogs.zdnet.com/BTL/?p=28752)*.

So core ethos in my mind behind *Acire* is:

> Provide a regularly, automatically updating diverse range of Python examples, all available within Acire, which allows you to browse, view, run and learn from them.

Meeting this goal is broken into two parts: providing the viewer (*Acire*) and providing the library of examples (*Python Snippets*).

The Acire code is now available at [https://www.launchpad.net/acire](https://www.launchpad.net/acire). If you want to give it a shot, make sure you have `python-vte` installed from your distribution and also install the `python-snippets` PPA (see below) and then run:

bzr branch lp:acire

Then run:

cd acire
quickly run

**UPDATE**: A PPA of the first Acire 0.1 release is now available. Just run these commands to install it:

sudo add-apt-repository ppa:acire-team/acire-releases
sudo apt-get update
sudo apt-get install acire

Thanks to Nathan Handler for setting this up!

Acire will show you your library of snippets and you can click on each one and click the `Execute` button to run it:

Let’s now discuss the snippets. I created a new Launchpad project at [https://www.launchpad.net/python-snippets](https://www.launchpad.net/python-snippets) which is intended to provide a library of snippets. I will be encouraging the community to provide snippets for this library (see below), and I have deliberately kept the library as a seperate project from *Acire* which is useful for getting the library without getting Acire and also if someone wants to write an alternative to Acire (such as a KDE port).

My friend and yours Nathan Handler has created a daily PPA of the library for Karmic and you can install it by just adding these commands:

sudo add-apt-repository ppa:python-snippets-drivers/python-snippets-daily
sudo apt-get update
sudo apt-get install python-snippets

Once you have done this, the latest *Python Snippets* library will be delivered right to your computer and ready for browsing, learning, and playing with right from within Acire!

## We Need Your Snippets!

So right now we have an awesome app for viewing with and playing with snippets, and a means of delivering them to hungry hackers, but what we now need is more snippets. Adding a snippet is as simple as following these steps.

### Step 1: Grab the library

Just run:

bzr branch lp:python-snippets

### Step 2: Create your snippet

A snippet should demonstrate a specific feature in a given module or in the Python language. This could include showing how to use a specific widget, a feature of that widget, or another function.

`python-snippets` is divided into sub-directories which outlines the theme of the snippets. You should pick the most appropriate directory to put your snippet it, and add it there. If a suitable directory does not exist already, create it and add it there.

### Step 3: Add metadata

The way *Acire* pulls out the snippets is by detecting some specific metadata additions to comments at the top of the file You should now add the following meta data as comments to the top of the file:

# [SNIPPET_NAME: A Short Name For The Snippet]
# [SNIPPET_CATEGORIES: Category] <-- see CATEGORIES file for existing categories # [SNIPPET_DESCRIPTION: A single line description of the snippet] # [SNIPPET_AUTHOR: Your Name ]
# [SNIPPET_LICENSE: An Open Source license (from the LICENSES file)]

Here is an example:

# [SNIPPET_NAME: Playing a Pipeline]
# [SNIPPET_CATEGORIES: GStreamer]
# [SNIPPET_DESCRIPTION: Construct and play a pipeline]
# [SNIPPET_AUTHOR: Jono Bacon ]
# [SNIPPET_LICENSE: GPL]

You now need to add your file to your branch with:

bzr add your-snippet.py

### Step 4: Propose it for merging

With your new snippet ready, it is time to propose it for inclusion in the main `python-snippets` library.

First, commit your changes to your local branch with:

bzr commit

Now push it to your own branch on Launchpad:

bzr push lp:~/python-snippets/

As an example:

bzr push lp:~jonobacon/python-snippets/gstreamer-snippets

Now go to [https://code.launchpad.net/python-snippets](https://code.launchpad.net/python-snippets) and you should see your branch listed there. Click on it and when the branch page information page loads click on the *Propose for merging* link. Add a short description of what you examples do in the *Initial Comment* box and then click the *Propose Merge* button.

We will then review the merge and if it looks good, add it to `python-snippets` and it will be delivered to Acire users in the next daily package upload. 🙂

I am really keen to see snippets on pretty much everything and if you want to help, a great place to start is converting [the Quickly snippets page](https://wiki.ubuntu.com/Quickly/Snippets) over to real, runnable snippets for `python-snippets`. Let’s roll!

Ubuntu Free Culture Showcase: Lucid Edition

Slashdot In Ubuntu Membership Shocker!

For those of you who have read the [recent Slashdot article announcing Ubuntu’s new membership programme](https://linux.slashdot.org/story/10/01/06/1420209/Ubuntu-Memberships-Introduced), this is clearly a mistake.

Ubuntu has had the concept of membership for many years, helping us to identify those who have made a significant and sustained contribution. This is nothing new and nothing is changing.

More information on Ubuntu Membership can be found [here](https://wiki.ubuntu.com/Membership).

Acire: Delivering A World Of Python Snippets

Community And Ubuntu Live Videocast

Just a quick note that tomorrow (Wed 6th Jan 2010) at 7pm UTC/ 11am Pacific / 1pm Eastern, I will be starting back up with *At Home With Jono Bacon*: my series of videocasts about community growth and building, and sharing work and approaches with the communities that I am involved in, namely [Ubuntu](https://www.ubuntu.com/), [Shot Of Jaq](https://www.shotofjaq.org/), and the [Community Leadership Summit](https://www.communityleadershipsummit.com/).

Tomorrows show will include:

* Talking about Lernid, my new e-learning tool and how it can be used by your communities.
* My teams plans for the coming Ubuntu cycle.
* New goings on in the Ubuntu LoCo World.
* Tracking progress in community teams with Burndown charts.
* Announcing the Community Leadership Summit 2010.

Those of you who tuned in last year to these shows will notice a significant improvement in quality as I have upgraded the studio, so do be sure to come along and check out the show.

You can watch from your web browser at [https://www.ustream.tv/channel/at-home-with-jono-bacon](https://www.ustream.tv/channel/at-home-with-jono-bacon)

Lernid 0.4 Released And Demo

Lernid 0.4 Released And Demo

I have just released [Lernid](https://wiki.ubuntu.com/Lernid) 0.4 to the [Lernid Releases PPA](https://edge.launchpad.net/~lernid-devs/+archive/lernid-releases). This release incorporates the final features that I planned out for the first major release, and it is now onto bug fixing in preparation for our first full-scale event that can use Lernid – [Ubuntu Developer Week](https://wiki.ubuntu.com/UbuntuDeveloperWeek).

Many of you are probably curious to see Lernid in action, so tomorrow I will be giving a short presentation (around 20 minutes) to talk about Lernid…using Lernid! I will talk about the project, it’s direction, show off a few features and answer questions.

It will take place at 7pm UTC. To get involved you will need to install and use Lernid to connect. Install it by following these instructions (on Karmic):

sudo add-apt-repository ppa:lernid-devs/lernid-releases
sudo apt-get update
sudo apt-get install lernid

When it is installed just do the following:

1. Click *Applications -> Internet -> Lernid* to load Lernid.
2. Select ‘Ubuntu Example Week’ from the *Event* drop-down box and enter a nickname (don’t include spaces in the nickname, this is a known bug).
3. When Lernid loads you will see the session scheduled for tomorrow and what time it is in your local timezone. When it comes to the session time, fire up Lernid: you will see the session happen in the *Classroom* pane.

I am looking forward to showing you all Lernid tomorrow!

Announcing Acire

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](https://wiki.ubuntu.com/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](https://wiki.ubuntu.com/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](https://www.pygtk.org/tutorial.html). 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*. 🙂

Lernid: Progress And Walkthrough

Lernid: Progress And Walkthrough

Tonight I completed a bunch of hacks on [Lernid](https://wiki.ubuntu.com/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](https://wiki.ubuntu.com/UbuntuDeveloperWeek).

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](https://wiki.ubuntu.com/Lernid).