Stepping Down From FLOSSWeekly

Stepping Down From FLOSSWeekly

Some time back I was asked on to [FLOSSWeekly](https://twit.tv/FLOSS) to do an interview about Ubuntu, Community, and Severed Fifth. The interview was fun and seemed to go well, so much so that they asked me to join them as a co-presenter on the show. I then joined the show on a mostly weekly basis, providing more of a Linux perspective and what I hoped were some fairly to-the-point questions for our guests. 🙂

Well, things are changing a little in the show and it is moving to a different timeslot which will be in my morning, and my mornings are full to the brim with conference calls most weeks. As such, unfortunately I will be saying my goodbyes to FLOSSWeekly.

I just want to say a huge thank-you to Randal, Leo, Dane, Colleen, all of our guests, and all of the wonderful listeners who have been so supportive and welcoming of me to the show. It has been a blast and I wish Randal and his new co-host the best with FLOSSWeekly!

Lucid Release Party In San Francisco

Lucid Release Party In San Francisco

Do you live in or near the Bay Area, California? Would you like to come and meet some fun Ubuntu folks and celebrate the Ubuntu 10.04 Lucid Lynx? Simple! Come to the [Ubuntu California Lucid Release Party](https://loco.ubuntu.com/events/team/93/detail/) at the [Thirsty Bear Brewing Co](https://www.thirstybear.com/) in San Francisco on **Thu 29th April 2010** at **7.30pm**!

The format is simple: great venue, great people, great drinks, great release! Just pop along, hang out and have fun.

All the details are [here](https://loco.ubuntu.com/events/team/93/detail/) – you can also register your attendance there. Hope to see you at the party!

Ubuntu Release Party Videocast Soon!

Ubuntu Release Party Videocast Soon!

Just a quick update: at **11am Pacific / 2pm Eastern / 6pm UTC Today*, I will be doing my [At Home With Jono Bacon](https://www.ustream.tv/channel/at-home-with-jono-bacon) videocast and talking about how to schedule a release party for Lucid. I will also be doing my usual Q+A session.

[Watch it live here](https://www.ustream.tv/channel/at-home-with-jono-bacon)!

Lucid Release Party In San Francisco

Looking For An Ubuntu Cloud Community Liaison

I am pleased to announce that I am looking for an additional full-time paid role on my team at Canonical, working for me and working alongside David Planella, Jorge Castro and Daniel Holbach. This is an incredibly exciting opportunity to build, energize and develop a cloud-focused community as part of the Ubuntu landscape and beyond. I am looking for a motivated, technically savvy, inspiring and hard-working addition to the team, and you think that person is you, I would love you to apply!

Here is the job description:

—-
## Ubuntu Cloud Community Liaison

* **Job Location:** Your home (given appropriate facilities including broadband Internet)
* **Job Summary:** To build, maintain and develop a cohesive, productive and effective Ubuntu cloud community.
* **Reports To:** Community Team Manager

### Key responsibilities

* Build and maintain a strong cloud community and act as a point of reference for this community in continuing its growth and opportunities whilst resolving issues.
* Build and maintain web-base software to support this community, produce content for these systems and build community participation to generate and optimize the system and its content for and from the community.
* Develop and refine better working practises to ease and improve how external projects interact with the Ubuntu Cloud platform and how updates, revisions and changes flow between Ubuntu and these projects, and vice versa.
* Work to advise and improve Ubuntu as a development and source platform for the cloud.
* Liaise with the Ubuntu Platform Team to better align the feature direction of the Ubuntu Cloud community.
* Regularly acquire and evaluate feedback from the community and our partners to help improve the Ubuntu Cloud and its development process.
* Be responsive and sensitive to the concerns, ambitions and direction of the community, our cloud upstreams and business units inside Canonical.

### Required skills and experience

* Strong networking and social networking skills, good relationship building abilities
* Good web development experience in Python language
* Experience of working with Community Open Source projects
* Technical experience with using cloud-related technology such as Amazon Web Services, including EC2, S3 and image manipulation
* Experience of using Ubuntu, the cloud and the Open Source and upstream/downstream development process.
* Strong public speaking skills
* Strong English language communication skills
* Comfortable with online communication and collaboration such as mailing lists, IRC, wiki
* Ability to be productive in a globally distributed team through self-discipline and self-motivation, delivering according to a schedule.

—–

If you are interested in applying, please don’t email me directly, but instead [go here and click the apply link at the bottom](https://webapps.ubuntu.com/employment/canonical_UCCL/). Good luck!

Stepping Down From FLOSSWeekly

More Python Snippets

While I have been away this week on vacation there were 16 new submissions with new snippets! I utterly flabbergasted at how many of you good folks are contributing snippets.

I just reviewed all of these submissions and we now have a bunch of new snippets, including:

* WebKit examples and a fantastic snippet for theming a table dynamically.
* Handling CSV files.
* A slew of new DesktopCouch snippets.
* A bunch of new Clutter snippets.
* A snippet that reads in OpenOffice.org spreadsheets (.ods files).
* We also had some new categories started with new snippets for the `inspect` and `gconf` modules.

Thanks everyone for your rocking work! We now have **191** snippets in the library! 🙂

Want to contribute? [Go and find out how!](https://aciresnippets.wordpress.com/contribute/)

PyJunior: Call For Documentation Help!

PyJunior: Call For Documentation Help!

Just a quick note: the [PyJunior](https://archivedblog.jonobacon.com/2010/04/08/making-programming-easier-for-kids-with-pyjunior/) code is [up on Launchpad](https://code.edge.launchpad.net/pyjunior). Please remember: I wrote this in about two hours and haven’t had any time to clean it up. So, expect warts and all. 🙂

*The Open Sourcerer* [pointed](https://archivedblog.jonobacon.com/2010/04/08/making-programming-easier-for-kids-with-pyjunior/#comment-140696) me at [Snake Wrangling for Kids](https://www.briggs.net.nz/log/writing/snake-wrangling-for-kids/) as a great kid-friendly guide for learning Python. My dream now is that when a kid clicks the big *Help* button in *PyJunior*, that the book pops up in native GNOME help format. Problem is: I have absolutely no idea how to convert *Snake Wrangling for Kids* (which is available in LaTeX and PDF format) into this help format, and don’t really have any time to contribute to this either.

So, I am looking for help. *PyJunior* provides a simple and effective of way of playing with Python for kids, but we *really* need the documentation to make this story rock. Is there anyone out there who would like to work on this and make clicking that *Help* button a fantastic experience for kids interested in learning programming? I really hope so: this could be a wonderful learning tool for ankle-biters everywhere. 🙂

If you are interested in helping, do let me know in the comments on this blog entry and we can talk more. If you just want to crack on and make the docs love happen, do feel free to go ahead and submit a merge proposal when you have something.

To do those who help, thanks *so much* in advance! 🙂

Making Programming Easier For Kids With PyJunior

Making Programming Easier For Kids With PyJunior

This week I am in Mexico on vacation with my wife and it has been wonderful getting out and about, catching some rays and and chillin’ by the pool. Mexico is a wonderful place and the people here are just incredible. It has been a wonderful week.

Yesterday I had a break from the sun and a few hours spare and wrote a little program I have been wanting to write for a while. First though, a little back story.

A little while back, Aq and I did a [Shot Of Jaq](https://shotofjaq.org/) shot about [how back in the good ol’ days computers used to make programming more accessible to kids](https://shotofjaq.org/2010/03/the-new-hacker-generation/). The basic gist of the shot was that when you bought a Commodore 64 or Spectrum, access to the BASIC language was up-front, and your computer came with a manual that taught you how to write programs in BASIC. This was great for kids and others who wanted to explore their computers. It introduced them to programming, and taught them that you could make the computer do all manner of different things if you learned this simple language, while all the time teaching them about logic and semantics. This was an incredible thrill for me when I was such an ankle-biter: I felt this tremendous liberation that I could write any kind of program I wanted. In a nutshell, it sowed the seeds of *opportunistic development* in my mind.

The *Shot Of Jaq* shot really got me thinking about how accessible to programming computers are for kids today. I did a quick scoot around to research what software was available, and there seemed to be limited options that would be suitable for young kids. As such, I decided that this could be a fun little project for me blow a few hours of free time on. And thus…*PyJunior* was born.

PyJunior is a little program that has a very focused goal: to provide a simple environment for kids to play with Python. Python is a beautiful language and one ideally suited for kids and others to get started with programming. My goal was to make something incredibly simple and very focused on simple programming tasks. My intention here is not to build a full programming environment with access to Glade, PyGTK documentation and testing tools: that is simply too much. It was instead to allow a kid to *write instructions in a program, press a button and watch it work*.

As part of focusing my design on simplicity, I had a few core concepts in mind when writing *PyJunior*:

* No complex projects – multi-file projects are confusing and beyond the scope of *PyJunior*. The focus here is on single programs.
* No saving – I don’t want kids to have to think about saving when writing their programs. They should focus on writing code and running it, not remembering to save.
* No concept of files – when learning about programming, each unnecessary step is likely to confuse them and lose their interest. They should not need to think about creating a `.py` file and executing it, and instead just have the concept of creating and loading programs.
* Lean user interface – too many buttons and menus are likely to confuse the user, so the interface needs to be lean and focused on it’s core functions.
* Kid-friendly user interface – kids that are young are new to using mice, so the buttons need to be nice and big and clickable. The buttons also need to be discoverable: we can’t assume they know what the icons mean, so they need to be labeled.

Let me show how it works. This is the main interface:

The interface is simple. There is an area where you can type in code in at the top (which is syntax highlighted to make it easier to understand), and below it is where the output of the program is displayed. At the top is a toolbar that I have deliberately made nice and big and easy to click for kids who are new to using a mouse. When they want to run the code they have typed in, they click the *Run* button. This will automatically save the file, run it and display the output in the black area at the bottom.

The interface makes teaching kids how to write programs easy: they write in the instructions, press the *Run* button and see the results of their instructions in the black area at the bottom.

If the user wants to create or load a new program, they click on the *My Programs* button and see this:

In designing *PyJunior*, I was conscious to make a one stop shop for dealing with new and existing programs: I didn’t want to have separate dialog boxes for new and existing programs as I felt his would clutter the interface (I want to keep that toolbar lean) and confuse the user. I was also really keen to not simply use a file picker for creating and loading programs: kids are likely to get confused by it and pick the wrong files, accidentally delete things etc. As such, I decided to put the program creation and loading in one dialog, and make it as simple as possible.

To create a new program, I wanted to make it as simple as typing in a descriptive name for the program as opposed to a filename. When the user types this in, *PyJunior* creates the file and immediately loads it in the main editor as shown above. This will also add the program to the list of existing program that can be loaded (shown at the bottom of the *My Programs* dialog box). To load a program, a list of already created programs in shown and the user can double-click it to load it in the editor. This entire process entirely bypasses the concept of files and directories: the focus is on descriptive names that refer to progams as opposed to filenames.

…and that is pretty much it. I am pretty pleased with my few hours of hacking, and I think it provides a good base for future development. I am still on vacation so there is no code uploaded or packages built yet, but I will have this arranged soon. Before I wrap up though, I want to talk about one more thing which is *critical* to the success of *PyJunior*: the *Help* button.

I feel *PyJunior* provides a great way of getting kids started with working with programs, but it doesn’t help them learn *Python*. What we really need now is a simple set of documentation that teaches kids in a very kid-friendly way how Python works. I would ideally like the user to click on the nice big *Help* toolbar button and it shows a standard GNOME help window with a tutorial about how to use Python. This documentation needs to be written and designed for kids: it needs to be visual and easy to read, and explain core elements of Python such as variables, lists, dictionaries, input, conditional statements and loops. So this is where I would like to focus the next steps of *PyJunior*, but I really need help with this: **would anyone be interested in helping**?

Introducing the Maverick Meerkat

Introducing the Maverick Meerkat

Today [Mark announced that Ubuntu 10.10 will be the ‘Maverick Meerkat’](https://www.markshuttleworth.com/archives/336). I just wanted to re-post on my blog to spread the word. 🙂

> It’s time to put our heads together to envision “the perfect 10?.

> This is a time of great innovation and change in the Linux world, with major new initiatives from powerful groups bringing lots of new ideas, new energy and new code. Thanks to the combined efforts of Google, Intel, IBM, Canonical, Red Hat, Oracle, Cisco, ARM, many other companies, Debian and other projects, a hundred startups and tens of thousands of professional and inspired contributors, the open source ecosystem continues to accelerate. We need to bring the best of all of that work into focus and into the archive. For millions of users, Ubuntu represents what Free Software can do out of the box for them. We owe it to everybody who works on Free Software to make that a great experience.

> At the Ubuntu Developer Summit, in May in Belgium, we’ll have a new design track, and a “cloud and server” track, reflecting some major focal points in 2010. They will complement our ongoing work on community, desktop, kernel, quality assurance, foundations and mobile.

> Our new theme is “Light”, and the next cycle will embrace that at many levels. We have a continued interest in netbooks, and we’ll revamp the Ubuntu Netbook Edition user interface. As computers become lighter they become more mobile, and we’ll work to keep people connected, all day, everywhere. We’ll embrace the web, aiming for the lightest, fastest web experience on any platform. The fastest boot, the fastest network connect, the fastest browser. Our goal is to ensure that UNE is far and away the best desktop OS for a netbook, both for consumers and power users.

> On the other end of the spectrum, we’ll be lightening the burden of enterprise deployment with our emphasis on hybrid cloud computing. Ubuntu Server is already very popular on public clouds like EC2 and Rackspace, and now that Dell supports the Ubuntu Enterprise Cloud for private cloud infrastructure, it’s possible to build workloads that run equally well in your data center or on the cloud. We’ll focus on making it even easier to build those workloads and keep them up to date, and managing the configurations of tens, or tens of thousands, of Ubuntu machines running in the cloud.

> It’s not all about work. We don’t just want to be connected to the internet, we want to be connected to each other. Social from the Start is our initiative to make the desktop a collaborative, social place. For the past five years, we’ve all been shifting more and more data into the web, to a series of accounts and networks elsewhere. Now it’s time to start to bring those social networks back into our everyday computing environment. Our addressbooks and contact lists need to be synchronized and shared, so that we have the latest information everywhere – from mobile phones to web accounts.

> So there’s a lot to do. I hope you’ll join us in shaping that work.

> **Introducing the Maverick Meerkat**

> Our mascot for 10.10 is the Maverick Meerkat.

> This is a time of change, and we’re not afraid to surprise people with a bold move if the opportunity for dramatic improvement presents itself. We want to put Ubuntu and free software on every single consumer PC that ships from a major manufacturer, the ultimate maverick move. We will deliver on time, but we have huge scope for innovation in what we deliver this cycle. Once we have released the LTS we have plenty of room to shake things up a little. Let’s hear the best ideas, gather the best talent, and be a little radical in how we approach the next two year major cycle.

> Meerkats are, of course, light, fast and social – everything we want in a Perfect 10. We’re booting really fast these days, but the final push remains. Changes in the toolchain may make us even faster for every application. We’re Social from the Start, but we could get even more tightly connected, and we could bring social features into even more applications. Meerkats are family-oriented, and we aspire to having Ubuntu being the safe and efficient solution for all the family netbooks. They are also clever – meerkats teach one another new skills. And that’s what makes this such a great community.

> **Here’s looking at the Lynx**

> Lucid is shaping up beautifully, but there’s still a lot to be done to make it the LTS we all want. Thanks to everyone who is bringing their time, energy and expertise to bear on making it outstanding. And I’m looking forward to the release parties, the brainstorming at UDS, and further steps on our mission to bring free software to the world, on free terms.

I am hugely excited about 10.10. I think Lucid is going to be a tremendous release, and *Maverick* will be even more exciting. 🙂

Thanks Evolution Developers

Thanks Evolution Developers

Yesterday I started using [Evolution](https://projects.gnome.org/evolution/) instead of [Thunderbird 3](https://www.mozillamessaging.com/en-US/thunderbird/) in Lucid, and I justed wanted to tell the Evo team that they have done a wonderful job. I stopped using Evo due to performance problems, but many of those issues seem to have gone. I am really enjoying my use of it. I don’t think the Evo team get enough credit for their incredible and hard work on it, so I just wanted to share some public kudos. Thanks, folks!

Audio Connections In Gnome

Audio Connections In Gnome

Yesterday, Pete Graner, leader of the Ubuntu Kernel Team asked me a question:

> Is it possible to route audio from one application into another as an input. As an example, if on a video or audio chat in Empathy, is it possible to route the output of Rhythmbox or Totem into the input for Empathy so the person you are talking to can hear the music?

I had no idea, but I said I would blog it on Planet GNOME to see if this exists. And so, here is my blog. Thoughts?