Will >> Will's blog

purpose: Will Kahn-Greene's blog of Miro, PyBlosxom, Python, GNU/Linux, random content, PyBlosxom, Miro, and other projects mixed in there ad hoc, half-baked, and with a twist of lemon

Thu, 10 May 2012

Letting it run out

A couple of years ago I applied and was granted membership into the GNOME Foundation. At the time, I was helping out with GNOME Journal and running GNOME Miro Community.

Since then, GNOME Miro Community fizzled out and stopped because it didn't find a compelling reason to exist (wasn't interesting for marketing, didn't do a good job of indexing conference video, ...). GNOME Journal fizzled too and I stopped working on it.

Also, in September, I left PCF where I was working on Miro which uses a lot of GNOME technologies.

Given that, I decided not to renew my membership. I'm a little bummed, but I'm not doing anything. I do wish them well. I will miss the periodic anti-FSF fireworks.

Thu, 01 Apr 2010

Membership accepted!

I applied to be a member of the GNOME Foundation two days ago and today I was accepted. I'm excited and happy that I was accepted. I hope that my work on GNOME Miro Community helps the greater GNOME community.

Wed, 31 Mar 2010

GNOME Miro Community status - 3/31/2010

The article I wrote for GNOME Journal about GNOME Miro Community went live yesterday. You can read it here. It's a great introduction to why I created GNOME Miro Community, what can be done with it, and how you can help. Many thanks to Sumana and Paul for their help with getting it published!

While working on that article and the screenshot, I fixed a few templates and some of the CSS (with the help of Parker from OpenHatch). There should be RSS feed links on all of the listing pages now. Additionally, I did a pass through all the videos and removed ones that have disappeared.

Sumana pointed out that in order to submit a video to the site, you had to be logged in. That was a mistake--I really apologize. In order for this site to be useful to as many people as possible, it's important not to have barriers to video submission like that. If you balked at having to sign in while submitting a video, please try again.

There are two kinds of videos I'm really interested in adding to the site:

  1. up-to-date videos showing GNOME Shell, GNOME Activity Journal, and Zeitgeist that show new functionality added recently and specify which version is being demonstrated,
  2. howto, tutorial and screencast videos for important things that need more of a spotlight; for example, accessibility

If you have anything that fills these needs, submit a video or send me an email!

Thu, 04 Feb 2010

Thoughts on crowdsourcing development

Today I read You can't crowdsource software. The title sums up what it's about.

I've had this experience with Miro. We occassionally get patches from non-PCF people but most of the work is done by PCF developers. We've spent a lot of time and effort over the last few years on getting more code contributors and reducing the barriers to entry. We haven't had much success.

However, there's a lot of other "stuff" that goes into developing an application and the article only focuses on code. Some of this "stuff" can be successfully crowdsourced without a lot of effort. For example, Miro crowdsources all of our strings translation work through Launchpad.

I work on another project called PyBlosxom. We have a core group of developers (right now this is me) who do the bulk of the core code work. I do some plugin work, but the bulk of the plugin work is done by users of PyBlosxom many of whom have never touched the core code. For PyBlosxom, plugin development is crowdsourced.

The article suggests that it's a waste of time to help bring new contributors come up to speed and contribute because they often don't contribute much. That conclusion really concerns me. How can we get more people helping out if we're not working on getting people to help out?

Jono Bacon wrote an article titled Project Awesome Opportunity which talks about a few projects that are reducing the barriers to contributing and making it a lot easier. It's very Launchpad-centric, though.

OpenHatch is a startup working on building the next generation of contributors and connecting contributors to projects that need help. They're wrestling with how to effectively fix these problems, but without tying the fix to a project development silo (e.g. Launchpad, GitHub, ...). I think that's really important.

I think systems like these will reduce the effort in getting contributors and make it easier to crowdsource code contribution.

And if you, dear reader, are looking for a project to help out on that's written in Python and need someone to mentor you, let me know.

February 5th, 2010: I should clarify I think the article is fine. I don't think the conclusion that code contribution doesn't crowdsource well is poorly formed or anything like that. Just that the implications suck.

Mon, 25 Jan 2010

Handling media keys in GNOME with Python

Spent a while figuring out how to get Miro to handle media keys in Gnome. My current understanding (and this could be entirely wrong) is that as of 2.18, Gnome handles the multimedia keys. In order for your application to respond to multimedia keys, you have to connect to the signal through dbus.

My biggest problem is that my web searching revealed a lot of bugs, but no documentation. I did finally find Handling multimedia keys in GNOME 2.18 and then worked out the rest. I still have no clue where to find the documentation for it.

Here's what I got working:

import logging
import dbus

from miro import app

class MediaKeyHandler(object):
    def __init__(self, window):
        self.app = "Miro"
        self.bus = dbus.Bus(dbus.Bus.TYPE_SESSION)
        self.bus_object = self.bus.get_object(
            'org.gnome.SettingsDaemon', '/org/gnome/SettingsDaemon/MediaKeys')

        self.bus_object.GrabMediaPlayerKeys(
            self.app, 0, dbus_interface='org.gnome.SettingsDaemon.MediaKeys')

        self.bus_object.connect_to_signal(
            'MediaPlayerKeyPressed', self.handle_mediakey)

        window.connect("focus-in-event", self.on_window_focus)

    def handle_mediakey(self, application, *mmkeys):
        if application != self.app:
            return
        for key in mmkeys:
            if key == "Play":
                app.widgetapp.on_play_clicked()
            elif key == "Stop":
                app.widgetapp.on_stop_clicked()
            elif key == "Next":
                app.widgetapp.on_forward_clicked()
            elif key == "Previous":
                app.widgetapp.on_previous_clicked()

    def on_window_focus(self, window):
        self.bus_object.GrabMediaPlayerKeys(
            self.app, 0, dbus_interface='org.gnome.SettingsDaemon.MediaKeys')
        return False

def get_media_key_handler(window):
    """
    Creates and returns a MediaKeyHandler or returns None if such a thing
    is not available on this platform.

    :param window: a Gtk.Window instance
    """
    try:
        return MediaKeyHandler(window)
    except dbus.DBusException:
        logging.exception("cannot load MediaKeyHandler")

If you see problems with this, let me know so I can ammend the code.

November 5th, 2010 - Fixed a bug in the code.
November 9th, 2010 - Tweaked the code to re-assert key handling on focus.

Thu, 12 Nov 2009

gnome.mirocommunity.org

A little over a week ago, I started Gnome Miro Community. I'm a Miro developer and we use a ton of Gnome stuff in the application. The site will index Gnome related videos from around the Internet. I hope it'll aid Gnome development.

I started a few categories: gnome-shell, gstreamer, and GUADEC 2009. I'll be adding to these going forward.

One of the big things that I did was to bulk load the GUADEC 2009 videos into Gnome MC. I built an RSS feed, populated it with descriptions of the talks from the Gran Canaria Desktop Summit wiki pages, and pulled it all into Gnome MC. Today I pulled down the videos and generated thumbnails for everything and pushed that up, too. Took about 5 hours in total, but the data is much more useful now.

Gnome MC will do searches every night for new material out there. I'll keep tabs on this queue. If you know of videos that haven't been added either let me know or submit them through the site.

I'm really excited about this site and I'll do my best to keep it going and make it as useful as possible. I hope it helps to make Gnome as awesome as it can be!