ARTICLE

Ubuntu And The Opportunistic Programmer

by | Mon 19 Oct 2009

Today I wanted to talk a little about how Ubuntu and its underlying platform comprised of many upstream components is opening up tremendous possibilities for the *opportunistic programmer*.

I am by definition an *opportunistic programmer*, and many Open Source folks are too. As an example, I bought an Amazon Kindle and wanted a simple GUI front-end for it. I had an itch and wanted to scratch it, so I [wrote a little tool](https://archivedblog.jonobacon.com/2009/09/02/hacking-on-flarebook/) and shared it with the community. In the past I have also written tools to combine slides and audio from a talk into a Flash presentation, a front-end for an iRiver audio player and other things. Whether these tools, a game, a front-end for posting blog entries, a place to browse restaurants, a guitar tuner, or anything else, *opportunistic programmers* tend to write small tools that satisfy their needs and share them. This is one of the many reasons I *love* free software: *opportunistic programmers* are *enabled*.

In Ubuntu we ship a collection of upstream technologies and frameworks that offer a phenomenal platform for application development. These include tools to build rich graphical desktop applications and support for managing devices, networking, complex multimedia creation/playback/streaming, scalable vector graphics, accessibility, translations and more. An awesome platform, yes, and do you know what makes it even more awesome? The whole shebang can be utilized using the simple, elegant and extensible high-level [Python](https://www.python.org/) language.

Even with the power and glory that is Python, it was still *at best a faff and at worst a nightmare* to get up and running. Not only is the programmer faced with the obvious need to learn the platform, but they are faced with all the other fluff such as managing builds, version control, packaging, coordinating contributions, applying appropriate licensing and more. Many moons ago when I started to learn the platform, it felt like all the bits were there, but that some magic was needed to know how they all connected together.

Fortunately, this is an area which is continuing to get easier and easier. Not only are upstream GNOME, PyGTK, GStreamer, Cairo, Glade etc making the platform much easier to work with, but in the Ubuntu project we are really keen to get *opportunistic programmers* up and running ASAP. One of the areas that this has manifested itself is in [Quickly](https://edge.launchpad.net/quickly); a tool that makes getting a new desktop Python application up and running really easily.

Quickly provides a devilishly simple means to generate an app, edit the code, change Glade files, commit to a Launchpad project, make releases and package and release your application. It was created by *Rick Spencer* and *Didier Roche*. Quickly is a great way to harness this phenomenal development platform built right into Ubuntu. Didier, being the absolutely rockstar that he is, wrote a series of tutorials about how to get started with Quickly here:

* [Part 1](https://blog.didrocks.fr/index.php/post/Build-your-application-quickly-with-Quickly%3A-part1)
* [Part 2](https://blog.didrocks.fr/index.php/post/Build-your-application-quickly-with-Quickly%3A-Inside-Quickly-part2)
* [Part 3](https://blog.didrocks.fr/index.php/post/Build-your-application-quickly-with-Quickly%3A-Inside-Quickly-part-3)
* [Part 4](https://blog.didrocks.fr/index.php/post/Build-your-application-quickly-with-Quickly%3A-Inside-Quickly-part-4)
* [Part 5](https://blog.didrocks.fr/index.php/post/Build-your-application-quickly-with-Quickly%3A-Inside-Quickly-part-5)
* [Part 6](https://blog.didrocks.fr/index.php/post/Build-your-application-quickly-with-Quickly%3A-Inside-Quickly-part-6)
* [Part 7](https://blog.didrocks.fr/index.php/post/Build-your-application-quickly-with-Quickly%3A-Inside-Quickly-part-7)
* [Part 8](https://blog.didrocks.fr/index.php/post/Build-your-application-quickly-with-Quickly%3A-Inside-Quickly-part-8)
* [Part 9](https://blog.didrocks.fr/index.php/post/Build-your-application-quickly-with-Quickly%3A-Inside-Quickly-part-9)

While Quickly is incredible in providing a great means of getting you up and running with this platform, there are many other tools which make writing any kind of application you want to easier. This includes [collaborating on your projects in Launchpad](https://launchpad.net/+tour/index), using [bug tracking](https://launchpad.net/+tour/bugs), managing [specifications](https://launchpad.net/+tour/feature-tracking), hosting [code and merging in contributions](https://launchpad.net/+tour/branch-hosting-tracking), [working on translations](https://launchpad.net/+tour/translation), and [providing a place to publish your releases to Ubuntu](https://launchpad.net/+tour/ppa).

Not only does the up-coming Ubuntu 9.10 Karmic Koala, released on Thu 29th October 2009 bring this rich platform, as well as Quickly, but it also bring the new *Ubuntu Software Center* which provides a refreshed means of browsing and installing applications. My hope is that we will continue to leverage this rock-solid platform and be able to have *opportunistic programmers* everywhere be able to get their apps in front of Ubuntu users, in much the same way the iPhone and Android Market Place does so.

I would love to encourage you all to run through the Quickly tutorial above and blog and share about your experience. If you make a cool new app, do let me know!

An invitation-only accelerator that develops industry-leading community engagement and growth via personalized training, coaching, and accountability...all tailored to your company's needs.

Want to read some more?

Happy Holidays

Happy Holidays

Just a quick note to wish all of you a happy, restful, and peaceful holidays, however and whoever you spend it with. Take care, folks, and I look forward to seeing you in 2015!

The Impact of One Person

The Impact of One Person

I am 35 years old and *people* never cease to surprise me. My trip home from Los Angeles today was a good example of this. It was a tortuous affair that should have been a quick hop from LA to Oakland, popping on BArt, and then getting home for a cup of tea and an...

Feedback Requested: Great Examples of Community

Feedback Requested: Great Examples of Community

Folks, I need to ask for some help. Like many, I have some go-to examples of great communities. This includes Wikipedia, OpenStreetmap, Ubuntu, Debian, Linux, and others. Many of these are software related, many of them are Open Source. I would like to ask your...

Ubuntu Governance Reboot: Five Proposals

Ubuntu Governance Reboot: Five Proposals

Sorry, this is *long*, but hang in there. A little while back I wrote [a blog post](https://archivedblog.jonobacon.com/2014/11/14/ubuntu-governance-reboot/) that seemed to inspire some people and ruffle the feathers of some others. It was designed as a...

Ubuntu Governance: Reboot?

Ubuntu Governance: Reboot?

For many years Ubuntu has had a comprehensive governance structure. At the top of the tree are the Community Council (community policy) and the Technical Board (technical policy). Below those boards are sub-councils such as the IRC, Forum, and LoCo councils, and...

Dealing With Disrespect: The Video

Dealing With Disrespect: The Video

A while back I wrote and released a free e-book called [Dealing With Disrespect](https://www.dealingwithdisrespect.com/). It is a book that provides a short, simple to read, free guide for handling personalized, mean-spirited, disrespectful, and in some cases,...