Ubuntu Opportunistic Developer Week Kicks Off In An Hour

Ubuntu Opportunistic Developer Week Kicks Off In An Hour

Just a quick note to let you all know that [Ubuntu Opportunistic Developer Week](https://wiki.ubuntu.com/UbuntuOpportunisticDeveloperWeek) kicks off in an hour!

Here is the order of events for today:

* **4pm UTC** – Welcome! Ubuntu For Opportunistic Developers – Jono Bacon
* **5pm UTC** – CouchDB support in your app with DesktopCouch – Stuart Langridge
* **6pm UTC** – Creating an application from scratch with Quickly – Rick Spencer
* **7pm UTC** – Building in Application Indicator support – Sense Hofstede
* **8pm UTC** – Integrated development workflow with Ground Control – Martin Owens
* **9pm UTC onwards** – Hacking parts in `#ubuntu-app-devel` on freenode! Come and join us, work on your apps, ask questions and have fun in our community. 🙂

It is recommended that you enjoy the week in [Lernid](https://wiki.ubuntu.com/Lernid). You can find out more details of how to install Lernid [right here](https://wiki.ubuntu.com/Lernid). Don’t want to use Lernid? No worries, just pop over to `#ubuntu-classroom` and `#ubuntu-classroom-chat` to join in the fun.

Ubuntu Opportunistic Developer Week This Week

Ubuntu Opportunistic Developer Week This Week

Well, folks, this week [Ubuntu Opportunistic Developer Week](https://wiki.ubuntu.com/UbuntuOpportunisticDeveloperWeek) kicks off with a fantastic week jammed with great sessions helping to bridge the gap for opportunistic developers who want to write fun, useful applications using Ubuntu as a platform. We have a wonderful week of sessions ahead and as ever, it is recommended that you enjoy the week in [Lernid](https://wiki.ubuntu.com/Lernid). You can find out more details of how to install Lernid [right here](https://wiki.ubuntu.com/Lernid). Don’t want to use Lernid? No worries, just pop over to `#ubuntu-classroom` and `#ubuntu-classroom-chat` to join in the fun.

I will be kicking off the week at **4pm UTC** and talking through the goals for the week and talking through some of the work we are doing to help opportunistic developers enjoy Ubuntu as a platform and write some fun apps.

Friends, also don’t forget about the fun challenge I set last week:

> Think of a fun program to write, and see how much you can get completed by the end of the week, Fri 5th March 2010. On Friday I will write a blog entry that showcases screenshots of your progress and (if possible) a PPA where people can download a package to try.

When you have something you would like me to blog, send an email no later than the end of the day Pacific time on Thu 4th March 2010 to me at `jono AT ubuntu DOT com` and include:

* The name of your program and a brief description of what it does.
* A link to a screenshot online that shows your new app running.
* If available, tell me the name of the Launchpad project where it is hosted and the PPA with the package. This is a great way for people to try your program and possibly join the project and contribute to it!

I will send a t-shirt out to the three app authors who made the most interesting apps with the most progress. 🙂

Start your engines folks, let’s see what we can do! I can’t wait to see how you folks get on! 🙂

Ubuntu Opportunistic Developer Week This Week

Fun Little Acire Story

With the [new release of Acire just out](https://archivedblog.jonobacon.com/2010/02/26/acire-0-3-released/) I wanted to tell you folks a fun little story of an added benefit to Acire that I never envisaged when I came up with the idea for the app.

Yesterday I got an email from someone (I will keep the identify private) saying:

> I’m trying to create an application but I can’t seem to find any way to embed a gnome-terminal into my app. I know you’re not offering support 🙂 but if you have some spare time is there any chance you can point me to the documentation for that?

This happens a lot: someone wants to do something, so they ask for help over email or on another medium such as IRC. Unfortunately, I am usually pretty busy and typically don’t have the time to answer support questions. Before Acire existed I would have at most hunted out some links or possibly just the person to to go and ask on a particular forum or mailing list.

Now Acire exists, I just fired it up, selected *Python VTE* from the cateogries combo box, clicked on the snippet, and then cut and pasted the code into the email:

#!/usr/bin/env python

# [SNIPPET_NAME: Embed a VTE terminal]
# [SNIPPET_CATEGORIES: Python VTE]
# [SNIPPET_DESCRIPTION: Embed a VTE terminal in your application]

try:
import gtk
except:
print >> sys.stderr, “You need to install the python gtk bindings”
sys.exit(1)

# import vte
try:
import vte
except:
error = gtk.MessageDialog (None, gtk.DIALOG_MODAL, gtk.MESSAGE_ERROR, gtk.BUTTONS_OK,
‘You need to install python bindings for libvte’)
error.run()
sys.exit (1)

if __name__ == ‘__main__’:
# create the terminal
v = vte.Terminal()
v.connect (“child-exited”, lambda term: gtk.main_quit())

# fork_command() will run a command, in this case it shows a prompt
v.fork_command()

# create a window and add the VTE
window = gtk.Window()
window.add(v)
window.connect(‘delete-event’, lambda window, event: gtk.main_quit())

# you need to show the VTE
window.show_all()

# Finally, run the application
gtk.main()

Job done. What made me smile about this was that Acire not only helps me, but it helped me help someone else too. Rocking. 🙂

Ubuntu Opportunistic Developer Week Kicks Off In An Hour

Acire 0.3 Released

Everyone’s favorite tool to browse Python snippets, run them, learn from them and incorporate them into your programs has been released! This new release has the following new features:

* **Translated** – Acire has now got support for multiple languages, but this is very new so it needs your translations! Want to help make Acire rocking in *your* language? Easy. [Go and contribute here](https://translations.edge.launchpad.net/acire)!
* **Edit Snippets** – Acire now allows you to edit the code inside a snippet and execute it within Acire itself.
* **Save Snippets** – You can now save the snippets, even if they have been edited, into a specific file on your system.
* **Look and Feel Polish** – a little bit of spit and shine has been applied to respect your chosen monospace font, use a scalable icon for docky and a few other little changes.

As I have mentioned before, I the snippets that *Acire* shows and the Acire itself are in two separate packages (this means that others can write viewers to view the snippets on other environments).

Installing *Acire* and it’s snippets is simple. First install the daily snippets PPA (this will deliver new snippets to your system on a daily bases):

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

Now install the *Acire* PPA:

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

Right now packages are available for Ubuntu 10.04 Lucid Lynx and Ubuntu 9.10 Karmic Koala packages should be available soon.

## We need your snippets!

The fuel that makes *Acire* rock is the library of snippets. To really get the most out of Acire and it’s library of snippets, we need you to contribute snippets that demonstrate something in Python. These snippets are really helpful in showing us all how a given Python modules works, and really helpful in lowering the bar to development. Here is how you can contribute a snippet!

### 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 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. 🙂

The Grand App Writing Challenge

The Grand App Writing Challenge

Yesterday I gave my talk on *opportunistic developers* on ustream.tv (which I plan on repeating next week). In that session I floated the idea of having a fun challenge next week when [Ubuntu Opportunistic Developer Week](https://wiki.ubuntu.com/UbuntuOpportunisticDeveloperWeek) happens. The idea was pretty popular, so I wanted to share it here.

The idea is simple:

> Think of a fun program to write, and see how much you can get completed by the end of the week, Fri 5th March 2010. On Friday I will write a blog entry that showcases screenshots of your progress and (if possible) a PPA where people can download a package to try.

## Getting Started

Getting started with this is simple. First think of something that would be fun to write. This could be a GUI front-end to a command line tool, a simple app that does something useful for you that will improve your life, a game or anything else. Pick something that isn’t too hard: something that is a good first step to dip your feet into development. Folks, do share ideas for apps in the comments here so those people who can’t think of something have a pool of ideas available. 🙂

When you have idea you can create your app really easily with [Quickly](https://wiki.ubuntu.com/Quickly). You can first install Quickly from the *Ubuntu Software Center* by clicking *Applications -> Ubuntu Software Center* and search for `quickly`.

When it is installed, just run:

quickly create ubuntu-project

As an example:

quickly create ubuntu-project mycoolapp

Now run:

quickly tutorial

This will explain how to get started working on your application. If you have questions related to using quickly, you can join `#quickly` on freenode. If you have general software development questions, you can join `#ubuntu-app-devel` on freenode.

## Sharing Your Progress

When you have something you would like me to blog, send an email no later than the end of the day Pacific time on Thu 4th March 2010 to me at `jono AT ubuntu DOT com` and include:

* The name of your program and a brief description of what it does.
* A link to a screenshot online that shows your new app running.
* If available, tell me the name of the Launchpad project where it is hosted and the PPA with the package. This is a great way for people to try your program and possibly join the project and contribute to it!

I will send a t-shirt out to the three app authors who made the most interesting apps with the most progress. 🙂

Start your engines folks, let’s see what we can do! I can’t wait to see how you folks get on! 🙂

Introduction To Python Sessions Soon!

Introduction To Python Sessions Soon!

If you are new to Python and coding, Rick Spencer from the desktop team will be running some beginners Python tuition sessions in an hour:

* Thu 25th Feb 2010 – 15.00 UTC – Ubuntu Opp Dev Week Prep: Intro to Python for *total beginners*
* Thu 25th Feb 2010 – 16.00 UTC – Ubuntu Opp Dev Week Prep: Intro to Python for *programmers*

These sessions are best experienced using [Lernid](https://wiki.ubuntu.com/Lernid). If you would prefer to use a normal IRC client, just join `#ubuntu-classroom` and `#ubuntu-classroom-chat` to join in the fun. 🙂

Brand New Lernid Released

Brand New Lernid Released

Ready for the awesomeness that is [Ubuntu Opportunistic Developer Week](https://wiki.ubuntu.com/UbuntuOpportunisticDeveloperWeek), we have a shiny new [Lernid](https://wiki.ubuntu.com/Lernid) for you all to rock the week with. Lernid is the online learning tool for getting the most out of our learning weeks. It makes connecting a doddle and provides interactive features such as showing slides, web pages and more.

The new **0.6** release has had a tonne of bug fixes and is by far the most stable release yet. It also includes these new features:

* **New icon** – awesome new icon, and looks smooth as silk in docky too.
* **Nick completion** – just like a normal IRC client, type in the first few letters of the nickname, hit tab and *boom!* there is the nick!
* **Option for show time in class and chatroom** – want to see the times? Simple.
* **Possibility for pausing automatic browser updating** – don’t like that browser updates? Sorted.
* **NickServ authentication** – now you can use your nickserv password when connecting.
* **Question button** – want to ask a question in the right format? Click the *Question* button and then type in your question. Job done.
* **Gwibber support (tweet the ongoing session)** – click the *Event* menu when a session is running and *Tweet current session* to share your attendance with Twitter/identi.ca/Facebook/FreindFeed etc (*only works on Lucid*).

Kudos to Michael Budde for taking over the reigns on Lernid as the new maintainer, and for the fantastic little Lernid community for making such a stunning release!

## Getting Lernid

It is highly recommended that you download this version of Lernid ready for the event. This is how…

### Ubuntu 9.10 Karmic Koala

You can download Lernid for Karmic from the releases PPA. Just click *Applications -> Accessories -> Terminal* and cut and paste in these commands.

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

Then click *Applications -> Internet -> Lernid*.

### Ubuntu 10.04 Lucid Lynx

If you are running Lucid, Lernid is easier to install than ever as it is now available in Universe! Thanks to the awesome Didier Roche for his work today in getting this into the archive!

As such, installing Lernid is as simple as using the *Applications -> Ubuntu Software Center* or typing:

sudo apt-get update
sudo apt-get install lernid

Then click *Applications -> Internet -> Lernid*.

Rocking The Opportunistic Desktop

Rocking The Opportunistic Desktop

I just wanted to summarize some fun *opportunistic developer* things going on over the next few weeks. all of these events provide a great opportunity to get started having fun making awesome apps that you can share with others.

## Presenting The Opportunistic Developer Vision

On Wednesday 24th Feb at 11am / 2pm EST / 7pm UTC/GMT I will be giving the talk that I delivered this past weekend at SCALE in LA in which I talk about the work going on in the Ubuntu community to embrace Opportunistic Developers in writing awesome free software apps. If you are curious about all this blathering about opportunistic developers from me, be sure to tune in and check it out. Tune in [here](https://www.ustream.tv/channel/at-home-with-jono-bacon).

## Ubuntu Opportunistic Developer Week

A few weeks ago I announced the plan to put together [Ubuntu Opportunistic Developer Week](https://wiki.ubuntu.com/UbuntuOpportunisticDeveloperWeek): a week of IRC tuition sessions aimed at helping opportunistic developers scratch their itches and write fun and useful programs using our awesome platform. The week takes place from **1st – 6th March 2010**.

The response so far to the call for sessions has been fantastic, and we already have the following sessions scheduled, all visible from [the timetable for the week](https://wiki.ubuntu.com/UbuntuOpportunisticDeveloperWeek):

* Welcome! Ubuntu For Opportunistic Developers – Jono Bacon
* Gooey Graphics with GooCanvas – Rick Spencer
* Testdrive – DustinKirkland
* CouchDB support in your app with DesktopCouch – Stuart Langridge
* Creating stunning interfaces with Cairo – Laszlo Pandy
* Hot rodding your app for translations support – David Planella
* Creating a PyKDE app – Rich Johnson
* Creating an application from scratch with Quickly – Rick Spencer
* Microblog from your app with the Gwibber API – Ken VanDine
* What’s new in Quickly 0.4 – Didier Roche
* Learning through examples with Acire and Python-Snippets – Jono Bacon
* Building in Application Indicator support – Sense Hofstede
* Writing a Rhythmbox plug-in – Stuart Langridge
* Create games with PyGame – Rick Spencer
* Write Beautiful Code (and Maintain it Beautifully) – rockstar
* Using GTK+ signals in Python – Sense Hofstede
* Integrated development workflow with Ground Control – Martin Owens
* Building multimedia into your app with GStreamer – Laszlo Pandy
* Speed your development with quickly.widgets – Rick Spencer
* Web browsing and rapid UI with WebKit – Ryan Paul

Each of these sessions is designed to give you a taste of the topic and get you up and running, enough to be productive and start exploring the features of the tool being discussed. In addition to this we will have a series of showcase sessions:

* SHOWCASE: Gwibber – Ken VanDine
* SHOWCASE: Lernid – Jono Bacon
* SHOWCASE: Photobomb – Rick Spencer

These sessions explain the story behind the app: talking about which tools, modules and technology that was used to put these apps together and what challenges were solved. This is a great way to learn more about tools available for opportunistic developers so that when you need to do something, you know which tool to reach out for.

**All of this awesome content is best experienced using [Lernid](https://wiki.ubuntu.com/Lernid). Expect a new Lernid packaged and ready for the week of opportunistic goodness. If you would prefer to use a normal IRC client, just join `#ubuntu-classroom` and `#ubuntu-classroom-chat` to join in the fun**. 🙂

## Introduction To Python Tuition Sessions

Now, many of you will be entirely new to Python and entirely new to coding. To give you folks a head start before *Ubuntu Opportunistic Developer Week* kicks off, Rick Spencer from the desktop team will be running some beginners Python tuition sessions on the Thursday before *Ubuntu Opportunistic Developer Week*:

* Thu 25th Feb 2010 – 15.00 UTC – Ubuntu Opp Dev Week Prep: Intro to Python for total beginners – Rick Spencer
* Thu 25th Feb 2010 – 16.00 UTC – Ubuntu Opp Dev Week Prep: Intro to Python for programmers – Rick Spencer

This is a great way of getting your opportunistic development kickstarted!

**Again, this awesome content is best experienced using [Lernid](https://wiki.ubuntu.com/Lernid). If you would prefer to use a normal IRC client, just join `#ubuntu-classroom` and `#ubuntu-classroom-chat` to join in the fun**. 🙂

Rock and opportunistic roll, my friends. 🙂

## Fun Apps And Hacking Parties

With an awesome week of *opportunistic developer* learning ahead of us, I was keen to put together some sessions where you good folks can just hack on fun projects in the same room, ask each other questions and more. As such, at the end of each *Opportunistic Developer Week* day, there will be a a series of parties. These include:

* Mon 1st March 2010 – 21.00 – 23.00UTC – Hacking Party – Work on your app together, ask/answer questions and have fun together!
* Tues 2nd March 2010 – 21.00 – 23.00UTC – Hacking Party – Work on your app together, ask/answer questions and have fun together!
* Wed 3rd March 2010 – 21.00 – 23.00UTC – Hacking Party – Work on your app together, ask/answer questions and have fun together!
* Thu 4th March 2010 – 21.00 – 23.00UTC – Snippets Party – Join us and create Python snippets!\
* Fri 5th March 2010 – 21.00 – 23.00UTC – Hacking Party – Work on your app together, ask/answer questions and have fun together!

This is an awesome opportunity to get together and make something fun. So, I have a challenge for you good folks: before we start next week, think of a fun app to focus on writing next week. Pick something that will do something useful for you and something not too large and comprehensive (e.g. don’t pick a word processor or spreadsheet!).

## The Place To Be: #ubuntu-app-devel

As part of building an awesome community and platform for *opportunistic developers*, I created `#ubuntu-app-devel` on Freenode and we have a great group of enthusiastic developers in there who can answer your questions and help you get started. Join us and join in hte fun!

Two ‘At Home’ Shows Coming Up

Two ‘At Home’ Shows Coming Up

On **Wednesday 24th Feb at 11am / 2pm EST / 7pm UTC/GMT** I will be giving the talk that I delivered this past weekend at SCALE in LA in which I talk about the work going on in the Ubuntu community to embrace *Opportunistic Developers* in writing awesome free software apps. If you are curious about all this blathering about *opportunistic developers* from me, be sure to tune in and check it out. Tune in [here](https://www.ustream.tv/channel/at-home-with-jono-bacon).

On **Friday 26th Feb at 11am / 2pm EST / 7pm UTC/GMT** I will be doing a full hour devoted to Q+A on Ubuntu, community management and whatever else you want to discuss. Tune in [here](https://www.ustream.tv/channel/at-home-with-jono-bacon).

I hope to see you all there!

Awesome Ubuntu Software Center Updates

Awesome Ubuntu Software Center Updates

Two awesome new features that the Ubuntu Software Center recently got in Lucid:

* **Featured Category** – there is a special top-level category for highly recommended applications that we don’t have room for on the disc. This includes the GIMP and Abiword right now. We will add more throughout the release cycle.
* **Personal Package Archives** – PPAs are now visible inside the software center. This is another step closer to making *opportunistic development* rocking in Ubuntu. 🙂

You should all hunt down `mvo` on Freenode IRC and tell him he is awesome.