Archive for the ‘Opportunistic Developers’ Category
Posted on March 6, 2010 - by jono
The Grand App Writing Challenge Submissions!
As many of you will be aware, this week Ubuntu Opportunistic Developer Week took part, and the week has been wonderful so far. There has been so much excitement and interest, and I have been tickled pink at just how many people have been telling me that the week has re-invigorated their interest or given them a new passion for writing fun and useful apps. Ubuntu is an awesome platform for making these apps, and it has been a real pleasure to see people getting so fired up about using it.
Before the week kicked off, I offered a fun little challenge called The Grand App Writing Challenge. With a week of rocking content ahead designed to help build a fun and thriving community who like to write apps that scratch their itches, I put forward the challenge for you good people to write some apps and see how far you get this week, and I will blog your progress at the end of the week. Well, while we still have a few sessions yet to go, it is Friday and I was keen to show off some progress!
With which, I present the wonderful submissions from some of our attendees this week!
HardwareMap

Chris Couzens wrote in and shared his project HardwareMap:
My program is called HardwareMap. It lists computers and services on the local network (Avahi) and hardware connected to your computer (HAL). When you click a device, it tells you properties of the device and lets you perform common actions for that device. For example, an ftp share has a button to open in Nautilus, a webcam has a button to open in Cheese and an inline preview of the webcam.
More Info
- See the Launchpad project
- See more screenshots
- See the PPA
Blogite

Andy Breiner writes in about Blogite
I created a python program called Blogite. It is suppose to be similar to Gwibber but for RSS feeds. It pulls in the RSS feeds, but I need a better way of displaying the feeds. I want to add categories so rss feeds can be easily separated and shown. It is still slightly rough around the edges. I also want to add pictures so it can show the picture right next to the post similar to Gwibber.
Fantastic! This looks like it has bags of potential!
More Info
- See the Launchpad project
- See more information
- No PPA yet, but in the works
Rename Them All

Owais Lone wrote in to share an application which can be described pretty easily:
A simple Batch Renamer; That’s it. Even having a screenshot of my app on jono@home would be something I’ll cheer about for a couple of months at least.
Consider it done, Owais.
Owais made great progress this week, so check out the project!
More Info
- See the Launchpad project
- See more screenshots
- See the PPA
sshsplit

Martin Eve writes in with his first app, in the form of sshsplit:
I recently saw your Great App Writing contest post and decided, over the weekend, to knock something up. This is my first effort at using Python, having previously had quite a lot of experience in C# and .NET. My program is called sshsplit. It multiplexes ssh dynamic tunnels. An example perhaps serves better. Normally you would: ssh -D 54321 remote-host – to get a tunnel on 127.0.0.1:54321 that goes through remote-host. However, if you are using a network-resource-intensive application (torrent clients for example), this single tunnel will not suffice for, say, 1000 concurrent connections. sshsplit launches several instances of the ssh dynamic tunnel and then load balances between them. If no arguments are passed, sshsplit launches the configuration GUI. Otherwise, for help, run: sshsplit -h. sshsplit can also be configured to use any binary you would like
Great work, Martin! It looks like you made fantastic progress!
More Info
- See the Launchpad project
- Anotherscreenshot
- See the PPA
Uninstaller for Adobe® AIR® 1.0.0

Bernard Opic writes in with his very first app too:
Uninstaller for Adobe AIR is an easy solution for uninstalling Adobe AIR applications. When installing an AIR application it is possible to first save the installation program file (. air). This file will then allow to install but also to uninstall the application, provided that the AIR engine is installed and functional. If you install an AIR application from its source without saving its installation program file, or if the AIR engine is not available, uninstalling an AIR application can be difficult on a GNU/Linux system because it requires the use of system commands via a shell. Thanks to Uninstaller for Adobe AIR it becomes very easy to uninstall an AIR application since it suffices to choose it from a list of installed applications and click on an Uninstall button. Uninstaller for Adobe AIR is a free software under GPL version 3 license, designed to compatible with the GNU/Linux Ubuntu distribution and with the GNOME and KDE window managers.
Great work, Bernard!
More Info
- See the homepage
Splatter

Anirudh writes in with another fun and useful app in the form of *Splatter:
I’m an (opportunistic
) student developer, and wanted a better way to collaborate on bugs and watch issues on some of my favorite projects. However I hated having to go through bugzilla’s overwhelmingly complex interface just to check up for new comments and changes. If I turned on email notification I’d be hit with a barrage of emails which I’m not too fond of. I felt it was time for things to change. So over the past one and a half weeks, I wrote Splatter – a gnome app to keep track of bugs. It evolved from a very simple concept of being a frontend to a bugtracker to becoming a tool for collaboration on tasks with fellow developers.
Great work, Anirudh!
More Info
- See more screenshots and homepage
- See the PPA
Ain’t Easy Project/Goal Manager
Andrew Sellers shares with us his work on Ain’t Easy:
For those of us currently deluged with work, stretching from one week to another, or simply those who work on many different things, tracking down when an event is happening in nigh impossible. Not just that, sometimes goals will simply get buried under a mass of other projects. It just ain’t easy to keep up with all of it. Some things aren’t fit for a calendar, while others just don’t work well with to-do lists. Finally sometimes you have to associate text or documents with an event, how are you going to do that? That’s where Ain’t Easy comes in. Straight from Alabama, this application will take as many goals or projects as you can throw at it, throw your links and text at it, it’ll just save it and let you launch it a simple double-click of the mouse.
I look forward to seeing more updates, Andrew!
More Info
- See more information
- Third party Debian package
The Results
In my original blog post I offered to send three of the projects an Ubuntu t-shirt. I was going to pick three fave projects, but I think all the submissions are great, so I going to send you all a t-shirt. Thanks all for taking part!
Posted on March 5, 2010 - by jono
This Is Exactly What We Want
A user called Eric left a comment on my Ubuntu Opportunistic Developer Week and Python Snippets Day blog entry which I felt really needs highlighting:
Thank you and the entire Canonical team for putting the Opportunistic Developer Week together!
I’ve been stuck doing heavy, back end enterprise Java programming for the past few years. My interest in programming slowly fizzled out.
On a whim, I decided to check out quickly, acire and the learning materials your team put together. PyGTK erased all the bad taste in my mouth from the Swing applications I’ve coded.
I haven’t had this much fun programming in a long time! Thanks so much!
This is exactly what I want us to do as community, to help unlock creativity in people’s minds and lower the barrier between idea and implementation. Thanks, Eric, you really put a smile on my face with that one.
Posted on March 4, 2010 - by jono
Ubuntu Opportunistic Developer Week and Python Snippets Day
Ubuntu Opportunistic Developer Week day 4 kicks off and we have some incredible events today:
- 5pm UTC – Hot rodding your app for translations support – David Planella
- 6pm UTC – Learning through examples with Acire and Python-Snippets – Jono Bacon
- 7pm UTC – Write Beautiful Code (and Maintain it Beautifully) – rockstar
- 8pm UTC – Speed your development with quickly.widgets – Rick Spencer
- 9pm UTC onwards – Snippets Party – Join us in
#ubuntu-app-develand create Python snippets to share with other people – see this page for details of how to get involved!
It is recommended that you enjoy the week in Lernid. You can find out more details of how to install Lernid right here. Don’t want to use Lernid? No worries, just pop over to #ubuntu-classroom and #ubuntu-classroom-chat to join in the fun. Don’t forget that #ubuntu-app-devel is the place to ask questions about general development on Ubuntu.
Join the snippets party!
Today is a special day this week: in addition to providing some great content to help people get started writing apps on Ubuntu, we are also keen to continue growing our wonderful library of python-snippets which is viewed with a program I wrote called Acire. This library of snippets provides a range of examples that you can run, play with, modify and merge into your programs. So many of us learn by doing, and the more snippets we have the easier it is the learn from a diverse range of topics!
We have two events today I am keen to encourage you to join. First I will be delivering a session on the python snippets project:
- 6pm UTC – Learning through examples with Acire and Python-Snippets – Jono Bacon
In the session I will explain how the project came about, it’s current progress and where we are going. We will then have a fun snippets party a little later:
- 9pm UTC onwards – Snippets Party – Join us in
#ubuntu-app-develand create Python snippets to share with other people – see this page for details of how to get involved!
The snippets party is simple: just join #ubuntu-app-devel on freenode and join us to write a bunch of snippets and contribute them to python-snippets. Today we have 104 snippets already in the library: I would love to see us get that to over 150 today. Come and join us!
Contributing snippets is simple: just click here to find out more!
Posted on March 3, 2010 - by jono
Ubuntu Opportunistic Developer Week Day 3 Kicks Off In An hour
Just a quick note to let you all know that Ubuntu Opportunistic Developer Week day 3 kicks off in an hour!
Here is the order of events for today:
- 5pm UTC – Creating stunning interfaces with Cairo – Laszlo Pandy
- 6pm UTC – What’s new in Quickly 0.4 – Didier Roche
- 7pm UTC – Create games with PyGame – Rick Spencer
- 8pm UTC – SHOWCASE: Photobomb – Rick Spencer
- 9pm UTC onwards – Hacking party in
#ubuntu-app-develon 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. You can find out more details of how to install Lernid right here. Don’t want to use Lernid? No worries, just pop over to #ubuntu-classroom and #ubuntu-classroom-chat to join in the fun. Don’t forget that #ubuntu-app-devel is the place to ask questions about general development on Ubuntu.
Posted on March 2, 2010 - by jono
Ubuntu Opportunistic Developer Week Day 2 Kicks Off In An Hour
Just a quick note to let you all know that Ubuntu Opportunistic Developer Week day 2 kicks off in an hour!
Here is the order of events for today:
- 4pm UTC – Gooey Graphics with GooCanvas – Rick Spencer
- 5pm UTC – Writing a Rhythmbox plug-in – Stuart Langridge
- 6pm UTC – Microblog from your app with the Gwibber API – Ken VanDine
- 7pm UTC – SHOWCASE: Gwibber – Ken Vandine
- 8pm UTC – Building multimedia into your app with GStreamer – Laszlo Pandy
- 9pm UTC onwards – Hacking parts in
#ubuntu-app-develon 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. You can find out more details of how to install Lernid right here. Don’t want to use Lernid? No worries, just pop over to #ubuntu-classroom and #ubuntu-classroom-chat to join in the fun. Don’t forget that #ubuntu-app-devel is the place to ask questions about general development on Ubuntu.
Posted on March 1, 2010 - by jono
Ubuntu Opportunistic Developer Week Kicks Off In An Hour
Just a quick note to let you all know that Ubuntu Opportunistic Developer Week 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-develon 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. You can find out more details of how to install Lernid right here. Don’t want to use Lernid? No worries, just pop over to #ubuntu-classroom and #ubuntu-classroom-chat to join in the fun.
Posted on March 1, 2010 - by jono
Ubuntu Opportunistic Developer Week This Week

Well, folks, this week Ubuntu Opportunistic Developer Week 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. You can find out more details of how to install Lernid right here. 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!
Posted on February 27, 2010 - by jono
Fun Little Acire Story
With the new release of Acire just out 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.
Posted on February 26, 2010 - by jono
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!
- 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 <your@emailaddress.com>]
# [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 <jono@ubuntu.com>]
# [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:~<your launchpad username>/python-snippets/<name of your branch>
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.
Posted on February 25, 2010 - by jono
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 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. 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 <yourprojectname>
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!







