Will's blog

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

[ home | blog home | recent activity | guestbook | plugins i'm using (19) ]

Thu, 11 Mar 2010

Dev call 3/10/2010 minutes

minutes

Miro 3.0 status (roadmap) (was Miro 2.6)

Miro 3.1 status (roadmap)

Miro Community 1.0 status (roadmap)

Luc:

Will:

Paul:

Janet:

bugzilla

Fri, 05 Mar 2010

About me (updated)

I'm a Miro developer employed by Participatory Culture Foundation. I wrote a post about me back in September of 2007 which covered a bit of what I do. A lot has changed since then as my role on the project has increased in scope and I've moved and various other things like that. This is an update.

What I do:

I'm involved in project management, release planning, release engineering, maintaining development infrastructure (bugzilla, git, wiki pages, documentation, build scripts, nightly builds, bogon deflector, syncing translations with Launchpad, ...), Ubuntu packaging, some testing, bug triage, user support, and I'm a liason between the Miro project and packagers and related projects.

I also do a lot of Miro development primarily on the Windows and Linux platforms. I keep track of bugs in Debian and Fedora and fix them upstream. I handle most of the incoming patches from contributors and try to help contributors where I can to make their lives easier.

I spend a ton of time on Miro work--probably between 60 and 80 hours a week.

How does telecommuting work:

I telecommute which makes it easier to work on Miro whenever I have a free moment (blessing and a curse). I work with the other Miro people through email, IRC, Bugzilla comments and weekly conference calls. We're all pretty autonomous and it works pretty well. I imagine this is in large part because we're such a small team. If the team grew, we'd have to adjust the way we do things accordingly.

Development setup:

I bought a Del 1420N with Ubuntu on it a couple of years ago and do all my development on that. I'm running a pretty stock Ubuntu Karmic with a bunch of virtual machines in Virtual Box to cover different versions of Ubuntu and Windows and also other Linux distributions. This is my primary development machine. It's yellow.

I also have:

I'd really like to get a bigger monitor. The 1440x900 display I have now is small and cramped most of the time. I also need to build a better desk.

Ways you can get a hold of me:

irc: willkg on #miro-hackers on irc.freenode.net
email: will dot guaraldi at pculture dot org

Meet me for coffee:

I live in North Chelmsford, MA, USA. It's about 30-45 minutes from Boston. If you're in the area, I'd love to hang out for coffee. I head into Boston periodically for conferences and hanging out with family and friends. I'm definitely interested in hackfests or talking shop.

The rest of my world:

My web-site is at http://bluesock.org/~willg/. I curate Python Miro Community and Gnome Miro Community. I maintain PyBlosxom. I'm a member of the Free Software Foundation. I'm a lover, not a hater.

Wed, 03 Mar 2010

Dev call 3/3/2010 minutes

minutes

Miro 3.0 status (roadmap) (was Miro 2.6)

Miro 3.1 status (roadmap)

Miro Community 1.0 status (roadmap)

Janet:

Will:

Paul:

Ben:

bugzilla

Wed, 24 Feb 2010

Dev call 2/24/2010 minutes

minutes

Miro 3.0 status (roadmap) (was Miro 2.6)

Miro Community 1.0 status (roadmap)

Will:

Luc:

Paul:

Ben:

Janet:

bugzilla

Tue, 23 Feb 2010

Python Miro Community status: 02-23-2010

PyCon 2010 is over and the PyCon AV crew is working on taking the video they've recorded, editing it, and posting it. As they post it to the Pycon blip.tv feed, I'm pulling it into Python Miro Community. You can keep track of my status here (RSS).

I sent an email to the Cambridge Python Meetup (Cambridge, MA, USA) asking if they still record video and if so, where it gets posted.

Nate Aune sent me a link to the PloneTV feed. I'm in the process of pulling those videos in.

One thing I've noticed while curating Python Miro Community is that the quality of the image and audio make a huge difference in the usefulness of the video after the event. It's a huge project with a lot of finicky bits to reliably create great video.

Many many props to Carl Karsten, the PyCon-AV team, and all the other people out there doing this work. It allows these presentations to live beyond a moment in time and reach a much larger audience.

Mon, 22 Feb 2010

Last call for translations for Miro 3.0!

This is the last call for translations for Miro 3.0.

Translations are done with the Launchpad translation interface.

If you do translation work or know someone else who does, take some time today (Monday, February 22nd, 2010) to help improve the translations for Miro 3.0.

Wed, 17 Feb 2010

Dev call 2/17/2010 minutes

minutes

Miro 3.0 status (roadmap) (was Miro 2.6)

Miro Community 1.0 status (roadmap)

Janet:

Ben:

Will:

Luc:

Paul:

bugzilla

Going to PyCon 2010?

If you're one of the lucky people going to PyCon 2010, you might want to spend some time coming up to speed on some of the talks being given.

Interested in the GIL? David Beazley is giving a talk on the inner workings of the Python GIL. He's given several GIL-related presentations before: Asynchronous vs. Threaded Python, Mindblowing Python GIL, and Changes to the GIL in Python 3.

Interested in documentation? Wesleay J. Chun is giving a talk on writing books using Python and Open Source Software. This will likely talk about Sphinx. Take some time to watch Brandon Rhodes talk about Sphinx at PyAtl.

Interested in PyPy? Maciej Fijalkowski is giving a talk on the speed of PyPy. Take some time to watch the PyPy status talk from PyCon 2009.

Don't go to PyCon unprepared!

Fri, 12 Feb 2010

Python Miro Community

Today I'm releasing Python Miro Community. This site is a Miro Community focused on Python. It brings together videos from Python conferences, local user groups, screencasts, and tutorials.

I'm working on it in my spare time because:

  1. I think it's really important to get this video out to a larger audience, and
  2. it's really important to make it easier for users and developers to find video they're looking for.

This site helps on both fronts. The first in that it collects video into one place without re-hosting it. The second in that I'm curating the site and through better descriptions and tags, the video becomes more findable.

It's not finished--it's an ongoing project that I'll continue to work on. My ultimate goal is to connect with Python video producers like Carl Karsten (whose work is phenomenal), conference A/V people, local user group A/V people, and all those people out there making screencasts, tutorials and project status videos to make sure Python Miro Community stays relevant and continues to helps creators and consumers.

It's free. I'm doing this in my spare time, Participatory Culture Foundation (the non-profit behind Miro) is providing the server and resources to host the site, and the video on the site is available for free on the Internet.

Spend some time today to take a look at the site, browse the PyCon 2009 and DjangoCon 2009 videos, spend some time honing your Python skills with either the Python basics or Python advanced tracks, follow along with the ChiPy or PyAtl local user groups, and see what's out there.

Love it? Hate it? Let me know in the comments.

Thank you to Carl Karsten and Steve Holden for their help pulling this site together!

Wed, 10 Feb 2010

Dev call 2/10/2010 minutes

minutes

Miro 3.0 status (roadmap) (was Miro 2.6)

Miro Community 1.0 status (roadmap)

Paul:

Janet:

Will:

Old wiki page about extensions: https://develop.participatoryculture.org/trac/democracy/wiki/extensionsystem. There is also an old (obsolete) section in the journey about extensions: https://develop.participatoryculture.org/trac/democracy/wiki/thejourney.

Luc:

Ben:

bugzilla

Fri, 05 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.

Wed, 03 Feb 2010

Dev call 1/27/2010 minutes

minutes

Miro 3.0 status (roadmap) (was Miro 2.6)

Miro Community 1.0 status (roadmap)

Ben

Luc

Janet

Will

Paul

bugzilla

Wed, 27 Jan 2010

Dev call 1/27/2010 minutes

minutes

Miro 3.0 status (roadmap) (was Miro 2.6)

Miro Community 1.0 status (roadmap)

Paul

Janet

Luc

Ben

Will

bugzilla

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):
        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(
            "Miro", 0, dbus_interface='org.gnome.SettingsDaemon.MediaKeys')

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

    def handle_mediakey(self, *mmkeys):
        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 get_media_key_handler():
    try:
        return MediaKeyHandler()
    except dbus.DBusException:
        logging.exception("cannot load MediaKeyHandler")

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

Thu, 21 Jan 2010

How can I help?

I keep seeing people say things like, "I'm not a programmer, so I can't help."

I think this is a common misconception about Free Software. Free Software empowers you. Let me say that again...

Free Software EMPOWERS You.

Miro is a Free Software project and like all Free Software projects, there are a variety of ways that you can be involved. By being involved you are taking the responsibility to help solve your own problems.

You can test nightly builds and release candidates.

You can submit bugs and help us triage and fix them.

You can send in patches. Patches can be for code, documentation, packaging, ...

You can package Miro for other distributions.

You can translate strings.

You can tell your friends and family about Miro and help them get setup. You can blog about Miro. You can dent about Miro.

You can adopt a line of code. This helps fund ongoing development. If we had more funds, we could have more paid developers.

Miro is built and maintained by all of us working together contributing our time and resources. There are features to be implemented, bugs to be squashed, systems and software to integrate with, standards to develop--the future is great with possibilities. There's a lot of stuff that can be done and you can help the Miro community do it.

Wed, 20 Jan 2010

2.6 is now 3.0

On the dev conference call today we talked about how many things have been fixed, changed, implemented, et al in the Miro 2.6 development cycle. We decided this isn't a .1 improvement--it should get it's own major version number.

As such, we're changing the version number for the next version of Miro from 2.6 to 3.0.

The effects of this are pretty small--it's just a name change. However, our Bugzilla Roadmap urls are specific to a version.

Instead of using:

http://bugzilla.pculture.org/roadmap.cgi?product=Miro&target=2.6

Use this:

http://bugzilla.pculture.org/roadmap.cgi?product=Miro&target=3.0

Dev call 1/20/2010 minutes

minutes

Miro 3.0 status (roadmap) (was Miro 2.6)

Miro Community 0.9 status (roadmap)

Janet

Ben

Will

Paul

bugzilla

Wed, 13 Jan 2010

Dev call 1/13/2010 minutes

minutes

Miro 2.6 status (roadmap)

Miro Community 0.9 status (roadmap)

Janet

Luc

Will

Ben

Paul

bugzilla

Thu, 07 Jan 2010

Dev call 1/6/2010 minutes

minutes

Miro 2.6 status (roadmap)

Miro Community 0.9 status (roadmap)

Janet

Will

Luc

Paul

bugzilla

Sat, 02 Jan 2010

Year end: 2009

This was a pretty big year for the Miro project and the first year for the Miro Community project. In Miro-land, we pushed out Miro 2.0 which was a complete re-write of the user interface. Then we pushed out Miro 2.5 which was a rewrite of the storage/database layer. We also switched from svn to git. That's three really big changes for a single project in one year.

Miro 2.5 was a messy release and we've made a bunch of changes so we don't have to go through that again. We've been spending time on the unit test, QA automation, and code quality for Miro 2.6. We've changed the release process so that it buffers more time to catch issues. We're doing more peer review of complex code changes. The switch to git will help since branching and merging are much easier and less error-prone.

Bugzilla stats:

Overall statistics
------------------
                                  2007  2008  2009
Opened reports at end of year:     453   705  1102
Opened:                           4052  1625  1593
Closed:                           4368  2032  1654
Users created:                     644  1083   771
Comments created:                13564  7529  8329

"Opened reports at end of year" is the total number of opened bugs at the end of that year. So at the end of 2007, we had 453 open bugs. At the end of 2008, we had 705 open bugs, ...

I wasn't sure whether to include 2007 or not since half way through that year we switched from Trac to Bugzilla. No one needed to create an account in Trac, so user numbers should be lower. Also, we were getting a lot of Trac spam, so comment, opened and closed numbers were much higher.

Bugs closed by activity:
------------------------
             2007  2008  2009
fixed         736   932   969
invalid       170   133    85
wontfix        35   142    71
duplicate     139   313   190
worksforme    169   344   151
incomplete      0    57    84

I thought this was an interesting data set.

The INCOMPLETE status was added mid-2008. We use this for whenever we ask a user for some information that we need to work on a bug and the user never gets back to us. It's better than marking it as INVALID or WORKSFORME since it's easier to find this set of bugs that were pushed to the side because need more information.

We're fixing on average 3 bugs a day--that's pretty impressive.

Top 10 bug reporters:
--------------------
   444 - Janet (PCF)
   183 - Anne Jonas (PCF)
    71 - Will Kahn-Greene (PCF)
    71 - Dean Jansen (PCF)
    42 - Nicholas Reville (PCF)
    39 - sg
    37 - Keith Lard
    28 - Uwe Hermann
    28 - Ben Dean-Kawamura (PCF)
    22 - Pan  ~ dietmar

Out of 1593 bugs, PCF employees reported 839--that's just over half. Of the non-PCF people in this list, Uwe is the Debian packager for Miro and Pan is an OpenSUSE packager for Miro. sg and Keith Lard both run OSX.

Top 10 bug closers:
------------------
   421 - Janet (PCF)
   369 - Paul Swartz (PCF)
   353 - Will Kahn-Greene (PCF)
   195 - Ben Dean-Kawamura (PCF)
   114 - Luc Heinrich (PCF)
    26 - Christopher Webber (PCF)
    21 - Dean Jansen (PCF)
    20 - sg
    19 - Anne Jonas (PCF)
    14 - Nicholas Reville (PCF)
Top 10 bug commenters:
---------------------
  2050 - Janet (PCF)
  1757 - Will Kahn-Greene (PCF)
   823 - Paul Swartz (PCF)
   533 - Ben Dean-Kawamura (PCF)
   354 - Anne Jonas (PCF)
   254 - Nicholas Reville (PCF)
   234 - Dean Jansen (PCF)
   187 - Luc Heinrich (PCF)
    98 - sg
    88 - Uwe Hermann 

Git stats

Moving along, I can now get stats out of our git repository. git ftw!

In 2009, we did 11 releases (22 releases if you include release candidates) of which 2 were MASSIVE code overhaul releases. Miro 2.0 involved a re-write of the user interface using native widgets which resulted us in dropping 4,000 files from the codebase (a large portion of that was probably locale-related). Miro 2.5 involved a re-write of the database layer. We had a lot of bug fix releases to stabilize things after these two big releases.

Between Miro 1.0 and 1.1: 1606 files changed, 127775 insertions(+), 14605 deletions(-)

Between Miro 1.1 and 1.2: 2318 files changed, 233370 insertions(+), 185511 deletions(-)

Between Miro v1.2 and v2.0: 4715 files changed, 271506 insertions(+), 560366 deletions(-)

Between Miro v2.0 and v2.5: 662 files changed, 169258 insertions(+), 175292 deletions(-)

Half of the 2.0 work and all of the 2.5 work was done in 2009. 2.0 was clearly a monumental release like no other release we've ever done.

In 2009, we did 1,382 commits. For comparison, we did 2,049 commits in 2008. The bulk of the work for Miro 2.0 was done at the end of 2008--I think that accounts for the large discrepancy here.

Contributor stats

I don't have stats for testing contributions or translation contributions so I can't speak to those. I can only speak to patches and bug triage contributions.

In 2009, we had 19 contributed fixes/features. PCF employees are doing the bulk of the work. This is still an area we could use help with.

In 2009, we've done a lot to lower the barriers to entry and make this easier: improved code quality, wrote documentation, improved build documentation, improved build scripts, added unit tests, ... In 2010, we're continuing this work.

Summary

Despite the Miro 2.5 release which was pretty rocky, I think we had a really good year and got a lot accomplished. I'm looking forward to Miro 2.6 (or whatever the next release gets called).

I'd love to see more contributions from other people. If you have some free time or some passion and want to help out, let me know. If you don't have free time, but have some spare change floating around, please donate--this helps PCF pay for employees to work on Miro.

Wed, 23 Dec 2009

Dev call 12/23/2009 minutes

minutes

Miro 2.6 status (roadmap)

Miro Community 0.9 status (roadmap)

Paul

Luc

Will

Janet

Ben

bugzilla

notes

We're working on Miro 2.6 targeted bugs. If there are issues that should be targeted for 2.6, let us know. If there's anything you can help with either by adding information or contributing patches to any of the bugs targeted for Miro 2.6, please do!

Wed, 16 Dec 2009

Dev call 12/16/2009 minutes

minutes

2.6 status (roadmap)

Janet

Luc

Will

Ben

Paul

bugzilla

notes

We're working on Miro 2.6 targeted bugs. If there are issues that should be targeted for 2.6, let us know. If there's anything you can help with either by adding information or contributing patches to any of the bugs targeted for Miro 2.6, please do!

Thu, 10 Dec 2009

Subtitle support status

We've been working on subtitle support for Miro in the subtitle branch. Yesterday, Ben merged the changes into the master branch. As of this morning, nightly builds have subtitle support. Yay!

There are still a few things to implement and the code hasn't had much of a chance to settle. Also, there are still some things I think should get refactored and it's likely we'll be tweaking the interface going forward as we use it more.

Still, it's good to have landed the bulk of this feature. It's probably not wildly useful yet, but it gives us some ground work towards building better subtitle distribution/creation infrastructure going forward.

Wed, 09 Dec 2009

Dev call 12/09/2009 minutes

minutes

2.6 status (roadmap)

Paul

Janet

Ben

Luc

Will

bugzilla

Wed, 02 Dec 2009

Dev call 12/02/2009 minutes

minutes

2.5.4 status (roadmap)

2.6 status (roadmap)

Paul

Janet

Will

Ben

bugzilla

notes

I wasn't on last week's devcall. Thus, no notes.

Tue, 01 Dec 2009

Farewell, xine

I've been talking about removing the xine renderer for 6 months now. I don't do this lightly--generally we want to add features, not remove them. However, we're a _really_ small team of developers working on Miro and one of the things I'm focusing on for the Miro 2.6 development cycle is to reduce and simplify wherever we can so that we can focus on the work ahead of us. Also, the gstreamer folks are doing a fantastic job and that project is really coming along. I feel very confident that switching to gstreamer is a good move.

Today is the day I did the deed. As of c1c6f33, the gtk-x11 platform of Miro no longer uses the xine renderer. This checkin removes all the xine code from the codebase.

A while back, I threw together a VLC renderer that mostly works. Other renderers can be built in the same way--the infrastructure is there for anyone to create new renderers and ship them as separate packages.

Even though this is a good move, I do realize it leaves some people out in the cold. If you are interested in championing the xine renderer and starting a project to build and maintain it, let me know and I'll do what I can to help out.

Wed, 18 Nov 2009

Reducing complexity for 2.6

We've been working on reducing the complexity of the code for Miro 2.6. We've done this in a few different ways and I want to summarize them here.

moved binary kit stuff to separate repositories

This dropped the size of the git repository for miro a lot. Cloning the repository is much faster now. Plus it's easier to build Miro on Windows and OSX from the source tarball.

moving libtorrent out of portable

On Linux, this allows us to rely upon Linux distributions to have packages for libtorrent (the Rasterbar version) and the Python bindings. We don't need to compile libtorrent as part of the Miro build process anymore. That dropped the build time like a rock, reduced the tarball size, and removed a bunch of issues from configuring and compiling Miro on Linux.

removing sorts.pyx and fasttypes.pyx

Removing these allowed us to remove the build dependency on Boost. That removes a bunch of assy code we had in the setup.py file. This also reduced the time it takes to build Miro on Linux.

adjustments to setup.py to be more whiny when things are missing

I added some code to the gtk-x11 setup.py to make it clearer when it's missing build dependencies. I then tested this on Kubuntu Karmic, Fedora 12, and OpenSUSE 11.2. Miro will still try to run if it's missing things--I'll look into this soon.

updated gtkx11 build docs

I went through and updated the build recipes in the gtk-x11 build docs page. I updated the recipes for Ubuntu Karmic, added recipes for Fedora 12 and OpenSUSE 11.2 (though it won't work because I couldn't find a libtorrent rasterbar package), and removed a bunch of old recipes that would never work. I'm planning to do Gentoo and some other distributions next.

I updated the build and runtime requirements lists, too.

removing xine

This hasn't been done yet, but it'll happen soon. This will remove some build requirements and it'll make our lives easier since we'll only have to support one renderer on Linux. Supporting two takes a time and effort and we're only doing a so-so job of it. Better to cut xine loose and focus on gstreamer. I'm sorry that this will affect some people. I'm hoping to rework the code so that additional renderers can be released as separate packages like I did with frontends.

conclusion

We're focusing on reducing the complexity of the codebase and build requirements to make it easier for new people to pick it up, build and contribute. If there's anything else we can do on this front--or better if there's anything YOU can help us do--let us know.

Dev call 11/18/2009 minutes

minutes

2.5.4 status

subtitle support status

Ben:

Luc:

Janet:

Paul:

Will:

bugzilla

notes

Several people said they read the reports weekly and find them very useful, so I'll continue writing them.

One person mentioned how there's no public information about Miro development. That's not correct. Here's a list of urls of public information:

Tue, 17 Nov 2009

git repository is now http

We switched the miro repository url from https://git.participatoryculture.org/miro/ to http://git.participatoryculture.org/miro/. If you were using https, then you should switch the origin url in the .git/config file. It's unlikely that's the case, though, since it's been broken for over a month now.

Fri, 13 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!

Thu, 12 Nov 2009

Binary kits are no longer in the repository

I finished the work to remove the binary kit data from the miro repository today. Removing the binary kit data from the repository changed all the shas. To alleviate the problems this causes, I did the following:

  1. Ran a git filter-branch --commit-filter that added a line to the end of every commit message stating what the original commit sha was. The shas are referenced in Bugzilla, so this maintains the papertrail.
  2. Moved the "old git repository" to miro.old. If you're building Miro versions prior to Miro 2.6, it'll probably be easier to do that in the old git repository because the binary kit material is there.
  3. Binary kit materials were moved to separate repositories.

The end result of this is that we went from 900mb for the repository and a full checkout to about 136mb. Clones are faster, it uses less space on disk, and you're not saddled with a bunch of binary date you probably aren't going to use. It's also much easier on the build boxes which are old and don't have a lot of disk space kicking around.

If you have any questions, comments, or problems, let me know.

Wed, 11 Nov 2009

Dev call 11/11/2009 minutes

minutes

2.5.4 status

Luc

Will

Ben

Janet

Paul

Nick

bugzilla

notes

Are these reports useful to anyone? No one has commented, no one has mentioned them on IRC or email, ... If they're not useful and no one is reading them, then I should be spending my time elsewhere.

Thu, 05 Nov 2009

Need help testing KDE screensaver patch

About a week ago, Joe contributed a patch to disable the screensaver on KDE when Miro is playing fullscreen. I don't run any systems with KDE on them. I'd love to get some help testing this patch so that we can include it in the next release of Miro.

The bug for this work is http://bugzilla.pculture.org/show_bug.cgi?id=3067. The patch is at http://bugzilla.pculture.org/attachment.cgi?id=1980.

Let me know whether this patch works or doesn't work for you either in the comments of this blog entry or in the comments of the bug.

Wed, 04 Nov 2009

Dev call 11/04/2009 minutes

minutes

Paul:

Luc:

Will:

Ben:

Janet:

bugzilla

Tue, 03 Nov 2009

libtorrent out of portable

Miro uses libtorrent-rasterbar for bittorrent downloading. We had a copy of the libtorrent source code in the portable section of our repository. Miro would compile libtorrent as a Python extension along with all the other stuff to build Miro binaries. Not any more.

Luc is almost done carrying my changes over to OSX 10.4, but as of today, libtorrent-rasterbar is no longer in the portable section of our repository.

What does this mean?

For Windows, a clean build on our Windows build box went from taking enough time for me to make dinner, eat dinner, and then completely forget what I was working on (26 minutes) to 4 minutes. In my Windows XP vm, a clean build went from 8 minutes to 1 minute. Plus I fixed the unicode problems Miro had with Windows and libtorrent and updated Miro to use libtorrent 0.14.6 on Windows.

For OSX, a clean build on my mac mini running OSX 10.5.8 went from 17 minutes to 1 minute. Plus I updated Miro to use libtorrent 0.14.6 on OSX, too.

For gtk-x11, libtorrent is now a required system package. Miro will no longer compile its own libtorrent if you don't already have it installed. I'm pretty sure that most modern versions of the major Linux distributions have packages for libtorrent-rasterbar and the Python bindings.

We have a couple of other changes that affect the project structure almost done. I'll blog about them as they finish landing.

11/4/2009 - This is completed now. Many thanks to Luc who sorted out the issues I was running into with compiling libtorrent on OSX 10.4 with Boost 1.35.0.

Wed, 28 Oct 2009

Dev call 10/28/2009 minutes

minutes

Paul:

Janet:

Luc:

Will:

Ben:

bugzilla

Thu, 22 Oct 2009

Miro 2.5.3 packages for Ubuntu Karmic released!

I just pushed out packages for Karmic for Miro 2.5.3. Until Karmic is out, consider these packages beta quality. If you use these packages and run into problems, let us know as soon as you can.

Ubuntu installation instructions

Wed, 21 Oct 2009

Dev call 10/21/2009 minutes

minutes

Nick and Luc weren't on the call. Janet and Will had colds. Ben's side of the call had some weird 15 second delay. That made it a dicey call that we ended on IRC.

Minutes for this morning's call:

Paul:

Ben:

Will:

Janet:

bugzilla

Wed, 14 Oct 2009

2.5.3 coming soon--I promise!

The Miro 2.5 series has been a total pain in the ass--I'm not going to lie. Not only has it infuriated a number of users, but it's been like a Sysaphusian struggle for the team.

Right now there are 3 developers (Ben, Luc and myself) and 1 QA person (Janet) that work on Miro fulltime. Then we have a large community of testers, translators, and a handful of people who send in patches to fix the problems that irk them most. Even with this large community, the majority of the development, testing and support is done by 4 people.

In the last three months, Janet's house was hit by lightning frying a bunch of her testing machines; I bought a house and moved (along with the build boxes); Ben went on vacation for a month; Luc bought an apartment, moved, and then had his Internet connection totally hosed for a month; I had unforeseen medical problems (that I don't really want to talk about), that resulted in me being offline for the last two weeks; and our ssl certificates expired.

This week is the first time since the beginning of August when we've had all 4 of us working.

We've been trying so hard to get a much-needed 2.5.3 release out. It has a slew of fixes that should alleviate an array of problems that users have been experiencing. We're finally on the verge of the release. I hope it'll happen today or tomorrow.

I really appreciate the patience many of you have had with us as we scrambled to do the impossible over the last couple of months. I really wish it could have happened differently, but it's as if the forces of nature were completely against us.

Though 2.5.3 should fix a variety of issues, we're working on re-architecting some portions of Miro that aren't working well with the database changes we made in Miro 2.5. On top of that, we're working on subtitle support, extensions, and continuing to make Miro a better experience for a larger group of people. Some/most/all of this will show up in Miro 2.6 and 2.7, hopefully in the next few months.

Dev call 10/14/2009 minutes

note

I wasn't on the call for 10/7/2009, so I don't have notes for that day.

minutes

Will:

Luc:

Ben:

Paul:

Janet:

2.5.3 status:

bugzilla

Wed, 30 Sep 2009

Dev call 9/30/2009 minutes

minutes

Minutes for this morning's call:

Janet:

Luc:

Ben:

Will:

Paul:

kickstarter

We achieved the $1000 goal in large part to a couple of key donations. Thank you!

bugzilla

Wed, 23 Sep 2009

Dev call 9/23/2009 minutes

minutes

Minutes for this morning's call:

Luc:

Will:

Janet:

Paul:

kickstarter

Subtitles project on kickstarter has 24 backers for $494. We're hoping it clears $1000 by the end of the month--8 days to go.

bugzilla

Wed, 16 Sep 2009

Dev call 9/16/2009 minutes

summary

Every Wednesday morning we have a conference call that we call the "dev call". This has been happening for years. Mostly we use it as a place to schedule upcoming development, talk with each other about problems we're working on, and come up to speed on where we're all at.

I occasionally take minutes when someone isn't on the dev call. I'm experimenting with posting the minutes on this blog for the next month. If it turns out to be useful, I'll keep doing it. Otherwise I'll stop.

minutes

Minutes for this morning's call:

Luc:

Will:

Janet:

Paul:

kickstarter

Subtitles project on kickstarter has 12 backers for $191. We're hoping it clears $1000 by the end of the month.

bugzilla

Rough Bugzilla stats:

Mon, 14 Sep 2009

Planet Miro status 9/13/2009

I appointed myself Planet Miro curator this morning. I also made some changes:

Going forward, I'll blog about Planet updates.

Fri, 11 Sep 2009

Who else should be on Planet Miro?

Who else should be on Planet Miro? We're interested in getting content and updates from anyone who contributes to Miro, Miro Guide, Miro Community, Open Video, or any of the other endeavors that we're working on.

If there are blogs or people you know of whose work should be synidcated on Planet Miro, email me to let me know.

Support subtitles in Miro--do you really want it?

As of September 11th, there are only 10 people in the world who are interested in subtitle support in Miro enough to contribute to it. Is that right? Were we completely mistaken in thinking that users want subtitle support?

If subtitle support in Miro is important to you, take the time to contribute now. If you live in the United States, donations/contributions are tax-deductible because PCF is a 501c3 non-profit company.

Also, help us get the word out. Write about it on your blog, dent it, digg it, reddit it, ... Help us make it happen. Help us help you.

Mon, 07 Sep 2009

Support subtitles in Miro work

How do you contribute to Miro development?

Do you test nightly builds and release candidates?

Do you submit bugs and help us fix them?

Do you send in patches?

Do you package Miro for other distributions?

Do you translate strings?

Do you tell your friends and family about Miro and help them set it up? Do you blog about Miro?

Did you adopt a line of code?

Miro is built and maintained by all of us working together contributing our time and resources. There are features to be implemented, bugs to be squashed, systems and software to integrate with, standards to develop--the future is great with possibilities.

We at PCF are testing out feature-focused support to help pay our operating costs. We're going to pick a feature every release and turn it into a project on Kickstarter. If the feature that we picked is important to you, then pledge and help PCF help you. These aren't little features--they're big projects that implement functionality that's often requested.

For the next next release, we're working on subtitles. If subtitle support is important to you, then check out the project page and pledge your support. Help PCF continue its work on Miro. Help me and the other PCF developers help you.

Mon, 24 Aug 2009

Things are slow right now....

Things have been slow for the last week and will probably remain slow for the next week, too, mostly due to real life sorts of things among the various developers. We took advantage of this slow period (it doesn't happen often) to switch Miro development from svn to git. This is something we've wanted to do for a while and should make the development process we have a lot easier to deal with.

To summarize, things are slow right now, but they'll definitely pick up again in September.

Wed, 19 Aug 2009

Miro switched to git

I finished up the work for converting our svn repository to git and pushed the whole thing to the server. You can follow along at https://git.participatoryculture.org/miro/.

I'll be spending the next week or so updating code, infrastructure, and documentation to reflect the change.

Sun, 16 Aug 2009

Subversion to git transition

We're switching the Miro repository from svn to git. This frees us up considerably and will make development life a lot easier for us. We chose git over other dvcs systems because most of us were already using git-svn to access svn and we're already using git for Miro Guide, Miro Community, Miro Fullscreen and other projects.

For the last week or so, I've been converting the Miro svn repository to git. It's taken a long time because I ran into several complications:

  1. I've been moving from an apartment to a house which sucked up a few days.
  2. We treated tags in svn like branches: we'd tag a release, then make some adjustments "in the tag". Tags in git are immutable which is a good thing--they should be immutable. I've spent a bunch of time figuring out how to convert our svn tags into git tags and tweak the history accordingly. It takes around 20 minutes to fix each instance of the problem and there were a lot of instances of it--one for each release, release candidate, beta, .... Many many thanks to James Vega for helping me out on this.
  3. I'm running out of disk space on my laptop. I've had to do some archiving to free up space and that's taken a while.

Hopefully, I'll be done in the next day or so. Once I finish, I'll push the new git repository to a public space, have the other devs run through it for issues, post a message about it on the develop mailing list and then I'll start work on changing build scripts and other things like that to use the git repository rather than the svn one.

One thing that's happened as a result of this work is that I've really come to appreciate git internals and how it's all structured. I have no idea how Bazaar and Mercurial structure things, but git's pretty neat.

Update 8/17/2009: My math was way off. I've got another 50 tags to go at 20 minutes per tag that's at least another couple of days.

Fri, 14 Aug 2009

Theora Cookbook

The folks at FLOSS Manuals put together a Theora Cookbook. It's a great book that covers Theora and publishing video on the Internet.

It's definitely worth reading/skimming if you're interested in Open Video, Theora, and the impending future of video on the Internet.

Sat, 08 Aug 2009

Miro 2.5 post-mortem

We released Miro 2.5 a couple of weeks ago and it was a messy release which resulted in a Miro 2.5.1 a day or two later and a Miro 2.5.2 a few days after that. It sucked. I wish it had been better.

Before a release has happened, a messy release looks like any other release: development has wound down, lots of bugs have been fixed, a bunch of new features have been implemented, testing is going well, people who have looked at the nightlies and release candidates like the new features and haven't encountered any issues, ... Then we decide to pull the trigger and push it out.

It's only when a release is out that the messy release rears its ugly head and the obviousness of its messiness is revealed. Usually this is made abundantly clear by abusive emails from people who encounter problems with the release, become frustrated, and express themselves with abusive vitriol aimed at me and all the other people who worked hard on the release.

It's at this point, I bite the bullet, prepare for the world of pain I'm about to get involved in, and try to reach out to as many people as I can, gather information to identify the issues so that we can fix them, and provide support to people who are encountering problems to enable them to get through them.

So what the hell happened with Miro 2.5?

Miro 2.5 started out with a big flaw: there was no upgrade dialog showing when Miro was transforming the database from the old style to the new style. If you have a small database like mine (8 mb), you'd never notice. People who had huge databases would launch Miro 2.5 for the first time and ... seemingly nothing would happen for minutes. The person would assume Miro isn't starting, would kill the process, and then try again. At this point, Miro would see a wedged database and wouldn't start. We think there were on the order of 30,000 downloads at this point and we had maybe 50 people who had problems.

We recognized the problem and we kicked into emergency mode. Janet and I worked the GetSatisfaction forums, blog, and identi.ca. Ben poured over the incoming data, made a few fixes and put in a progress dialog. We pushed out Miro 2.5.1. Janet and I went through and talked to each user who had problems to help them unwedge their database and get back to a working Miro.

A day or two later, we found another couple of problems. I made some fixes and pushed out Miro 2.5.2. Then I wrote a script people could run to re-download data that was lost. Dataloss totally sucks. We did everything we could to help alleviate the problem after we found out it was there.

There are still a bunch of people for whom Miro doesn't work. I'm talking with a few of them. Others have given up. It's always been the case that there are people for whom Miro doesn't work and we do what we can to figure out the causes.

And that's where we are now.

Going forward, we're going to figure out how to better test Miro release candidates. We thought that 600 people would have fleshed out most of the issues, but it seems that there are classes of people whose usage patterns aren't reflected in our testers and testing. If you can help us with testing, we'd love to have you. You will have a direct impact in making Miro better.

Going forward, I'm going to work on making it easier for Miro to help people identify problems and let us know. I'd also love to get some help fixing Miro so that it doesn't lose data when things go wrong. Code contributions would help a ton here.

Going forward, I'm going to ask for help more often. There are only 4 PCF developers and we're spread very thin between Miro, Miro Guide, Miro Community, and the other things we're working on. We need your help. This isn't a new situation. What is new is that I'm going to do a better job making it explicit what I need help with right now.

I love working on Miro. I love what Miro is doing for people and for communities. I love our mission. I need your help to help me help you. Miro is your project as much as it is mine.

I hope the initiatives we're working on will eliminate messy releases in the future.

Sat, 25 Jul 2009

Miro 2.5 Ubuntu packages coming soon!

The Miro 2.5 release had a couple of issues that affected users with large databases. We've been working on those issues and helping those people out for the last couple of days. This work culminated in a Miro 2.5.1 release.

Because I was working out issues with Miro 2.5 release and helping users work through issues (more on that in a future blog post), I haven't worked on the Ubuntu packaging yet. My current plan is to wait until Sunday (tomorrow) and do packages for Miro 2.5.1 skipping 2.5.

I apologize for not getting packages out sooner, but I:

  1. was busy fixing Miro 2.5 issues and helping users
  2. thought it'd be better to hold off until the Miro 2.5 issues were worked out
  3. discovered World of Warcraft

If for some reason I can't/don't push out packages on Sunday, I promise I will do them as soon as I can. I use Ubuntu, too, so this affects me as well as all of you.

If for some reason this isn't satisfactory and you want/need it sooner than I can provide, I encourage you to build your own Miro from source. There are instructions here.

Thu, 23 Jul 2009

Miro 2.5 released!

We released Miro 2.5 today. It's a great release and a big step for Miro. My favorite features are:

The last feature is a big deal--we rewrote the entire storage layer for Miro to do it. Miro went from a pickled Python object database to a relational database. With the new database system, you can do things like this:

willg@mercury:~/.miro$ sqlite3 sqlitedb
SQLite version 3.6.10
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> select count(*) from feed;
23
sqlite> select origUrl from feed;
dtv:manualFeed
dtv:singleFeed
dtv:search
dtv:searchDownloads
dtv:directoryfeed
http://www.fileden.com/files/2008/5/14/1911312/timostrailers.rss
http://feeds.feedburner.com/Gitcasts
http://www.youtube.com/rss/user/googletechtalks/videos.rss
http://feeds.feedburner.com/Screencastersheathenxorg
http://www.whitehouse.gov/rss/speeches.xml
http://www.hd-trailers.net/blog/feed/
http://pycon.blip.tv/rss
http://feeds.feedburner.com/CSS-Tricks-Screencasts
http://www.g4tv.com/xplay/podcasts/6/XPlay_Daily_Video_Podcast.xml
http://feeds.theonion.com/OnionNewsNetwork
http://www.npr.org/rss/podcast.php?id=35
http://feeds2.feedburner.com/YourWorldIn5-itunes
http://g4tv.com/cinematech/podcasts/8/G4_TV_Cinematech_Video_Podcast.xml
https://fedorahosted.org/releases/f/e/fedoratv/fedora-tv.xml
http://openmeetings.org/archives/ovc2009-sessions-mirofeed.rss
http://ubuntudevelopers.blip.tv/rss
http://makezine.com/blog/archive/make_podcast/index.xml
http://www.podshow.com/feeds/gbtv.xml
sqlite>

This is the first big step in making Miro more hackable and more accessible to projects like Coherence, Elisa, and others. It'll also make it a lot easier to debug database problems in the future.

Note: After you've upgraded to Miro 2.5, Miro will upgrade your database to the new structure on the first startup. This takes a long time depending on how big your database is. Just let Miro hang out and do its thing. The epic fail here is that there's no ui indication that Miro has started and is upgrading the database. I'm hoping we'll fix that soon.

I hope you're happy with the improvements in Miro 2.5. We're not resting there--work has already begun on Miro 2.6.

Sat, 18 Jul 2009

Last chance to adopt-a-line for 2.5!

When you Adopt-a-Line at the Miro Adoption Center, you're contributing to the continued development and maintenance of Miro and the MiroGuide in addition to helping us work on our mission to ensure that video is healthy and accessible to everyone and that Open Video flourishes. This is something that's really important to me and I can't thank people enough for their contributions that enable me to do the work that I'm doing.

We're getting really close to a Miro 2.5 release. If you adopt a line before Monday, July 20th, then we'll make sure your name shows up in the "About Miro" credits for Miro 2.5. If you adopt after that, we'll make sure your name shows up in the next version, but that'll be a few months down the road.

If contributing is as important to you as it is to me, take the time now to adopt! It only took me a few minutes, and I've got a cute baby Zowwee Kahn-Greene!

Thu, 16 Jul 2009

VLC Renderer for Miro on gtk-x11

I threw together a VLC renderer for Miro on gtk-x11 based on the VLC renderer code we use for Miro on Windows. It took an hour or so to get it working.

I'd love to toss it in into Miro, but it's got one major problem and one minor one.

The major problem is that VLC handles mouse events rather than letting them bubble up to Miro. When you double-click on the a video, VLC handles the double-click and switches the video to fullscreen (or out of fullscreen). It'd be better if Miro handled this--then it could show the media item details bar. Also, VLC handles mouse movement. Miro needs to handle this, too, so then it can show the item details bar.

The minor problem is that VLC doesn't have libvlc_video_track_count in versions prior to 1.0. I'm not sure how else to figure out if a media file has video tracks in it. Because of this, the sniffer code is pretty ham-fisted if you have earlier versions of VLC.

The code is at http://bluesock.org/~willg/download/vlcrenderer.py if you're interested in fiddling with it. There's documentation at the top of the file that walks through installing and using it.

I'd love to get some help fixing it. Adding support for VLC and dropping support for xine on gtk-x11 would make things a lot easier for us Miro devs.

Need translation help for 2.5

Ben checked in a fix for database problems that occur when a user's disk is full. This fix required the addition of 4 new strings. I really apologize for making strings changes this late in the development cycle, but we decided the fix was really important and that outweighed the imperatives of the strings freeze.

We're on the brink of releasing Miro 2.5. It's something we're hoping to do early next week--possibly Monday or Tuesday pending how Ben's changes bake out.

Because of this, we really need help with translations. If you're a translator, have done Miro translation work before, and/or know someone who has, now's the time to spend some time with translations to ensure that they're rock-solid for a Miro 2.5 release.

Wed, 15 Jul 2009

Bought a house; ramifications

For the last month, I've been going through the house-buying process. Today we found out we were approved for a mortgage and so now we're all set.

Thus, it's official: PCF-Boston will be moving and will become PCF-Chelmsford.

I plan to continue co-working, but I'll be doing it in the Chelmsford/Lowell area. [1]

There are a few ramifications. The first is that it'll be harder to take me out for a cup of coffee if you're in the Boston area. The second is that I probably won't be going into the FSF offices to help with mailings anymore. The third is that there will likely be a period of a few days in the middle of August when the build boxes will be down and there won't be any nightlies.

One of the big boons is that my office will double in space which should make it easier to get more things done since I'll have room for additional equipment, monitors, and such. And I'll have more space to produce podcasts and screencasts and such.

As a sidenote, the house-buying process is fricking insane. And not in a good way. Thank goodness for gscan2pdf, Gimp, Thunderbird, Postfix, Debian, Ubuntu, and the dozen smaller bits that made my side of the paper-pushing much much easier.

[1] Where "continue" is defined as "start coworking again which I haven't done in a long time because I just haven't had time to organize things".

Thu, 09 Jul 2009

Better developer documentation for Miro

During the Miro 2.5 development cycle, I've been working on getting better developer documentation cobbled together. It's a huge task that'll take us a while to do.

The initial focus of this developer documentation is two-fold:

  1. provide web-based documentation for architecture, modules, classes, methods, functions, ...
  2. codify project standard practices

This is important because it makes development easier for core developers, but it's even more important because it'll make it easier for casual contributors to figure out where everything is and how it works.

This is in addition to the documentation found at the Miro Development Center (aka our Trac wiki). Some content will move from the Miro Development Center to the developer docs, but we'll have both for a long time to come.

The first pass for developer documentation for Miro 2.5 is at http://pculture.org/wguaraldi/miro/2.5/developer/. It answers such questions as:

There's a lot more to do, but it'll get better over time if people spend time on it.

For those interested, I'm making heavy use of Sphinx. You can see the source from the developer documentation by clicking on the "Show source" link on the left hand side. The source for the documentation is in our svn tree at https://develop.participatoryculture.org/trac/democracy/browser/trunk/docs/developer.

Thu, 02 Jul 2009

Miro 2.5 schedule, translations, and Launchpad griping

Miro is nearing a 2.5 release candidate. There are only a couple of things we're waiting on now like a VLC 1.0 release. I'm hoping for a release candidate as late as next week and a final a week or two after that depending on how well the release candidate works for people.

If you're a Miro translator, the strings are frozen and we sure could use your help getting up-to-date accurate translations for Miro 2.5. If you know someone who's done Miro translations in the past, let them know that we're rapidly approaching the 2.5 release.

As a reminder, Miro 2.5 is the "trunk series" on Launchpad. Don't translate the Miro 2.0 series--changes there won't be carried over to trunk unless you do it yourself. The Miro trunk series translations page is here.

Now for the gripe. In the last week, Launchpad did an update which changes the translations pages and they no longer tell you the last updated date for individual translations. That's a real drag. I used that field to figure out whether or not to export translations from Launchpad and import them into Miro and to watch translation activity. Grumble grumble grumble.

Tue, 30 Jun 2009

Thoughts after commenting on someone's frustrations in Fedora bug 494505

I'm subscribed to all downstream Miro bugs in the Fedora bug-tracker. I'm also subscribed to all downstream Miro bugs in the Debian bug tracking system. It helps a lot to triangulate issues with external component versions and the myriad of other problems that come with developing an application that runs on Linux distributions.

Today, Rudd-O, who I've never met, ranted on the state of the Miro codebase in bug 494505 in the Fedora bug-tracker. I responded with this https://bugzilla.redhat.com/show_bug.cgi?id=494505#c13.

I thought I should blog about that since I really don't blog enough about the whos and the whys and the hows of Miro development.

After Miro 1.2, we decided to embark on some serious rewrites to fix big problems with the way Miro was structured. Thus each major version since Miro 1.2 has involved signficant overhaul.

Miro 2.0 saw a re-write of the ui. In doing so, we rewrote the Windows platform code which used to be a XULRunner application but is now a Python application using GTK. The ui rewrite fixed a lot of internal codebase problems, but the primary use case was to fix performance problems when displaying feeds with lots of items in them. Display isn't perfect, but it scales a lot better now. As a side note, it's not that we didn't like XULRunner, it's that we wanted to merge the windows and gtk-x11 platforms to make it easier to develop going forward.

Miro 2.5 (not quite out yet, but hopefully soon!) involved a re-write of the data storage code. It is a good thing to do in general, but the primary use case here was to fix performance problems with startup. No longer does Miro need to load the whole database to load the ui; now it can do it in parts. This speeds up Miro startup for a lot of people especially those with large databases. As an added bonus, the database is a regular relational database which other programs can access to see Miro managed media and metadata.

We don't have plans for the next version yet, but there's still a lot of stuff to re-write and make better. The downloading code needs refactoring. The feedparsing code needs good regression tests and once we have good regression tests, it should get refactored. There's a lot of code that needs to be documented and cleaned up. We need to add support for new standards and specifications. We need to add support for really important features like subtitles. We want to build a plugin framework allowing people to extend Miro in their own ways to meet their needs.

That's what we're working on, but there's no way we can do it all at once. We could use your help. If you can't contribute code, contribute funding for someone else to dedicate the time to work on code.

We are all Miro users. We are all Miro evangelists. We are all Miro testers. We are all Miro developers. Miro was made by you and me for you and me. Long live Free Software and Open Video!

Tue, 23 Jun 2009

Adopted a line

I adopted a line of Miro code today. Her name is Zowwee Kahn-Greene. She's pretty cute. :)

If you want to adopt-a-line, you can do so at the Miro Adoption Center.

Mon, 22 Jun 2009

Open Video Conference was awesome!

I just got back from the Open Video conference and it was really inpsiring and really awesome. From when I arrived in NYC late Thursday night to when I left this morning, the time flew by. I met a variety of people who have a stake in the Open Video game: producers, directors, creators, distributors, publishers, companies, representatives, individuals, codec hackers, renderer hackers, player hackers, site builders, community builders, independent journalists, movers, shakers, ...

I met a co-worker I've worked closely with for some months, but never met (and didn't realize who he was until after he was introduced). 7 out of 10 (or so) PCF staff were all there--the largest number of PCF staff in one place I've been a part of. Ben, Paul and I were able to do some Miro work and talk about issues we're having pushing 2.5 out the door. I met with Jean-Baptiste from VideoLAN (they make VLC) and talked about their impending 1.0 release (I scored a pre-release tarball and already started working on upgrading Miro on Windows to use VLC 1.0). I talked about metadata with a few people and I talked about problems with torrents in RSS enclosures with Kevin and Nathan (I'm pretty sure that's his name) Michael from LimeWire on things they're working on that have a lot of synergy with things we're working on. I talked with Joe Born from Neuros Technology about work I did in March on the Neuros Link and how we should go forward working out issues that Miro has when running on the Link (it runs well, but could use some ui tlc). Seeing what people are thinking about and doing with HTML 5 video tag was great.

It was a really productive conference for me. It's really clear what role Miro plays in the future of Open Video on the web. It'll be exciting to be a part of the future unfolding.

6/23/2009: I met Michael from LimeWire--not Nathan.

Sat, 20 Jun 2009

When git-svn is painfully slow...

When I upgraded from Intrepid to Jaunty, I noticed that git svn things were painfully slow. I had looked into this before, but couldn't remember how I found the answer or what it was. After skimming through thousands of lines of IRC logs, I re-rediscovered what I discovered the first time.

  rm -rf .git/svn
  git svn rebase --all

I found it at this site (oebfare.com).

Thu, 18 Jun 2009

I'll be at the Open Video Conference

My jury duty trial finished up yesterday freeing me up for going to the Open Video Conference. The conference schedule looks pretty interesting. I'll try to hit development related things as much as possible.

Sunday is going to be a hackfest day--looking forward to seeing other Miro devs and devs from related projects and working on the future of Open Video.

If you're at the conference, say hi!

Sat, 13 Jun 2009

Moved Miro stuff over

I work at Participatory Culture Foundation and I have a work blog there that I use primarily for blogging about things related to PCF, Miro development, Miro-related development and other things of that ilk. It's on a WordPress system.

I decided after a while that having two blogs sucked. Also, I don't like Wordpress. Also also, I was getting crazy amounts of comment spam on my work blog.

As such, I did a couple of pushes to finish up PyBlosxom 1.5 enough so that I could write a tags plugin that I like so that I could migrate. Then I wrote a Wordpress to PyBlosxom migration script and the result is that I'm now blogging here for all Miro related things. Since it's easier to blog here, I'll probably be talking more about Miro-land. w00t!

Fri, 01 May 2009

Adopt a line of Miro code!

Participatory Culture Foundation is the non-profit organization I work for working to build a distribution system for video and audio on the Internet that has no bottlenecks, no filter points, uses open standards, and Free Software.

Most of the software that we write is written in Python. Miro, an Internet video player, is written in Python and runs on a variety of platforms. Miro Guide and Miro LocalTV are both systems that are written in Python using Django. Miro Fullscreen is written in Python using Clutter.

Python has made it possible for a very very small group of us to tackle such a large project with very limited resources.

Earlier this week, we launched our Adopt a Line of Code, a fundraising campaign to help us fund the work we're doing. No one has ever done a fundraising campaign like this before. We think it could be a good model for other Open Source and Free Software projects to raise funds.

Take a moment to check out the Adoption Center and adopt your very own line of code! Support us in our work to make video open for everyone.

Tue, 28 Apr 2009

Jaunty packages released

I finished up a set of Miro 2.0.4 packages for Jaunty for amd64 and i386, pushed them out, and updated our download instructions page.

Two things to clarify:

  1. In the Ubuntu universe repository are Miro 2.0.3 packages, but these packages have a backported patch from Miro 2.0.4 so they're essentially equivalent to the 2.0.4 packages I just built.
  2. I put out PCF-built packages because we support Ubuntu and not because Iain and others aren't doing a fantastic job packaging Miro for Ubuntu.

I'm sorry it took so long, but I was gone most of last week, so I was a bit late to the party.

I'm currently working on getting Miro in trunk to work with Jaunty... there are a few other issues that need to be worked out still.

Instructions for installing the PCF-built Miro 2.0.4 packages are at http://www.getmiro.com/download/for-ubuntu/ .

Going forward I'll continue to build packages for Hardy, Intrepid and Jaunty. I'm no longer building packages for older versions of Ubuntu.

Thu, 16 Apr 2009

me from april 18th through 25th and a call for help

Me for the next week

I'm going on a service trip for a week to help out rebuilding and such. When I get back, I'll be spending quality time with Miro on Ubuntu Jaunty, Python 2.6 and a bunch of other support issues that have popped up and I'll be back on Miro development duty helping Ben and Luc with the changes going into Miro 2.1.

Call for help

Also, if you are technical and use Gentoo, Arch Linux, or OpenSUSE, toss me a line either in the comments below, on #miro-hackers on irc.freenode.net or by email at will.guaraldi at pculture dot org. I'd really like to get help on supporting these three systems better for Miro--I just can't do it myself.

Tue, 07 Apr 2009

db changes garner no response

I'm surprised that Ben's post didn't garner any response. I thought there was a significant number of people chomping at the bit for these db changes.

If you're one of the people that was looking forward to these changes but wasn't aware they were happening, then definitely take a look at trunk. If there are use-cases you have that you don't think are going to be handled, let us know as soon as possible.

Thu, 26 Mar 2009

notes for remote control support for mirofullscreen on linux

I spent the greater part of today adding remote control support to the Miro Fullscreen project. I thought I'd do a write up on it because there are a lot of pieces involved and it took me ages to figure it out and I'm paranoid I'll forget.

Quick caveats:

Requirements

I installed three packages: lirc, python-pylirc, and gnome-lirc-properties.

sudo apt-get install lirc python-pylirc gnome-lirc-properties

LIRC

lirc has a web-site at http://lirc.org/. I had no idea what I was looking at while wandering aimlessly through that site. I think the important pages are these:

python-pylirc

The only useful site I could find for this project was at http://pylirc.mccabe.nu/. It says that Paul Hummer took over the project and moved it to http://pylirc.ironlionsoftware.com/, but that's a dead link. I found Paul's blog at http://theironlion.net/blog/. He uses tagging on his blog, but there's only one article tagged as pylirc2 at http://theironlion.net/tag/pylirc2/. I couldn't find anything useful about pylirc, the project, its status, or what's going on. Paul suggests he was going to add LIRC support to Entertainer, but it doesn't look like he ever did that.

Anyhow, so I ended up going with the documentation on http://pylirc.mccabe.nu/ and that seemed to work out ok.

gnome-lirc-properties

I don't know if I really needed gnome-lirc-properties.

The .lircrc file

So you install the three (or two--depending on whether gnome-lirc-properties is really needed) packages and you create a .lircrc file like this:

begin
    prog   = mirofullscreen
    button = MUTE 
    config = n
end
begin
    prog   = mirofullscreen
    button = VOL_UP
    config = Up 
end
begin
    prog   = mirofullscreen
    button = VOL_DOWN
    config = Down 
end
begin
    prog   = mirofullscreen
    button = UP 
    config = Up 
end
...

where prog is the string you pass to pylirc.init, button comes from the remote control lirc file and config is the string you add handling for in your application.

the Python code

The sample code at http://pylirc.mccabe.nu/?/article/articleview/Documentation/1426&themex=public gave me enough of an idea on how it worked to implement the code in Miro Fullscreen.

In closing

Hope that's useful to someone at some point.

Name Change

So... A little over a year ago, I changed my name. But I never really followed through on all the things I should have followed through on.

Today I finally got around to switching it on IRC. So I'm now willkg instead of willguaraldi.

Figured I'd mention it so there's less confusion.

Thu, 19 Feb 2009

Who's part of the team?

I saw the Our wonderful team post just now. The PCF staff is great and, but "the team" constitutes a much larger group of great people without whom the magic could never happen.

There are hackers like Uwe, Nathan, Zach, Michael and others who have sent in patches that add new features, add test cases, and fix bugs.

There are testers like Keith, Pan, Sedat, Robbt, Sumana, and dozens of others whose work directly impacts the quality of Miro.

There are bug reporters who spend their time helping us work out complex problems that result in fixes and better experiences for future users. Some of these bug reports and comments are simply awe-inspiring.

There are translators like Karl, Lukasz, and Sedat who through their efforts have done some great translation work and also fixed issues smoothing the path for other translators.

There are packagers like Uwe (Debian), Iain (Ubuntu), Christian (Ubuntu), Alex (Fedora) and others that I'm either forgetting or haven't interacted with who package Miro for other distributions, send bugs and fixes upstream to us, and help us generalize the code so that it works on as many systems as possible.

There are developers of libraries that Miro uses like Arvid who works on libtorrent, lurks on our bug system and IRC, and helps us with libtorrent issues.

There are developers and members of other projects that are actively seeking areas where we can help each other build better things like Nathan and Asheesh from Creative Commons, Gabriel Burt from Banshee, and Chris Blizzard, Aza Dotzler, and others from Mozilla.

There are thousands of users who use Miro, find and report issues, tell their friends about Miro, wax on about the importance of an open Internet and open media distribution, and give feedback that molds future versions of Miro.

There are thousands of content producers who benefit from and add to the infrastructure that we're helping to facilitate.

This massive group of people is the team. The best part is that the team is getting bigger and better every day.

Sat, 14 Feb 2009

what I use Miro for

One thing I've been meaning to write a post about was to list the things I use Miro for. There are probably other ways to do them, but that's outside the scope of this post.

  1. Keeping track of government
    President Obama's weekly address and key speeches - http://www.whitehouse.gov/rss/speeches.xml
    Metavid - http://metavid.org/wiki/

    The metavid one is really interesting. From their site:

    "Metavid is a community driven archive of legislative video from both houses of the U.S. Congress, spanning from early 2006 to the present. This archive is searchable by speaker name, spoken text, date, metadata we've scraped from outside sources and user contributions. Metavid is video wiki where users improve its accuracy by fixing transcripts and annotating speeches."
    I can subscribe to an RSS feed of anything that has to do with "Kerry" or "Kennedy". It's ultra-convenient, fascinating and a really awesome use of the all these technologies.

  2. Continuing education
    Open Courseware Consortium - http://www.ocwconsortium.org/use/use-dynamic.html
    MIT OCW - http://ocw.mit.edu/OcwWeb/web/home/home/index.htm

    Video and audio lectures and other course materials to learn subjects you didn't have time to take in college. The MIT OCW is a great site, but any of the other groups that participate in the Open Courseware Consortium are also really useful.

  3. Learning a new application
    InkScape - http://feeds.feedburner.com/Screencastersheathenxorg
    The Gimp - http://feeds2.feedburner.com/meetthegimp
    Blender - http://feeds2.feedburner.com/TheBlenderShow
    Microsoft Office on the Mac - http://mac.microsoft.com/macoffice/videos/en-us/xml/videopodcast.xml
    ...

    There are lots of podcasts out there that walk you through using specific applications to do the things you need to do. Watching how someone does something tends to be a lot easier to understand than reading about someone doing something.

  4. Learning new libraries, APIs, toolkits, whatever, ...
    Git - http://feeds.feedburner.com/Gitcasts
    CSS - http://feeds.feedburner.com/CSS-Tricks-Screencasts
    ...

    Any time I need to come up to speed on something programming related (toolkits, utilities, APIs, libraries, ...), I almost always do a Video Search on YouTube and Google Video. I go through the results and download the videos that seem relevant to what I'm doing. Often I tweak the search terms and search again. Doing this brings up tutorials, demos, presentations, tech talks, and a variety of other interesting bits. This greatly adds to what I can gather by looking through the project web-site and forums because it's distilled in a different way.

  5. Keeping up with projects, communities, conventions, meetups ...
    Ubuntu Developer Videos - http://gdata.youtube.com/feeds/api/users/ubuntudevelopers/uploads?orderby=updated
    Fedora TV - https://fedorahosted.org/releases/f/e/fedoratv/fedora-tv.xml
    BSD Conferences - http://gdata.youtube.com/feeds/api/videos?vq=bsdconferences&alt=rss
    ...

    These are useful to watch because you can see where these projects are going, who's involved, and what they're working on.

I'd love to know what other things people use Miro for. Add your uses in the comments.

Sun, 08 Feb 2009

Miro 2.0 rc3 released!

I tagged and built Miro 2.0 rc3 builds and placed them in the sticky section of the nightlies page.

Pre-release release notes are at https://develop.participatoryculture.org/trac/democracy/wiki/2.0ReleaseNotes.

Changes since rc2:

The new Miro Guide will be launching very soon now. When that's released, the second browser bar you see in Miro will go away.

I've synced translations, so rc3 has the latest translations. I will sync them one more time before we do a release. If you’re a translator, we sure could use your help! See more at https://translations.launchpad.net/democracy.

We think this release candidate is release-worthy. Assuming testers don't hit any snags, there shouldn't be any changes between now and the final Miro 2.0 release. We're planning to follow Miro 2.0 with a 2.0.1 release in the near future to get the most updated translations and to fix minor issues that pop up.

To Ubuntu Hardy and Intrepid users: Some day I’ll get to learning how PPA works. When that happens, we’ll start building release candidate builds for the Ubuntu versions we support. Until then, you’ll have to download the tarball and build it yourself. If someone can spare some time to help us with this, I’d be much obliged.

Barring snags with this release candidate, we're looking at a full on Miro 2.0 release some time in the next few days. Getting really super close now!

Mon, 02 Feb 2009

Miro 2.0 rc2 released!

I tagged and built Miro 2.0 rc2 builds and placed them in the sticky section of the nightlies page.

Pre-release release notes are at https://develop.participatoryculture.org/trac/democracy/wiki/2.0ReleaseNotes.

Changes since rc1:

When we release Miro 2.0, we'll also be releasing a new version of the Miro Guide web-site. Amongst other things, this will remove the second browser bar that you see.

Also, prior to releasing Miro 2.0, I'll sync translations from Launchpad. If you're a translator, we sure could use your help! https://translations.launchpad.net/democracy

There are still some outstanding issues that are blocking Miro 2.0, so we're still working. You can see the existing set of bugs to fix here.

To Ubuntu Hardy and Intrepid users: Some day I'll get to learning how PPA works. When that happens, we'll start building release candidate builds for the Ubuntu versions we support. Until then, you'll have to download the tarball and build it yourself. If someone can spare some time to help us with this, I'd be much obliged.

Almost there!

Fri, 30 Jan 2009

Miro 2.0 rc1 released!

I built and posted Miro 2.0 rc1 builds in the sticky section of the nightlies page (http://pculture.org/nightlies).

We have a set of pre-release 2.0 release notes that still need updating but are pretty up-to-date at https://develop.participatoryculture.org/trac/democracy/wiki/2.0ReleaseNotes.

Please post any bugs to http://bugzilla.pculture.org/ with the version as 2.0-rc1. Please include as much information as possible. See GoodBugReports for more details.

To put this in some context, this is a HUGE release for us. We've been working hard on Miro 2.0 since May or thereabouts. It's good to get to the end of the development cycle. At the same time, there are things we're leaving on the table that we'll address in future versions.

Last call for translation help--if you're a translator and familiar with Launchpad, we could use your help! https://translations.launchpad.net/democracy.

I want to send a huge thank you for all the people who have contributed to Miro development thus far especially people I've worked with like Alex, Uwe, Keith, Pan, Robbt, Sedat, Lukasz, Arvid, Elmargol, and others.

Also, thank you to my life partner, Sadie, who has put up with me fixing bugs and doing a release candidate on my birthday.

Finally, happy birthday to me! w00t!

Mon, 26 Jan 2009

Miro needs your translation help! (update 1)

I imported translation updates today. Anything done in since the 22nd should be available in tonight's nightlies.

Since I originally posted this cry for help four days ago, twelve of the languages have been edited.

We now have four completed translations:

Bravo!

We've got five more that are getting close:

The rest of the languages have more than 100 untranslated strings.

If there's anything I can do to help you out, let me know. If you know anyone else that can help with translations, I sure would appreciate the help!

https://translations.launchpad.net/democracy/trunk/+pots/democracyplayer

Thu, 22 Jan 2009

Miro needs your translation help!

We've been pushing hard on Miro 2.0 development for a long time now. So far I've avoided making release date predictions, but looking at the Bugzilla queue and the rate at which we're finishing things, we're probably looking at a Miro 2.0 release in the next 3 or 4 weeks.

One thing that we desperately need help with is translation work. All translation work is done in Launchpad at https://translations.launchpad.net/democracy/trunk/+pots/democracyplayer. You can see the status of translations there, too. Right now it looks something like this:

language    # untranslated strings
--------    ----------------------
German      0 (Go German!)
Slovenian   28
Polish      39
Swedish     58
French      66

The rest of the languages have more than 100 untranslated strings.

I want to thank Lukasz, who's been working on the Polish translations, for helping an enormous amount in the last few weeks. He's identified and helped me fix a bunch of problems with the strings and also worked to make the strings easier to translate. Thank you!

If you can translate strings and/or have done Launchpad translations before, we need your help. We've got a 3 or 4 week window between now (January 22nd 2009) and a release. It's not a lot of time, but hopefully it's enough time for us all to get translations into a better state.

If you have any questions or find any problems, let me know.

parasite with miro on Linux

I saw Chip's blog entry announcing Parasite yesterday and checked it out. I had problems getting it to work with Miro, but he has since fixed the bug I was bumping into.

I think this will be a really useful tool, so I'm doing a short write up of how to use Parasite with Miro.

  1. Grab Parasite from git compile and install it. Instructions are on the Parasite web-site.
  2. When you run make install It'll install libgtkparasite.so into /usr/local/lib/gtk-2.0/modules/ .
  3. Launch Miro like this:
    LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib/gtk-2.0/modules/ GTK_MODULES=parasite ./run.sh
    

That'll launch Miro with Parasite showing you the widget hierarchy and widget properties and all that.

There's a screencast on the Parasite site that shows off more things you can do.

Thu, 11 Dec 2008

new ui for rendered items

I checked in the latest ui in r8671. I've been told that a number of tweak requests are on their way, but it's looking pretty good and there weren't any major bugs.

The new ui took me a week and a half to implement. There were a bunch of complexities that made it difficult. I thought I'd talk about some of those here so people who aren't as intimate with the code can get an idea of how much work and what kind of work is involved.

First off, Miro 2.0 uses native widgets instead of HTML/CSS/Javascript for everything. The one place this isn't quite true is in the item lists where we're rendering our own widgets using a layout/cellpacking API that abstracts over a platform-dependent implementation layer. The platform-dependent implementation layer consists of two implementations: OSX (cocoa, pyobjc, ...) and GTK (pygtk, pango, ...). The abstraction layer is very similar in style to the GTK side of things. Ben wrote most of this as we needed it a few months ago.

The first problem I had was that I wasn't familiar with the platform-independent layout/cellpacking API we had.

The second is that there are a bunch of variations on the theme. Depending on what the context is, the item gets rendered differently. In playlists, items have a "Remove from playlist" button, but in channels, the item has a "delete" button.

Additionally, items have two display modes: with details and without details. The without details mode is the easiest to render since it's just a bunch of packed things and the resizing handling is easy to deal with. The with details mode is really difficult because we want to show the entire title and description for the item but the cells these bits are in expand as the window is resized. We get into this chicken-and-egg problem where we need to lay things out, but in order to lay things out we need to know the size of the space we're laying things out in, but in order to know the size we need to lay things out....

On top of that, items are either selected or not selected--both of which look different.

The other set of problems I ran into were theming issues. The rendering code tries to "look" like the platform it's running on: the OSX buttons look different than the GTK buttons; OSX uses Finder but Windows uses Explorer and the text needs to reflect that; ...

All of this makes for very complex implementation code. Structuring that as I figured things out was difficult to do well and the result isn't great structure-wise. Ben's already done a pass at fixing the resizing issues which resulted in some structure fixes. It's likely that other things will get fixed and massaged over the next week or so.

The end result of all this work is that we went from this:

to this:

Mon, 03 Nov 2008

intrepid, miro 2.0 status, et al

First off, I put together a set of amd64 packages for Ubuntu Intrepid--they're in our repository now.

Second, I want to point out that after working and playing with what will become Miro 2.0, it's really hard to go back and develop on and play with the Miro 1.2 series. We've done a lot of work on the Miro codebase improving it, refactoring it, adding unit tests, re-writing the user interface, fixing behavior, and adding new features (detached playback ftw!).

We still have a handful of things that Miro 1.2.8 did that Miro 2.0 doesn't do yet, but the list gets shorter every week. We also have a bunch of bugs that need to be looked at and worked on and some polish that needs to happen.

You can see the list of things we're working on here. It's loosely prioritized--we're spending more time trying to get things tested and fixed than we are in mothering over the bug data. There are 85 bugs in the queue of things to do. To put that in some perspective, we've fixed over 350 bugs so far.

I want to thank Jason who interned with us over the summer. It was great to work with him and his contributions to the Miro project were really helpful. Also, he was instrumental in making the Miro monster. I hope they put it up on Etsy or some other online shop because they're awesome!

I want to thank Pan, Davide, Bill, Markus, and Sedat for their work testing Miro over the last couple of months. Their efforts are invaluable and very much appreciated.

Fri, 24 Oct 2008

chris

Earlier today or yesterday (time goes so fast these days I can't remember when I did what), I added Chris' blog to the planet.

He's been contributing to Miro development for a while now and I mentioned him in a previous post. It's good to have him on the team in a more permanent fashion.

detached playback

Luc landed detached playback a little over a week ago in r8282 (and a bunch of checkins before that).

The interface for it is a little rough and might change a bit over the next few weeks. It's something a lot of people have mentioned they wanted--David Ascher gave me a stern talking to about it at OSCON 2008. It's going to be a kick-ass Miro 2.0 feature.

I need to spend some time to get it working fully on Linux and Windows, but most of the code is there now and it works pretty well on OSX. w00t!

Sat, 27 Sep 2008

your youtube four

I like passively watching memes but not participating because I'm not into getting-to-know you blog posts. But... Chris has a "youtube four meme" that's amusing.

I only have two that come up. I don't visit Youtube often.

  1. Open your fancy Firefox 3 browser.
  2. Click on the awesomebar and type in ‘youtube’.
  3. Post the first four videos that come up.

Sat, 06 Sep 2008

Long strings in Python

In Miro, we've got long strings that are displayed in the user interface. I think the code that defines these strings is messy and hard to parse. For example:

def some_func():
    description = _("""\
This is a really long description that has multiple sentences and a few \
things that need to %(getfilledin)s and it goes on and on and on and on \
and I'm not really sure what's the best way to format it so that it's happy \
in editors and easier to parse.""") % {"getfilledin": blahblah}

PEP-8 doesn't address this, which is fine. I was curious to see what other projects do.

Thu, 04 Sep 2008

status (6 or something)

I haven't written much in the last couple of weeks because I was on vacation. On the first day of vacation, I went to the beach and got knocked over by a wave, somersaulted for a while, jammed my shoulder somehow, skinned my knee, and finally came up for air. I said, "Screw this!" and went back to my beach chair where I sat around, bled, whined about how my shoulder hurt and ended up with a serious sunburn. I spent the next few days indoors--vacation is dangerous.

In the last couple of weeks, I threw together a preferences panel and a channel settings dialog which, while mostly functional, are "putrid looking". Luc is going to spend some time fixing that. Ben spent time re-implementing itemlists and allowing for channel searches, saving channel searches, and some other things. We've been tweaking the widgets to make them more functional and pretty.

We still have a lot of other ui stuff that still needs fixing and tweaking. The dialogs that you sometimes see at startup when things are awry need reimplementing. The sort bars need to be reimplemented. There are some other tawdry odds and ends that also need to be redone. Generally, things are coming together and most of the big features are in, but there's a bunch of work that still needs to happen.

This morning, we talked about where we want to draw the line and encourage people to start testing the nightlies again. We haven't thus far because the laundry list of things that weren't working was pretty long. Janet thinks it's probably a good idea until most of her litmus tests pass. Otherwise you'll all be wasting your time finding things we already know about.

However, I think if you're interested in testing out Miro 2.0, we've hit a point where it's stable enough to use. I think we're at what other projects would deem an Alpha 2 state.

Definitely take the time to back up your database BEFORE you try testing a nightly.

We've got a laundry list of issues targeted for 2.0. If you encounter problems with a nightly, let us know. We hang out on #miro-hackers on freenode and on the develop mailing list, too.

If you're interested in helping out, we sure could use the help: testing, translating, triaging existing bugs, writing patches, drawing a fancy 20 page comic describing how great Miro 2.0 is going to be, ....

everything i know i learned from bugzilla

I did some bug triage today and then went through and fixed some old bug data (apologies to everyone for the bug spam). A couple of interesting things came out of that.

First off, it's interesting to note that 2.0 so far has 163 bugs marked as FIXED. That's more than any version of Miro since 0.9.5. Hard to know what happened before that because we have inadequate bug data. Go team!

Second, there are a total of 877 open bugs right now. 323 of those are targeted as Wishlist items. We've been around the 850 mark since September with a big bump between December and February in the 1000 range. I think that means generally speaking that we're keeping up with bugs which is good.

Third, it's pretty clear that the widget overhaul will clear out a lot of older bugs. Partially because we're ditching the HTML interface and the issues that caused, but also because we're re-implementing a lot of stuff and in doing that, fixing issues in the process.

Miro 2.0 is going to rock your socks!

Fri, 15 Aug 2008

my miro subscriptions

Here's the list of channels I'm currently subscribed to with Miro:

Subscribe to them all!

Miro Video Player

status (5)

Progress went well this week. We've been working on the missing functionality, fixing bugs, removing dead code, cleaning up existing code, and generally progressing on Miro 2.0 development.

Last week, I wrote up the list of must-have features before Miro is ready for testing. We finished the following items:

And fixed a bunch of bugs. Ben did some optimization work on OSX, too. Some of those are new items added to the list in the last week. Some of them are smaller chunks of existing items.

We have the following list of things to do still:

You can follow the progress on the timeline.

Fri, 08 Aug 2008

status trunk (4)

Things are progressing. I landed the last of the menu handling changes, Ben did a bunch of Mac OSX tweaks and Windows tweaks, there's been work on playing videos, Ben re-worked how we deal with resizing thumbnails so it no longer uses imagemagick and no longer generates lots of files in the icon-cache, and there have been a lot of bug fixes as well.

On Tuesday, a bunch of us got together in Worcester for the Miro Summit and worked out some things including the plan going forward. From that discussion, Nick wrote up a list of must-have features that need to be re-implemented before we want to get functional testing going. This list is likely to change, but here it is generally speaking:

From that list, Chris Webber is working on a patch for channel details view which I think is close to done. I think I'm going to tackle Preferences next. I'm not sure what other items are spoken for. I'm also not sure how much time it will take to tackle all of these--maybe a month?

That brings me to my next two points:

First, I know it's taking us a long time to get things done, but it'd be faster if we/I didn't have to answer issues along the lines of "are you done yet?" and "i tested xyz nightly and the following things don't work...".

I really appreciate the fact that you all are eager to help out with Miro development and I really apologize for the frustration that comes with not being able to do anything and having to wait around for a while. We're working as hard as we can, but it's just going to take time. I'm in this weird position where I want to maximize the time I'm spending doing the work and minimize the time I'm spending talking about it and managing it, but I don't want to leave you in the dark about where we are. It's a tough thing to balance especially where I'm trying to minimize the time I spend thinking about balancing. ;)

Oddly, I bumped into this post on 43 Folders which I think is pretty relevant here.

The second thing is that we've had a lot of help from Chris Webber over the last few months. He's been working in his spare time to come up to speed with the new widget code and help re-implement functionality. His efforts are fantastic, the quality of his work is solid, and he's absolutely making a big dent in our ability to finish the work faster. You can see the efforts of his work here--I refer to him in the checkin comments as "Chris", "Christopher" and "Chris Webber". Thank you Chris!

That's it for this update!

Wed, 30 Jul 2008

status of trunk (3)

I apologize for skipping last week's status of trunk.

Trunk is still unstable. I consider "trunk is stable" to mean that most things are re-implemented and it's usable. We're not quite there yet. I'm seeing occasional crashers (most of them my fault so far), there are a bunch of features that haven't been re-implemented (site search, channel search, playing through a playlist, setting preferences, ...), and there's still ui nits that need ironing out.

We're moving along, though it seems as if the progress comes in waves during the week. I think part of this is that we're all using git over svn and batching commits. I know I am.

I was gone all last week at OSCON, but I'm back again to help out with the push to Miro 2.0.

You can follow along in your story book with the Trac timeline.

ogg ogg ogg ogg ogg!

This is awesome news! Hooray for Mozilla!

I eagerly look forward to the many, many things Mozilla is enabling us to do.

Play OGG!

Edit: Another blog entry espousing the goodness of OGG support in Firefox!

Mon, 28 Jul 2008

Status 07/28/2008

I was at OSCON last week and met many people some of whom I've known for several years (Ted, Steve, ...). I also met a bunch of people who I've followed for many years and some people I've worked with when doing the Firefox 3 work I did. It was really exciting to be there. I didn't attend any keynotes or sessions, but the conversations I had were well worth trekking all the way to Portland, OR and back. I also got to spend a week with my sister who lives in Portland.

On the flight there and back, I worked on PyBlosxom. I mostly concentrated getting better acquainted with nose and using nose and coverage to help guide my testing efforts. The results were phenomenal. I increased the test count from 53 or so to 207, I increased coverage from some low number to 57% and I discovered and fixed a bunch of bugs. Because I switched to git over svn, I was able to commit locally and manage the work I was doing. All very exciting.

Miro is coming along very nicely. We took the plunge to ditch the previous frontend for a new one that has fewer layers of indirection. The results so far are encouraging--I think it was absolutely the right thing to do. Incidentally, I blogged about OSCON on my Miro devblog.

In the last few months, I've thrown together several web-sites using werkzeug, sqlalchemy, and mako. I really like this stack since it doesn't involve a lot of infrastructure and the number of files and "things" involved is pretty small. I think this is going to be my preferred stack for webapps going forward.

Just before OSCON, I signed up with identi.ca. It's my first micro-blogging account. Mostly I wanted to see what micro-blogging was like and follow other OSCON attendees. OSCON had a _lot_ of back-channel conversations going on.

Just before signing up for an identi.ca account, I met Jack, who lives around the corner from where I live. I wish I had made the effort to contact him years ago.

I think that's about it. It's been an interesting few months.

Fri, 25 Jul 2008

OSCON: Thursday

It was a really great day today. Talked with Songbird and Thunderbird people about our projects in relation to contributors and outside contributions.

There's a lot of interest in a plugin system for Miro--it's definitely on my list of things to work on in the near future. There's also a lot of interest in a user interface that's tv-friendly. That's something I think about a lot, but it's not something in my immediate queue.

I talked to Dave Camp on the work he's doing on the new embedding API for Gecko--it sounds pretty cool.

Met a lot of happy Miro users. There are a lot of people out there rooting us on which is very exciting. :)

That's the end of OSCON for me. I'm going to spend Friday hanging out with my sister and then I fly back on Saturday. It's a pretty incredible conference all things considered. Met a lot of great people doing a lot of really fantastic work. It's very inspiring. :)

Thu, 24 Jul 2008

OSCON: Wednesday

I spent the day in the Mozilla booth in the Expo hall. I talked to 30 or 40 people, I think--after lunch it was kind of a blur; after dinner it was definitely a blur since the expo hall was serving free beer (or "free beer as in beer" as I said a couple of times which I thought was pretty funny, but went over like a lead balloon). There are a lot of Miro users at OSCON, a handful of people who have never heard of it, one or two people that thought it was still named Democracy Player, and I met Michael Frank who contributed code to Miro at some point before I was with the project!

I also talked with a lot of Mozilla people who came and went over the course of the day. Listening to Ben and Taras talk about static code analysis was really exciting. I talked to Stephen, Peter and Rob from Songbird. We spent some time talking about where Songbird and Miro overlap and what kinds of things we can work together on. The immediate result of this is that I'm going to start hanging out on their IRC channel and probably start looking over their code base. Additionally, Peter is working on a system of identifying media from RSS/Atom data. I'm hoping to help out since this is a problem Miro has, too, for some feeds.

I also go to see Asheesh and Nathan from Creative Commons and we had time to catch up on life and projects.

I went to the BoF session on addons for XUL-based applications. We talked about pain points in the extension-development process. Overall it was really educational both from the standpoint of how to write XUL-based application extensions as well as what kinds of things we need to focus on when we create a Miro plugin system. Songbird has an extension system--we should definitely look at what they've done given that they're very close to us in application space. I also went to the BoF session on the static analysis project Ben and Taras are working on. Less because it's applicable to anything I'm probably ever going to do, but more because it's just mind-bogglingly interesting. They call it Dehydra.

That's it for today. Tomorrow should be interesting, too.

Wed, 23 Jul 2008

OSCON: Tuesday

I went to the convention center to check in today and run some errands. I have an Expo pass, so I'm not able to go to the tutorials, sessions, keynotes or some of the other things that were happening Monday and Tuesday. Even so, there seems to be plenty to do.

Amongst other things, I talked to someone about his Eee PC, I did some Miro hacking, I drew a Charlie Brown stripe on my laptop cover (it came out awesome!), I talked to iSneeze on IRC about plugins (I need to write up a post about plugins), and I discovered that there are 5 Starbucks locations on the 8-block walk from the convention center to one of the nearby Kinkos locations.

I was going to help Jay with the Mozilla booth setup, but they finished before I got in contact with them. Instead, I went to the FSF Portland Pizza Party which was really great. I talked with Mako and Asheesh both of whom I've known for many years from PyBlosxom. I also met Karen and Aaron from the SFLC and Deborah and Joshua from the FSF. I also met Gerv from Mozilla, too. And John Eckerman and a man named Charlie and a man whose name I think was Craig.

Everyone I talked to fell into one of two groups:

  1. Either hadn't heard of Miro or had, but didn't use it
  2. Avid user of Miro
I didn't meet anyone who had heard of Miro and didn't like it. It sounds like people are happy with Miro and look forward to the future of Internet video with open standards without gatekeepers that we envision. Also, several people mentioned that the content on the Channel Guide just keeps getting better.

While at the FSF pizza party, I became an associate member. The work that they're doing is really beneficial to us all. They're pushing for open media standards adoption, pushing for fixing the patent system in regards to software, fighting against DRM, and a variety of other causes. It's important work that needs to be done for video on the Internet to be open to everyone.

I'll be spending the next two days in the Mozilla booth. If you're at OSCON, drop by and say hi!

Thu, 17 Jul 2008

Me at OSCON 2008

I'm heading to Portland, OR for OSCON 2008 to help man the Mozilla booth at the Expo. I registered as an Expo attendee, but I'll be there (or near there) from the 19th through the 26th.

My primary purpose there is as a representative for Miro and talking to people about it. However, I'm also interested in meeting up with people working on:

If you're interested, too, ping me. I'm hanging out on the #oscon channel on irc.freenode.net and you can always get me by email or comments below.

Sun, 13 Jul 2008

Miro at OSCON 2008

I'm heading to OSCON 2008 and will be hanging out in the Mozilla booth talking about Miro things, Mozilla things, happy things, and whatever other things.

When I'm not hanging in the Mozilla booth, I'm hoping to be doing some Miro hacking (and possibly some PyBlosxom hacking--we shall see).

I'll be wearing Miro and Miro-related t-shirts until I run out. Then I'll be wearing other things.

If you're planning to be at OSCON, stop by the Mozilla booth and talk to me about things you like, things you dislike, and favorite channels. I'm also very interested in helping people learn how to help out.

status of trunk (2)

First off, sorry that this status update is so late--I was side tracked on Wednesday and then the status slipped my mind.

In the last week and a half, there's been a lot of progress in trunk. While we haven't re-implemented everything yet, we're doing pretty well.

You can follow along in your story book with the Trac timeline.

I really appreciate your patience. I think we've got another few days to a week before testing builds is useful where "useful" is defined as "you'll start having a good chance of catching things we don't already know about".

Sat, 12 Jul 2008

anniversary

On a side note, one year ago (i.e. the 12th of July, 2007), I started working at PCF. It's been a really exciting year! Whee!

Thu, 03 Jul 2008

fast and loose cloc stats for Miro

Following Paul's lead, here are some cloc stats for Miro in trunk:

willg@mercury:~/pcf/miro/trunk/tv$ perl /home/willg/Desktop/cloc.pl .
    3468 text files.
classified 3457 files
    1644 unique files.
    2763 files ignored.

http://cloc.sourceforge.net v 1.04  T=20.0 s (35.2 files/s, 9438.1 lines/s)
-------------------------------------------------------------------------------
Language          files     blank   comment      code    scale   3rd gen. equiv
-------------------------------------------------------------------------------
Python              286      9689     10059     53376 x   4.20 =      224179.20
C/C++ Header        265      7941     14412     31565 x   1.00 =       31565.00
C++                  83      5474      4591     27832 x   1.51 =       42026.32
C                     9      1159       889     13119 x   0.77 =       10101.63
Javascript           17       420       557      2699 x   1.48 =        3994.52
CSS                  11       391       476      2451 x   1.00 =        2451.00
IDL                   7        18         0       486 x   3.80 =        1846.80
XML                  13         2         3       275 x   1.90 =         522.50
Bourne Shell          8       136       319       248 x   3.81 =         944.88
make                  1         7         0        94 x   2.50 =         235.00
HTML                  4         2         2        67 x   1.90 =         127.30
DTD                   1         0         0         3 x   1.90 =           5.70
-------------------------------------------------------------------------------
SUM:                705     25239     31308    132215 x   2.41 =      317999.85
-------------------------------------------------------------------------------

status of trunk

Over the last week I've been coming up to speed on the architectural changes that occurred when Ben landed the new widget code. I've also been hooking up menu items to their respective behavior and fixing bugs on the Linux and Windows platforms. In many cases, I've been re-implementing the behavior using the new messaging system which has required me to read through the "old" code and figure out what the behavior used to be. Progress was slow at the beginning, but is picking up now.

You can see checkins progress in the Trac timeline.

There's still a lot of work to do to get things working again, but things are progressing.

So, why all the trouble? Why not just leave it as is? Off the top of my head:

  1. Miro's UI is no longer rendered using HTML templates. w00t!
  2. It looks like overall memory usage is lower by around 20%.
  3. Memory usage of Miro when displaying feeds with lots of items scales much better.
  4. Miro's faster at displaying feeds with lots of items (where "lots" is defined as > 50).
  5. Miro on Windows is no longer a XULRunner application; instead we're embedding XULRunner for web-browsing. XULRunner is a great platform, but this change makes Miro a Python application on OSX, Linux and Windows and we can unify our toolset. That's a huge win for us and reduces the amount of work it takes to maintain all three platforms.
Regarding the performance gains, I'm seeing those on Windows and Linux, but I definitely haven't spent a lot of time doing rigorous measurements. Treat them as if they were wild unsubstantiated rumor. I haven't used Miro on Mac OSX enough to notice anything there, yet.

Getting there...!

Mon, 23 Jun 2008

trunk about to be _very_ broken

Just as a word of warning, if all goes well, Ben will be merging into trunk what he and others have been working on over the last few months in the next day or so. When that happens, trunk will become very broken and will remain that way for possibly a week as folks work on stabilizing the new user interface code and reimplementing a bunch of features... silly things like being able to play videos.

If you're tracking trunk or using nightlies, you should seriously consider waiting a week to update.

You might ask, "Gah! What a bunch of idiots! Why are they doing this?!" The answer is that the widget overhaul is very badly needed and it'll fix one of several big performance issues that Miro currently has. It's a big change and it'll cause a big mess for a short while, but it's going to make a big big big difference.

In order to do this quickly, we'll be focusing pretty hard on getting trunk working again for a while. My apologies if any of us seem like we're dropping off the face of the earth or ignoring questions, concerns, ...

Thu, 19 Jun 2008

at FUDCON 10 -- come meet me!

I'm at FUDCON10 right now (Thursday, 6/19/2008). I'm interested in meeting people here and talking about Miro and Fedora TV. If you're here, come find me. I'm currently hanging out in the main FUDCON room in the corner all by myself. ;)

Wed, 18 Jun 2008

review flag; contributing patches

We've had a few people contributing patches for the Miro codebase. I decided it was time to add a review flag like Mozilla has in their Bugzilla instance. This makes it easier for us to keep track of attachments that are waiting on reviews.

As such, I added a "review" flag to our Bugzilla instance for attachments.

I thought I'd talk a little bit about contributing patches.

Guess what? You're a happy Miro user except for one little thing that really annoys you. You head on up to the Miro Bugzilla bug-tracker to see if this is a bug/feature that someone else has reported already. Wow--turns out it has been reported. Not only that, but there's been some analysis done and some speculation as to a good attack vector for fixing the problem.

So you roll up your sleeves, add a comment on the bug stating you're going to work on it, set yourself as "assigned", dust off your favorite editor, skim through the Miro development wiki for the svn repository information and build instructions, and get to work.

A few hours later you've got it working on your machine. You run:

svn diff > bugid.patch
to generate a .patch file containing the changes you've made. You visit the bug in the Miro Bugzilla bug-tracker, find the bug you were working on, and click on "add attachment". You'll see the following screen: “Add attachment” page Deftly, you upload the patch, click on the "patch" checkbox, select "?" from the Review flag dropdown and type in will.guaraldi@pculture.org in the Requestee box. Then you press the "submit" button! Will (that's me) gets an email stating that there's an attachment waiting for review. I add it to my queue of things to look into. If it's not something I know anything about, I'll find someone else who can look at it. Then someone will add a comment to the bug reviewing the patch and ... the rest is iterations on that. If you're interested in helping out, we've been tagging bugs that we think are good for people new to the codebase as "bitesized". You can see a list of them here.

Wed, 04 Jun 2008

June 3rd chat -- follow-up and some more answers

I was the Q&A person for the June 3rd chat yesterday and I thought I'd post some follow-up and answer some of the questions we didn't get to.

Follow-up

First off, I thought the chat went well and it was neat to talk to a bunch of people I'd probably never talked to before. It seems that the predominant theme was "when are features landing?" and "what's coming up?" It's a little hard to answer those questions because I've been pretty focused on the next release that I haven't been involved in planning beyond that.

Now to answer some questions that we didn't have time for.

How long have you worked for PCF? What did you do before Miro?

I've been working at PCF since August 2007. This is in many ways my dream job with my only issue being that I wished I either earned a bit more money or had a lower cost of living. Other than that, I'm doing what I love doing, I get to hang out with some really great people, and the stuff we're working on is really important to me.

I'm going to assume "What did you do before Miro?" means "What did you do before working at PCF?" Prior to PCF, I spent 2 years getting a Masters at Northeastern University CCIS in programming language design/theory and software engineering. Prior to that, I worked in the financial services industry at ByAllAccounts, I worked as a contractor for Tallan at Ingram Micro on their international web-site system, and various other software developer positions before that. I've been programming for probably 20 years now in various forms, but this is my first FOSS job and the first job where I've worked with XULRunner and GNU/Linux-stack components like Gtk+, GStreamer, Xine, Glade, DBus, Glib, GObject, ... It's been great!

shoestring: Video metadata: any plans to see miro actually writing it to the files/being able to edit it?

We've talked about making ui changes to allow for changing "metadata" of content, specifically name, filename, tags, ... It hasn't happened yet, though. I think it's one of many things waiting for the great widget overhaul.

Miro can export feed information to OPML format, but this doesn't include metadata about content. I don't know offhand if there are plans to add that or not. There are plans on building an API to allow programs like MythTV and Elisa and other systems like that access to Miro data. That hasn't happened yet, either. In this case, I think it just needs someone to work on it.

Evan: Is it possible to install miro without bittorrent? I know this question is weird, but in some (many?) companies bittorrent is banned ... yet the company is ok with limited internet video usage.

We don't have builds that don't have bittorrent in them. It would take some work to decouple Miro from libtorrent and/or disable it and then it sounds like we'd have to provide a separate set of libtorrent-less builds. I don't think that's a bad idea, but I don't think it's going to happen without a champion who can do the work.

will: (seed question) What do you do when you're not working on Miro-related things?

A little silly answering my own seed questions, but ... so it goes.

Lately all I've been doing is Miro-related things. We're pushing really hard on the next release. We're really excited about it and we think it's another big milestone in Miro's life.

This year, I'm a backup admin for GSoC for the PSF thought I haven't actually had to do much (yet).

I've been trying to finish up work on version 2.0 of PyBlosxom for the last 6 months but haven't found time and energy to get there. I've been able to make some progress, but it seems to be on a permanent back-seat.

I'd really like to help Mozilla on their embedding efforts. I'd also really like to get more involved in gstreamer, Python 3000 and a bunch of other projects.

Epilogue

I think that's about it. Given that the chat went pretty well all things considered, there will probably be another one in the future and probably more after that.

Thu, 22 May 2008

Miro hackfest in Boston

I live in Somerville, MA, USA and I'd like to organize a Miro hackfest in or near Boston. Possible topics for that hackfest include:

I was thinking we'd do the hackfest sometime in June. Possibly as part of FUDCon10 or in the vicinity.

If you're interested and/or have ideas, find me on IRC, email me, comment below, or send me telepathic messages of hope.

Sat, 17 May 2008

gstreamer gconfvideosink sink, unittests, new ui stuff

Am I missing anything? Let me know in the comments.

firefox 3 and enclosures (recap)

Back in December and January, I worked on some patches for Firefox 3 that enhanced the feed preview page. I wrote a post about it back then... but I'm updating that post with recent screenshots and a better description of the work. The previous post was mostly about how great FOSS is.

The patches fell into two big features. First, I added enclosure detection to the FeedProcessor and then modified FeedWriter to show enclosures alongside the entries. This has two huge benefits: it allows you to easily tell if the feed has enclosures and it allows you to see what they are, how big, what type of media, ...

Second, I modified Firefox so that it allows you to associate video podcasts with an application, audio podcasts with another application, and all other kinds of feeds with a third application. The benefit here is that you can send media podcasts to an application that handles that well (*cough*Miro*cough*) and regular news feeds to a different application that handles that well.

Screenshot of Firefox 2 feed preview page:

Firefox 2 feed preview page

Screenshot of Firefox 3 feed preview page:

Firefox 3b5 feed preview page

Of the two features, I hear the most comments about the first one mostly along the lines of, "I'm so glad I don't have to view source to see the enclosures anymore!" The second feature isn't as immediately exciting. The implementation of distinguishing feeds is intentionally simple and there are a lot of corner cases where it doesn't work very well. Also, there aren't many applications that can really take advantage of it. I expect this second feature to flourish as Firefox development continues and video/audio podcasting evolves.

Sun, 27 Apr 2008

Hardy packages

I updated my AMD64 machine to Hardy today and built a set of Miro 1.2.3 packages for Hardy AMD64. Going forward, I'll continue to build packages for Gutsy and Hardy for both i386 and AMD64 platforms.

Miro 1.2.3 is the last release I'll be doing packages for Dapper and Feisty.

If someone could help out by maintaining and testing packages for those two platforms and any others that we don't cover, that'd be really great. Let me know in the comments, by email, or on IRC.

Sat, 26 Apr 2008

Miro and GStreamer on gtkx11

GStreamer has a lot of momentum behind it now and a lot of work has gone into it over the last year and it's really paying off. As such, Miro 1.5 (the next version) will be the first version of Miro which defaults to the GStreamer renderer instead of the xine renderer. I'm excited about this change and in the future we'll be able to drop support for xine which is one less complexity to deal with.

If you're using the GStreamer renderer in Miro with either trunk or Miro 1.2.3 and discover any problems, let me know. It helps to write up a bug, but if you're loathe to do that, comment here. Make sure you test with totem-gstreamer or some other GStreamer movie player as well and report those results--that helps us determine whether the problem lies with Miro or possibly elsewhere.

There are probably going to be a few rough edges in the switch and I could use any help I can get with them.

Wed, 23 Apr 2008

Miro 1.2.3 released

Miro 1.2.3 was supposed to be a minor bug-fix release which also had xulrunner 1.9 support for gtkx11. But then vlc 0.8.6f came out and we updated our Windows build to use that. But then we found a bunch of problems and many of those got fixed. But then I decided I might as well tackle support for YouTube's mp4 versions. But then... but then... but then... two weeks and a lot of work from a lot of people later and we finally got Miro 1.2.3 out the door.

This is the first release I've built Ubuntu Hardy packages for. That's cool--a lot of work went into that.

This is the last release I'll be building Ubuntu Dapper and Feisty packages for. If there are still Dapper and Feisty users out there (and I'm sure there are), hopefully a champion will arise from your midst and set up a PPA to support you.

I really want to thank Markus, Uwe, Janet, Ben, Chris, Luc, Paul, Dean, Sedat, all the other people who hang out on #miro-hackers, the bug reporters, the testers, the translators and everyone else involved in the last three weeks of work flurry that resulted in Miro 1.2.3.

Having said that, there were a bunch of bugs that were discovered and triaged to the next release. I wasn't able to get a Fedora 9 virtual machine working in VirtualBox and wasn't able to help them out with their Miro packaging problems. I also wasn't able to spend time with my Debian Lenny virtual machine and help Uwe with his packaging.

In summary, there was a lot of stuff that was done which is great and a bunch of stuff left on the floor until the next version which is a bummer.

Onwards to the next release....

Sat, 19 Apr 2008

Hardy tips for resolution fixing when using it in a VirtualBox vm

I'm trying to get Ubuntu Hardy support for Miro. I installed Hardy Beta 1 in a virtual machine with VirtualBox. The install went fine. I had problems fixing the resolution, though.

Hardy starts off with an 800x600 resolution which is too small to run Miro. To fix it, you have to:

  1. run sudo displayconfig-gtk from a terminal
  2. click on the dropdown for models and choose LCD Panel 1024x768
  3. click on the Test button to make sure it works
  4. click on the OK button to apply that one change
  5. log off
  6. log on again

DON'T change the monitor AND the resolution of the screen at the same time. If you do that, you see no errors, no changes get made, and you'll spend a while scratching your head wondering what happened.

If all went well, you should see the resolution you were looking for.

Note that since Ubuntu Hardy is beta software, this could all change tomorrow.

Updated: 4/19/2008 - It looks like they took displayconfig-gtk out of the menus in the Hardy release candidate so I updated the instructions above.

Tue, 15 Apr 2008

Miro 1.2.3 rc0 released!

Did a release of Miro 1.2.3 rc0 today. This fixes some problems with Miro on Windows, adds xulrunner 1.9 support for gtkx11, works on Hardy (with Hardy packages, too), fixes a problem with external torrents disappearing, and other things as well. I also did another translation sync today, so it's got the most up-to-date translations available.

The release candidate is available at http://pculture.org/nightlies/.

Hardy packages available in our Hardy repository. Details at http://getmiro.com/download/ubuntu.php.

Sun, 06 Apr 2008

Miro 1.2.3 plans, hardy support, bug fixes, et al

I'm hoping to do a Miro 1.2.3 release in the next 7 days or so. This release will include support for xulrunner 1.9 on gtkx11, support for Ubuntu Hardy, updated translations, vlc 0.8.6f, and a bunch of bug fixes for bugs found in Miro 1.2.2 and previous releases including some more "Miro crashes on startup" type issues.

There are three things you can do to help:

  1. help with translating Miro into languages you know -- see https://translations.launchpad.net/democracy/trunk/+pots/democracyplayer
  2. testing Hardy packages -- see http://getmiro.com/download/ubuntu.php for the repository
  3. send encouraging words and positive energy
Also, we'll definitely need help testing the Miro 1.2.3 rc0 build which will be out in a few days--hopefully before Thursday.

I'll be on #miro-hackers on irc.freenode.net. Also, if you have problems, submit a bug report at bugzilla.pculture.org or find someone to do it for you on #miro or the forums.

Wed, 02 Apr 2008

call for translations for upcoming Miro 1.2.3

I uploaded a new .pot to Launchpad just now (first time for me!).

If you're a translator for the Miro application, please take a look at the languages you translate for and update them accordingly.

We're planning to do a Miro 1.2.3 release in a week or so. The changes since Miro 1.2 are minimal, so this allows existing translations to improve for the 1.2.3 release.

Thu, 27 Mar 2008

user interface overhaul, u3, hardy support

What landed in trunk recently?

Am I missing anything? Let me know in the comments.

what's in trunk?

I'm starting a new category of my devblog where I'll mention what's just landed in trunk. This does two things:

  1. it forces me to keep track of what's landing in trunk
  2. it's an easier to digest view of things than Trac timeline of svn
  3. it'll let people know what's in the pipe
  4. it gives people who are tracking trunk a vague idea of stability levels
I'll start blogging interesting things landing in trunk with their revision numbers and probably break it down into bug fixes, enhancements, and misc stuff.

Any thoughts, suggestions, et al--toss them in the comments.

Wed, 26 Mar 2008

bitesized

If you're eager to help Miro with code contributions, but don't know where to start, take a look at bugs marked with the bitesized keyword in Bugzilla.

You can see a list of them here.

gtkx11 platform and xulrunner 1.9 status

I merged the changes into the Miro-1.2 branch and cut a tarball. You can get the tarball at http://pculture.org/nightlies/Miro-1.2.2-test.tar.gz.

This code needs testing from distributions that are only using xulrunner 1.9. It "works for me" with Ubuntu Hardy Beta 1 today (but didn't work yesterday) and it works with Ubuntu Gutsy (where it compiles against Firefox). I haven't tested it on other distributions.

For the most part, I fixed things that were obvious compile/runtime issues. I didn't delve into the API differences between xulrunner 1.8 and 1.9 and fix deprecation problems and things of that nature. The changes I made are mediocre, but they seem to work for me. They're loosely based on changes in the Ubuntu packages. I talked about that in a previous blog entry.

I need help testing this with other distributions. I also need help making sure that no other changes are required. Reply in the comments below, toss a comment in bug 9692, ping me on IRC, and/or send me an email to my pculture.org email address.

The more help and the more eyes we get, the more likely that the code will work where you need it to work.

If no one helps out, then I'll probably just release it and see what happens.

Note: The changes in the above linked tarball are NOT in the Miro 1.2 or 1.2.1 releases. This is not a final release. This is for testing purposes only.

Fri, 21 Mar 2008

some numbers I drummed up while building Ubuntu packages....

After that lunch on Wednesday where I talked about how much I really love the numbers and pretty graphs that are on planet.mozilla.org regularly, I wanted to do stats on Miro.

There are two things I'm interested in measuring. The first is measurements related to release cycles and development process. The second is measurements related to contributions.

Anyhow, here are some rough tables:

           tag      tv/    released    cycle
           ------   -----  ----------  -------
Miro 1.0   151 MB   53 MB  11/13/2007  N/A
Miro 1.1   169 MB   58 MB  1/10/2008   58 days
Miro 1.2   253 MB   63 MB  3/20/2008   70 days
We're still doing tight release cycles. I'm hoping we'll trend towards longer release cycles. Something in the 3 month range would be easier on the devs and probably other people, too.
           bugs fixed all gtk mac win    bugs created all gtk mac win
           ---------- --- --- --- ---    ------------ --- --- --- ---
Miro 1.0   65         18  17  15  15     85           20  17  17  31
Miro 1.1   40         16  6   10  8      106          44  21  20  21
Miro 1.2   82         26  14  13  29     --
I'll let you interpret the data as you like. I think the "bugs fixed" column is indicative of our priorities between the releases: 1.0 was a stability-focused release, 1.1 put out libtorrent, and 1.2 involved a code overhaul which caused a lot of regressions.
          languages
          ---------
Miro 1.0  63
Miro 1.1  66
Miro 1.2  70
I'd like to figure out how to get a rough measure of quality of translations, but I'm not really sure how to go about doing that. I threw together a script to count the number of instances where msgid differs from msgstr, but the results don't seem very indicative of a correctness or completeness figure. Launchpad has statistics, but there's no way to look "back in time" at previous releases that I can find. Are there any ideas for how to do that by looking at the .po files?
          patches from contributors applied
          ---------------------------------
Miro 1.0  4
Miro 1.1  2
Miro 1.2  1
What this table shows is that almost all development is being done by PCF. This table troubles me the most--more about that at the end. On to stats from Bugzilla.... First off, our Bugzilla data before October is probably mediocre, so I'm not really even looking at that. After that, the data has been getting better as more people are helping to triage and annotate bugs. Also, some bugs never make it to Bugzilla. I know that sedatg and some other people mention issues to us on IRC semi-regularly which get fixed, but aren't tied back to Bugzilla bugs. It's probably fair to say these stats are indicative of things but aren't 100% accurate.
Miro 1.2 stats
==============
length of cycle:      70 days
bugs fixed:           82 total
  By Operating System:
     all:             26
     gtkx11:          14
     osx:             13
     win:             29

  By Severity:
     blocker:          1
     critical:        12
     major:            5
     normal:          58
     minor:            2
     enhancement:      4

  By Component:
     Channels         11
     Download          4
     Feeds             1
     Guides            3
     Install           5
     Library - New     3
     Menu - Shortcut   3
     Min - Max         1
     Playback         14
     Playlists         2
     Search            6
     Startup          10
     Storage           1
     System settings   2
     User interface    5
     main             11

bug reporters:        24 total
     pcf people:       7
     community:       17
Miro is benefiting greatly from the community with testing and translations--that's really great and it's helping a ton! However, Miro is not getting much help from the community with code and PCF is pretty much funding all development. This is troubling. Miro is getting bigger over time and the complexity is growing, too. There are a lot of moving pieces in the stack of external components that Miro relies upon. There are two ways for Miro development to scale well:
  1. more contributors
  2. additional funding for PCF so that they can fund developers
If you can contribute code, please let me know if there's something blocking your path. If you can't contribute code and/or you're interested in Miro getting better, then install iHeartMiro (there are versions for Firefox and IE) and/or donate money and help PCF fund developers.

Thu, 20 Mar 2008

Miro 1.2 released! (working on Ubuntu packages now....)

Twenty minutes ago or so we released Miro 1.2. I was talking to Chris, Bryan, and John about Miro 1.2 yesterday at lunch (mid-release) because while there was a lot of work done on Miro 1.2, not a whole lot of it is immediately obvious to the typical Miro user. That got me thinking about writing a post that better explains what did happen and why it's important.

The Miro 1.2 release post has a list of things we worked on for Miro 1.2. Most of that list consists of things we did in a week or so. The majority of the release cycle work hours were spent on two items: switching to xulrunner 1.9 on Windows and re-architecting to further separate the "frontend" from the "backend". I want to talk a bit about those two items and why they're important.

Let's start with the xulrunner 1.9 change. Firefox 3 is based on xulrunner 1.9. Switching to xulrunner 1.9 even though it's not released yet was important because the Mozilla crew have done awesome work on improving performance in their current release cycle. Many of the performance improvements are memory-related. It definitely doesn't make Miro the most optimized thing ever, but it helps. Additionally, Nassar (who did the work) spent some time refactoring bits to make sure events were happening in the correct thread of execution and reducing some of the layers of abstraction and indirection involved. This work will make Miro on Windows more stable than it was previously.

The re-architecture work that Ben did is also really important. Previous versions of Miro had a backend and frontend that were tied together. Creating new platforms was arduous and it hampered any efforts towards building a daemonized platform or a platform that talked to MythTV or Elisa.... He made the split between the two much cleaner and at the end wrote a sample command line interface. In the process of doing that work, he did a bunch of other things that affected the entire code base: he fixed the namespace issues we had with Miro Python modules and he did some refactoring.

This opens up a lot of possibilities. It will be easier to write a daemon Miro platform that has an XMLRPC interface. It will be easier to write a slimmed down version of Miro for smaller computers like the Nokia n810. It's a good direction to be heading in.

Tue, 18 Mar 2008

status: week ending: 3/18/2008

I continued working on getting Miro 1.2 released. One thing we need to do better is coordinate translations. I'll be working on fixing that part of the release process for the next release cycle.

I also worked on getting Miro trunk to compile and work with xulrunner 1.9 and on Ubuntu Hardy. I finished this today and checked it in. It seems ok, but definitely needs peer review from someone who's more familiar with XPCOM.

I had a cup of coffee with Nathan from Creative Commons. He was out here doing work somewhere at MIT and I live nearby so we got together. For Miro 1.0, he implemented license extraction from RSS feeds. You can see the end result of this when you see the "license" item in the feed item details. When the publisher has license information in the feed, this links to the license. When you watch video content on the Internet, think about what roles you play in that content... Are you merely a passive consumer? Can you take the content and remix it into new content with new meaning? Can you share it with your friends? Can you post it elsewhere? The license information answers these questions and more. Thank you Nathan!

He and I talked about other areas where Miro and Creative Commons intersect and then we talked about PyBlosxom--another project I work on.

Once Miro 1.2 is out, I'm going to go back to work on Mediabar. I'll probably be working on that for the next week or two.

Thu, 13 Mar 2008

translations problems

Our current status for translations is pretty rough. We support a lot of languages, but few of them are complete translations. See https://translations.launchpad.net/democracy/trunk/+pots/democracyplayer/.

If you look at that page, you'll notice most of the translations haven't been updated and/or are missing strings. Of those translations, the only ones that are complete are English (United Kingdom), Norwegian Nynorsk, and Ukranian.

I think part of the problem is that we don't have a good way of telling people that we need translation updates.

If you're set up to do translation work or know someone who is, please take some time this weekend to update the translations for your language. We're planning a Miro 1.2 release some time next week. Hundreds of thousands of people world-wide will appreciate what you've done.

Also, if there's something that I can do to help make updating translations more timely, let me know.

Wed, 12 Mar 2008

status: week ending 3/11/2008

This week I fixed some bugs, worked on some bugs that I didn't get anywhere with, and finally tagged and released Miro 1.2 rc0.

I also did some work with getting Miro on Gutsy to compile against xulrunner 1.9 in the backports repository. I was basing the work on the set of packages the Ubuntu people maintain. There are some changes in there I don't understand the relevance of and their changelog isn't very helpful. I pinged Fabien, but haven't heard anything back from him.

As a side note, and I can't imagine I'm alone in this feeling, Windows bugs really suck and take gobs and gobs of time to work through.

Thu, 06 Mar 2008

status: week ending 3/5/2008

This week was an ok bug-fixing week. I worked on:

Next week I'm going to:

Busy busy busy....

Wed, 27 Feb 2008

status: week ending 2/26/2008

It was an exciting week:

This coming week I'm planning to:

I want to send HUGE thank yous to the following people:

Also, I'd like to apologize for posting my last status so late. I back-dated it, so it probably showed up on the planet pretty low.

Sun, 24 Feb 2008

Hardy Heron and Miro

I installed Hardy Heron alpha 5 in a VM and Miro doesn't compile on it. Amongst other things, Hardy uses Firefox 3, so it's likely we'll have to make some code changes to account for that. I only spent 20 minutes with Hardy and Miro to see where things are at--no clue how much work is going to be involved.

I'd love to get someone(s) to help with working out the issues with Miro on Hardy before Hardy releases. If you're interested in helping, leave a comment here, send me an email, or find me on IRC.

If no one helps out, then I'll probably deal with supporting Hardy after Hardy is released.

Thu, 21 Feb 2008

PCF is hiring Python developers

The company I work for is looking to hire a few able Python developers. Instructions and details about the job are on the PCF jobs page.

This is the best job I've ever had. I get to telecommute which really works for me. My co-workers are all able fantastic people. The mission is really important and affects everyone. The work that we're doing is FOSS and we're working with and contributing to other FOSS projects. I've covered the board in terms of projects from bug fixing, to adding enhancements, to debugging upstream components, to Ubuntu packaging (which I need some more practice with), to test systems, to Firefox 3 patches, to Firefox plugins, ... I've also had my hands in Bugzilla adjustments, infrastructure, build systems, ... It's been challenging and interesting ever since day 1.

I've also been meeting a lot of people I otherwise wouldn't have met: Chris Blizzard and John Ressig at Mozilla, SJ at OLPC, Holmes Wilson at Downhill Battle, Asheesh at Creative Commons, and others. It's exciting.

That's my experience at PCF in the last 6 months. If you're looking for a telecommuting Python development job, think about applying.

Wed, 20 Feb 2008

status: week ending 2/19/2008

It was a pretty slow week.

Things I'm planning on doing this week:

Wed, 13 Feb 2008

status: week ending 02/12/2008

This actually covers two weeks of work because I was in Florida for a bit in between.

Things I did:

Things I'm working on this week:

Mon, 11 Feb 2008

video/audio podcast enhancements in Firefox 3

A little under two weeks ago patches for bugs 303645, 400061 and 400064 landed in the Firefox trunk. These patches add video/audio podcast-related enhancements to the upcoming Firefox 3. Firefox 3's feed preview page now distinguishes video and audio podcast feeds from "regular feeds". It will also show all enclosures in the feed with information about the enclosure.

It's really exciting for these features to be in Firefox 3. These enhancements reduce the interface divide between Firefox and video/audio podcast consuming applications like Miro, iTunes and others. Amongst other things, it's hugely beneficial to Miro users who use Firefox.

Here's what the feed preview page looks like in Firefox 2 on Ubuntu Gutsy:

Feed preview page in Firefox 2

Here's what the feed preview page will look like in Firefox 3 on Ubuntu Gutsy:

Feed preview page in Firefox 3

I'm really excited that this is going in. At a bare minimum, it means I have to spend a lot less time fishing through view source finding enclosures.

This is my first contribution to Firefox and my first time working with Mozilla developers and other Firefox contributors. There was a lot of material to come up to speed on including build process, testing procedures, who's in charge of what, getting reviews done, ...

I want to give a shout out to Mike Beltzner who was really patient and incredibly helpful in getting the functionality landed. Also to Robert Sayre and Myk Melez who reviewed the code and suggested changes and fixes that made it much better. Also to Alex Faaborg who kicked off this mini-project back in October. And lastly all the people on #developers on IRC who helped me with issues I was having: Ventnor, biese, bz, gavin, Pike, _FrnchFrgg_ and others--Thank you all!

It was neat in that the patches landed just before the beta 3 codefreeze on my birthday. Having said that, there were a bunch of problems with the patches, many of which were sorted out and fixed by other people. Sorry about that--crappy organization on my part.

I also want to point out that this is a huge advantage that open source has over non-open source: I, as a person external to the project, can still participate in a meaningful way and help implement the functionality that matters to me. That's very empowering.

Sidenote: That show is What You Ought To Know. It's a fun show--worth subscribing to.

Fri, 01 Feb 2008

trying out a new theme....

I really didn't like the theme I had. Trying out a new one....

Wed, 30 Jan 2008

status: week ending 1/29/2008

I spent the week working on:

This coming week I'm:

It's been a good week overall. The Firefox 3 B3 codefreeze is tonight and I think I'm on track for landing all three patches, but they haven't landed yet (as of this writing). We'll see what happens tonight.

Update: All three patches landed. The one for 400061 had some issues, but myk fixed them and landed it for me.

Thu, 24 Jan 2008

status of Miro 1.1.1 builds for Ubuntu

I put out Gutsy, Feisty and Dapper builds for i386 for Miro 1.1.1 on Tuesday when we did the Miro 1.1.1 release. But... I'm using new scripts and I goofed up the miro-data package. I didn't have time to figure out the problem, so I attempted to back out the Gutsy amd64 packages and in the process screwed up something else.

I thought I had it all working by Tuesday night, but there were a couple of users that were still experiencing "size mismatch" errors on the miro-data package. So I took some time today to figure out how to deal with the miro-data package I was building, roll up a set of Miro 1.1.1-3 packages for Gutsy i386 and amd64 and push everything out.

Theoretically there should be good Gutsy i386 and amd64 packages for Miro 1.1.1 in addition to the Feisty and Dapper i386 packages I rolled out Tuesday.

Sorry for the delays. I think things are straightened out now. If you're still having problems feel free to leave a comment below and/or find me on IRC or by email.

Wed, 23 Jan 2008

status: week ending 1/22/2008

Things I did this week:

Things I plan to do this week:

Wed, 16 Jan 2008

status of Miro 1.1 builds for Ubuntu Dapper and Feisty

I haven't put Dapper and Feisty builds for Miro 1.1 into the repository yet. The Gutsy builds are there, but there are some issues with segfaulting when watching videos with them. I've only heard about Gutsy segfaulting with Miro 1.1 from one person and there aren't any new bugs for the issue. From that I'm guessing the issue is pretty limited user-wise, but don't really have a good way to measure.

The last few days went like this. We did a Miro 1.1 release on Thursday and I started building Ubuntu builds for Dapper, Feisty and Gutsy that afternoon using the new pbuilder-based scripts I've been working on. The pbuilder-based scripts are great in that I can automate building packages for Dapper, Feisty and Gutsy for i686 on a single machine (no longer need VMs) and they verify the build-depends lines in the .dsc files. That'll make building from source possible.

The problem with Miro 1.1 is that the switch from BitTorrent code to libtorrent code causes compiling to take longer. Additionally, the pbuilder-based scripts pull down all the dependencies and build the environment to do the build in for each distribution and that takes a while, too.

When working on builds, I had problems with the Dapper and Feisty builds segfaulting when playing videos during testing. I first blamed the new build scripts. I spent 8 hours or so fiddling with them, verifying all the build steps, and eventually running them in the distribution VMs I had. On Saturday, I decided that theory wasn't a good one.

I tried a few other things and then started bisecting the svn changes since Miro 1.0 in my Feisty VM to see if I could find the checkin that caused the problem. After a few more hours, I discovered that it was a change to xine_impl.c that I made for bug 9373 that causes the segfaults when viewing videos. Another hour later and I verified this is the same problem with the Dapper build.

I backed out that change and re-ran and re-tested everything.

In summary, the pbuilder-based scripts are fine and backing out that xine_impl.c fix fixes the issues I was seeing.

We're working on a Miro 1.1.1 release that has some changes that allow for co-branding. We decided to push these changes off to 1.1.1 so that we could release Miro 1.1 a week earlier. I decided that I'd skip builds for Feisty and Dapper for Miro 1.1 and instead do builds when we released Miro 1.1.1 this week. That should happen in the next day or so.

I really apologize for the current situation. It was a confluence of several circumstances that led to me taking a long time to figuring out the cause of the problem which sucked.

I should have 1.1.1 builds of Gutsy, Feisty and Dapper out by Friday night if not sooner.

Tue, 15 Jan 2008

status: week ending 1/15/2008

It was a really busy week--I essentially worked for the last 7 days straight. It's been a good/bad week for me. I:

I'm going to spend the next week:

Fri, 11 Jan 2008

The release hat-trick!

I mothered the Miro 1.1 release earlier today. Then I decided to push out PyBlosxom 1.4.3 which I have been sitting on for a month. Then after talking with "paulproteus", I decided to go for the hat-trick and released Lyntin 4.2 as well.

w00t for releasing three software thingies in one day! Boo for sitting on two of them for extended periods of time.

Thu, 10 Jan 2008

bugzilla stats: 2007

Other projects are publishing their Bugzilla stats, so I took 30 minutes and threw together a script to run some numbers against our Bugzilla instance.

Two things to keep in mind when looking at these numbers:

  1. We migrated our bugs from Trac to Bugzilla in mid-August. Trac wasn't working out for us and we've got a lot of crufty bug data still hanging around since then.
  2. The numbers are slices of data. They can indicate things, but there's a lot of context that they don't take into account. So it's good to be careful about drawing conclusions based solely on the numbers reported.
Stats for the year: 2007

BUG STATS
=========

Total bugs created: 4052
      41 - Miro Mediabar
       3 - getmiro.com
      35 - Broadcast Machine
    3809 - Miro
     164 - Miroguide

Bug activity:
     736 - FIXED
     170 - INVALID
      35 - WONTFIX
     139 - DUPLICATE
     169 - WORKSFORME
       0 - MOVED
       0 - NEEDSINFO

    4052 - CREATED
   13564 - COMMENTS

USER STATS
==========

Users created: 645

Top 7 bug reporters:
    3172 - Janet
     138 - Dean Jansen
     102 - Nicholas Reville
      52 - Nick Nassar
      47 - sg
      35 - Fluteman
      28 - Ben Dean-Kawamura

Top 7 bug commenters:
   10354 - Janet
     331 - Nick Nassar
     315 - Will Guaraldi
     312 - Ben Dean-Kawamura
     286 - Luc Heinrich
     259 - Dean Jansen
     217 - Paul Swartz

There are a few things I want to point out.

First, is that we've got 645 new Bugzilla users since mid-August. That's really great!

Second, is that Janet is not a machine that generates 10 bugs and 30 comments every day. What's going on is that I tied her Bugzilla userid to all the bugs I migrated from Trac for which I had no userid to tie to.

Third, sg and Fluteman are really fantastic. The work they're doing is making a huge difference in the direction and quality of Miro. Thank you!

Thank you to everyone who's helped out in 2007. I hope the numbers for 2008 are doubly-impressive. :)

Wed, 09 Jan 2008

status: week ending 1/8/2008

I spent the last week:

I'll be spending this week:

Thu, 03 Jan 2008

archos-sync

Sedatg pointed out the archos-sync project. It's a script that syncs the content between his Archos media player and Miro. More information at that link.

If anyone was interested in helping out on a syncing project to sync Miro content with devices, that's probably a good one to help out with.

Anyone else know of similar projects that are building software to sync Miro content, convert content or port Miro to smaller devices? If so, please add a comment. The more exposure to these projects, the better.

Tue, 01 Jan 2008

status: week ending 1/1/2008

I wasn't around for the last week. I got home last night and spent today recovering from some flu I've been fighting for the last week and also continuing work with building a pbuilder environment for Gutsy and friends.

Tomorrow I plan on finishing up the pbuilder stuff and working on the Firefox patches, but ... I don't think I have much of a chance of finishing them in time, so I think I may put it on the backburner and help out with Miro 1.1 and continuing development. Then work on the Firefox patches for 3.1.

Happy New Year!

Sun, 23 Dec 2007

status: week ending 12/25/2007

Figured I'd send this out early because I'm not going to get anything more accomplished.

I spent Wednesday, Thursday and Friday:

That about covers the last three days. pbuilder is really cool, but takes forever to run because it's building a fresh environment in which ti build everything and it does that by downloading and installing all the packages each iteration. It's definitely a good idea to do this, though, as it'll increase the confidence in our Ubuntu/Debian packaging and potentially fix outstanding issues.

I'm doing a whirlwind tour of family visiting over the next few days, then going down to Louisiana on a service trip to rebuild houses. I'll be back online January 1st.

Wed, 19 Dec 2007

status: week ending 12/18/2007

I submitted a new patch for bug 303645 on the 12th. On the 13th, I started having problems seeing the feed preview page. I talked with the folks on #develop, but wasn't able to get it working. No clue what the problem is. I did a fresh checkout on a different machine and that works fine, so I continued working on the second machine and produced a better version of the 303645 patch. I'm gone next week and between that and the time I'm going to have to put into the 1.1 release, I don't think I will get a patch together for the rest of the changes for bug 400059.

Firefox takes me about an hour to compile from scratch. While trying to figure out what my feed preview page problem was, I spent some time using the reports feature in Bugzilla and doing bug triage on old bugs. I also wrote a script to remove comment spam from the comments we migrated from our old Trac bug-tracker. There's still a lot of comment spam in there. Ick.

I merged the libtorrent changes from trunk to the 1.0 branch and tested out the GTKX11 platform. I went through Ubuntu Gutsy, Gutsy-64, Feisty and Dapper, made sure Miro in the 1.0 branch compiled and updated the requirements as listed in GTKX11BuildDocs.

I tried to test the 1.0 branch of Miro in Windows, but I'm hitting the LIBEAY32.dll problem in bug 9327 and the fix suggested in the comments isn't working for me. So... my Windows build environment isn't working again and I don't know whether the 1.0 branch is stable or not after the merges I did.

That about covers me for this last week.

In the next few days, I plan to help out with the 1.1 release, make sure I have the Ubuntu platforms covered and continue working on the Firefox patch.

I'm gone from December 23rd through December 31st. After December 22nd, I won't be online again until January 1st.

Wed, 12 Dec 2007

status: week ending 12/11/2007

It's been a good-ish week.

Nathan finished up his changes for bug 9077, they were merged into the trunk and 1.0 branches, and Janet did some testing and came up with bugs 9334 and 9335. I fixed 9334 but I think I'm going to skip 9335--it involves changing the padding for those items in the item view and I'm not wildly excited about doing that and I think the issue is cosmetic. We only implemented CC metadata at the item scope--not the feed scope, yet.

I worked my way through some bonehead issues I had caused, finished up the patch for bug 303645 and submitted it. I'm a little apprehensive about submitting a patch to Firefox, but ... I'll suck it up. The important thing is that this patch populates the enclosures array for each FeedEntry item. That was a pre-requisite for bug 400059. I'm working on that one now. As a side note, the folks on #developer on the Mozilla IRC channel have been really helpful.

On Friday, I went to lunch with Dean, Chris Blizzard and John Resig--that was really neat. A little hard to quell the star-struck feelings--hopefully I didn't make a total ass of myself.

I created the "other packages" page for the download section of the getmiro web-site and changed around the download page, too.

I sent an email to Justin at Mozilla in response to his blog entry. I pointed him to the code for the timeline script and the script for migrating data from Trac to Bugzilla.

Looking forward to a Miro 1.1 release with all its libtorrent and CreativeCommons metadata goodness....

Sat, 08 Dec 2007

Status 12/07/2007

Went out to lunch with Chris, John and Dean (who I don't think has a blog). That was pretty cool. We talked about a bunch of stuff and the hamburgers at Christopher's in Porter Square (Cambridge, MA, USA) are really good.

I continued working on adding enclosure viewing support to the subscribe preview page in Firefox 3.0. I've almost got Yahoo MRSS support in. Mental note: one wastes less time if one double-checks the tests to make sure they're testing correctly. Oops.

I'm doing some minor mentoring for GHOP mostly on PyBlosxom related tasks. I'm on both of the mailing lists for GHOP-PSF and it's hard to keep in mind that the people working on these tasks are students in high school and early undergrad. It's like an army of really able, but not very experienced, bodies hungrily munching large bites out of project todo items. PyBlosxom had 4 tasks in last week and 4 in this week. It's great because the help is fantastic and it's forcing me to get around to work on organizing the project and development for PyBlosxom 2.0.

If you're in high school or college and want to do some Python-related work, definitely take a look at GHOP! If you're a Pythonista or Pythoneer and have some spare cycles, definitely come help us mentor. If you have a Python project and need help with screencasts, documentation, testing and other small tasks, take a look at GHOP. Titus has more on his blog.

PyBlosxom 2.0 is going to be a huge overhaul from PyBlosxom 1.4. I'm getting lots of help from the people who hang out on #pyblosxom on IRC, Ryan, Michael and various other people who pop on, ask questions and help identify issues. Progress is excellent so far.

In PCF land, I have a blog focused on PCF work and Miro development. It's at http://pculture.org/devblogs/wguaraldi. I figured I'd keep it separate. It runs on WordPress so that's giving me some WordPress experience.

Whoever fixed NetworkManager for Ubuntu Gutsy should get a gold star. I did an update on 12/4 and picked up a new set of packages and my perpetual wireless networking problems all went away. Bless you!

Also, if you've got young children in your life, definitely take a look at Bee Careful Marvin. It's geared towards children up to around 6 or so. You can get a professionally printed version at Lulu, but you can also download a PDF for free. It's released under a Creative Commons BY-NC-SA 3.0 license and "the source" is all at that link. Print it out, copy it, give it to your young friends, translate it, rewrite it with Star Wars dialogue, ....

Wed, 05 Dec 2007

status: week ending 12/4/2007

I've been super busy this past week.

I spent the brunt of my time on the Firefox patch. I've solved most of bug 303645, though the output isn't pretty and it doesn't support Yahoo's MRSS or iTunes enclosures. I think I'll have it figured out in the next couple of days and submitted to the Mozilla folks. Once I've populated the enclosures and they're available in the FeedWriter, I can work on what we really want to do. I still need to figure out how to associate applications with different feed types. Mozilla froze the trunk today for the upcoming beta 2, so none of the changes I've done will be available until beta 3 at the earliest.

I spent several hours looking for enhancements or bugs that lend themselves to being small 1-5 day tasks for high school/college level people in the PSF section of the GHOP. I didn't find any that I thought were promising. This is a bit unfortunate as it'd give us some good exposure, gets us some help, and would be good for the project. Still, there's a certain amount of work that would need to be done to be part of the GHOP. The contest lasts until February, so I'm hoping I can figure something out before the end.

On Friday, Dean and I talked with Henri of CivicActions. They work with clients who produce content and we talked about various directions our groups can take to help each other. He's particularly interested in how Miro could interact with mobile and embedded devices. I'm pretty interested in that, too. I plan on working on that when I get a Nokia n810. I've written about that in previous posts.

Also, I've been working with Nathan of Creative Commons to get Miro to understand and work with licensing metadata (bug 9077). He's done most of the work so far; I've been providing feedback and working out the implementation issues. This is really useful since it allows content producers to embed licensing data in the feeds that Miro will display to users viewing the content.

And I've spent some time doing bug triage and talking with users about various issues, mostly related to packaging.

Current deadlines:

The CreativeCommons birthday is 12/15, so we need to have the 9077 work done by then.

The Mozilla folks told us that we need to get the patch done before the end of the month.

We were thinking of doing a Miro 1.1 release mid-month. I want to fix the packaging scripts so that we can name tags and branches Miro-x.y instead of Democracy-Player-x.y. I'll probably look into that later this week.

Tue, 27 Nov 2007

status: week ending 11/27/2007

Short status this week....

I took Wednesday through Saturday off.

On Monday, I fiddled with my Windows build environment and finally got it working (again) on Tuesday. I was having problems getting fasttypes to compile. I was getting all kinds of errors when going through the boost stuff. After some skulking through Google results regarding boost compilation problems, I decided to try installing Visual Studio 7.1 without installing the service pack. That worked super--though I'm not entirely sure why. I updated the WindowsBuildDocs page with new urls and tried to break up the instructions into something that's more digestible.

I also continued to work on the Firefox patch.

Wed, 21 Nov 2007

status: week ending 11/20/2007

I spent Wednesday, Thursday, Friday and part of Saturday watching new bugs, helping users out with 1.0 issues, continuing to build a Windows VM (I've almost got it working again) and working on Mediabar.

I checked in a minor overhaul of Mediabar. There are two big issues with Mediabar that need to be fixed that involve architecture changes (I've been talking about this for a month now). I figured since I'm overhauling the code for that, I might as well overhaul the code and fix namespace issues and tighten up the existing architecture to make it easier to fix the big issues. In the process of making the changes, I noticed the flv extraction code doesn't work. I'm not sure how it's supposed to do what it does, though, so I'm not sure if it's something I did or something that was pre-existing or something I'm misunderstanding. When I work on Mediabar again, I'll talk to NPR and Dean about how it should behave and what kinds of things it should be picking up and write it down into an ad hoc specification. On a side note, anyone have any idea how to do agile-like development with Firefox extensions? Where does the testing code go and how do you kick it off?

On Sunday, I got worried that I'm going to miss the deadline for the Firefox patch I'm working on. The work is under bug #400059 in the Mozilla Bugzilla db. I spent Monday and Tuesday working on adding enclosure detection to the FeedProcessor and then adding enclosure support to FeedWriter so that you can see enclosure links on the feed subscribe preview page. When I get this working, I'll submit it as a patch against bug #303645. Making those changes paves the way towards adding support for distinguishing between video, audio and text feeds and supporting applications for handling those different feed types.

I will be off of email and IRC for the rest of the week but I'll be studying.

I hope you all have pleasant holidays or work days (depending on where you live)!

Thu, 15 Nov 2007

"there's no good content" == utter hogwash

One of the things I keep reading in comments of various Miro-related reviews is something along the lines of "there's no good content". I think that's utter bunk. There's a lot of good content listed in the Miro Guide. The channel starter packs that we added to the first page when you start up Miro 1.0 make this painfully clear. This doesn't even include all the content that's not even listed in the Miro Guide.

I don't have cable tv anymore because it doesn't make sense to waste my money on it.

I also don't watch a ton of shows with Miro. However, here's the list of shows I do watch (some of them while testing):

I think there's a lot of other great content out there both to watch and to participate in.

So to people who shrug Miro and Internet video off because "there's no good content" I say, "Buddy--this is 2007 and you're missing the boat".

What shows do you like and why? Toss your thoughts in the comments.

Update 11/16/2007: Fixed a grammar issue and somehow I managed to misspell Galacticast.

Wed, 14 Nov 2007

status: week ending 11/13/2007

I did a bunch of release-management stuff, some minor bug triage work and some minor Gutsy work.

I passed a bunch of email back and forth with BDK and James regarding problems between Miro and the sun-java*-plugin packages on Gutsy and Feisty (bug 8444 and now bug 9064). BDK looked into it further but in the end either the test we're using to determine whether the problem exists or not is bogus or we didn't fix the issue. Regardless, after much discussion it was decided that the package conflicts were worse than the problem so we removed the conflicts for 1.0 final.

I got in touch with Dean's friend Ben (not to be confused with BDK or my brother Ben), and he and I are going to go through our Gutsy and Feisty packaging and fix any outstanding issues (like bug 8716). I think this is pretty cool and hope that this is the first of many Boston-area Miro hack-fests.

I also worked on Mediabar. I've been doing a pass at cleaning up namespace issues and code cleanup. After I'm done with that, I'll work on the tab rearchitecture and the rss discovery problems. Neil and I traded some email and he's eager to work on things again. I'm currently the bottleneck on further Mediabar progress--I'll be spending the rest of the week fixing that. I want to get back to working on the Firefox patch, too and get that done ASAP.

On a side note, I was selected for the Nokia n810 device program. I want to look into porting Miro over to the device and do some other development, too. It'll be a good system for figuring out how Miro could work on "smaller devices" and what a slimmed down version of Miro can do. I also want to look into what it would take to get Miro working with Conduit so that Linux users can move video content to their n810 and other portable video playing devices.

As a side note, I live in Somerville, MA. If anyone (users, testers, developers, ...) is interested in getting together to triage bugs, working out issues, fix problems, add features, ... let me know. I'm totally game for hack-fests and getting together.

Tue, 13 Nov 2007

Miro 1.0 released!

Miro 1.0 has been released! Yay!

I've only been with PCF since July (or maybe it was June--I forget), but since I came on board we've been working hard on stability and honing the feature set. Working on stability is hard because there are a near infinite number of combinations of library versions, video card drivers, operating systems, ... out there and all of them are slightly different. Writing software that works on multiple platforms is non-trivial. It's a huge testament to the community of users and testers and developers that Miro is at the point it's at now.

One thing about 1.0 that I want to mention is that this is a snapshot in time of a continually evolving piece of software. If you look at Bugzilla, there are dozens of interesting features that we're all interested in that range from starting Miro as a daemon process to viewing video as it's downloading.

Chris, Nick and Ben are working on post-1.0 development already. There's been discussions on the develop mailing list regarding reworking the user interface to use native widgets and make it much faster and more responsive. Paul is continuing work on the Miro Guide. Janet is working on making community testing easier for everyone involved and produce better testing data. I'm switching off to work on Mediabar. Dean and the Team Miro folks are working on honing the documentation and they're doing a fantastic job of testing and identifying issues for release candidates and versions.

Miro development is moving along and its momentum is a direct result of us all working towards a common goal: building an Internet video player using Open Source and open standards that will enable the current generation of media content to flourish.

One other thing I want to mention is that we ditched the conflicts between the miro package and the sun-java*-plugin packages for Gutsy and Feisty. The problem between the packages still exists and it's intermittent, but several conversations with people caused me to rethink adding the conflicts. So this doesn't fix anything--it's just trading one set of problems for another, however I've come around to agree that the conflict is more of a pain in the ass than occasional intermittent crashes.

Miro 1.0 released!

I work for Participatory Culture Foundation as a developer on the Miro internet video player.

Today we released Miro 1.0. For most of the projects I've worked on, the 1.0 mark is exciting to reach, but also somewhat of a downer because it really requires you to hone the list of all possible things you could do down to a small finite list. Inevitably, there are things people will want to do that 1.0 doesn't do. Still, it's a huge milestone for the project. We're already working on post-1.0 development and making changes to decisions that didn't turn out as well as we had hoped.

A good portion of the work we do is in Python with lots of interaction between Python and libraries written in C and C++. For example, we use a lot of Pyrex to speed up critical sections.

Miro is a great product to continue to push open standards for video distribution and consumption on the Internet. I regularly watch GoogleEDU videos through Miro and I'm hoping other Python-related channels will be available as well. At some point, I'd like to create my own Python-videos channel and aggregate good Python-related video content. There's a lot of screencasts and tutorials out there....

Wed, 07 Nov 2007

status: week ending 11/6/2007

I mothered the 0.9.9.9 release on Wednesday, which went really smoothly, and then the 0.9.9.9.1 release on Thursday, which sucked and took two days to sort out. I had problems doing svn checkouts on the Windows build box (took in excess of 1.5 hours for a single checkout) and then problems with the windows-xul setup.py script which had bugs when the version number contains more than four pieces. I had some help from Nassar working that out, but it sucked up most of my time and I didn't really get much else accomplished.

Over the weekend, I helped out a few users who were having problems with 0.9.9.9 on Gutsy.

On Monday, I worked on Mediabar and continued building a new Windows XP vm.

Today I worked on legal stuff, bug triage (making sure I've got all the things I need to get done for 1.0 done) and Windows XP vm stuff.

Overall it was a week short on getting things accomplished and long on random problems and wasted time. Frustrating.

I plan on working on Mediabar and Firefox 3.0 patch work in the foreseeable future. I'll probably be avoiding IRC for a while.

Thu, 01 Nov 2007

0.9.9.9 released -- and thank yous

We released 0.9.9.9 yesterday and it took us 5 or 6 hours from tagging the branch to releasing builds. That's pretty cool and makes for a smooth release. Also, I didn't screw anything up this time. :)

I'm an employee of PCF so it's my job to work on Miro (and the other things I work on). However, I'm just one guy and time is a limited resource. There's no way I can triage, identify and fix all bugs. I appreciate all the help that I can get. I had a bunch of help this release.

I wanted to thank the following people for the time they spent submitting quality bugs, sending in patches, and helping me fix issues:

If there's anyone else that helped out that I've forgotten, I apologize. Please kick me and/or comment below.

We're well on the path to a solid 1.0. When 1.0 is finally out, we start working through the architecture changes required for many of the features that have been suggested.

Wed, 31 Oct 2007

status: week ending 10/30/2007

This week I spent time on:

Also, Dean and I went to PodCamp Boston 2 this weekend. Talking to people about Miro resulted in one of three possibilities:
  1. the person was really psyched about Miro, uses it frequently/all-the-time and had some questions about future development
  2. the person thought Miro was neat, but either hadn't used it or thought it was still called Democracy Player
  3. the person was wholly uninterested in Miro and didn't really see the point of having another media player in the space alongside players like FireAnt and Joost
The first group was really exciting to talk to. Dean and I tried to hook this group into Team Miro and other Miro-related activities. Mostly I just basked in the warm glow of a happy user--things have been cold and miserable recently.

The second group was interesting and most people in this group asked the important questions. I think connecting with this group was the most important thing I did over the weekend.

The third group wasn't really all that exciting to talk to. Their priorities don't match ours and I suspect most of them just feel hassled by the fact that there's another media player to think about.

I also spent time listening to what terms people used for "video media feeds". I heard "vidcast", "video cast", and "video podcast" most often, I think. Just some more data in the "what the hell should we call this thing"? bucket.

After 0.9.9.9-rc2 and 0.9.9.9 final, I'm going to be spending all my time on mediabar and the Firefox extension. If I don't do that, I'm not going to meet the deadlines.

Wed, 24 Oct 2007

miro and sun-java6-plugin conflict clarification

I want to clarify the situation with Miro and the sun-java6-plugin package.

Prior to 0.9.9.9, if you had the sun-java6-plugin installed and you install Miro, then Miro would crash on startup. For 0.9.9.9, we added a conflict with the sun-java6-plugin package. That means that in order to install Miro, you will have to uninstall the sun-java6-plugin.

I've gotten a lot of flack for this fix in the last couple of days--and for good reason: this sucks for users who have that plugin installed. I definitely understand the frustration and we don't consider this a final solution. (As a philosophical note, most development solutions are not final--most things can be changed if a better feasible option is found and implemented.)

The bottom line is that if you use the sun-java6-plugin plugin, you can't use Miro. Adding the conflict line to the package makes it more user-friendly when installing Miro because then you're not stuck in a situation where you have installed Miro, it crashes on startup, and you have no clue why.

We're interested in a real solution for this problem. Details of the problem are in these bugs:

If you have feasible ideas, add them in the comments on bug 9064 or comment here.

status: week ending 10/23/2007

I got a Mozilla Bugzilla account and commented on the bugs that Alex Faaborg created to track changes we want to make for Firefox 3.0. We've got a couple of months to do the changes, but Alex said that Chris said that he'd like to see it as an extension first. I'm not sure we can do that, but I plan on looking into it.

I spent an hour finishing up the Bugzilla timeline script that I've been working on over the last month or so and made it public. You can see it at http://bugzilla.pculture.org/timeline.cgi.

I spent a day or so pushing out rc0 and honing our ReleaseProcess documentation. I also did a pass through our bugs for low hanging fruit that we've been sitting on after looking at the LaunchPad bugs for Miro. I had problems with the Windows build machine which Matt helped me through.

Then I wrote some blog entries about our Gutsy situation so that users and developers knew what the status was. I worked on the gutsy packaging. BDK and I had an svn issue where he did an svn cp ... (r5515) and that wiped out my changes (r5512, r5513, and r5514). We're not entirely sure what happened.

I conversed with an unhappy and frustrated user who doesn't like that we've set up Miro to conflict with sun-java6-plugin. No one thinks it's an ideal solution, but it's the best one we've got right now. After talking about it on #miro-hackers, BDK created a bug to revisit the java plugin situation for 1.0. I'm going to see if I can find anyone at Mozilla that would know whether you can embed gtkmozembed without the plugins (I think that's the right question to ask--if not, poke me). The current consensus is that there's nothing we can do, but it sure would be nice to find out that we're wrong and the magic pixie in the sky can come down and make the problem go away.

Earlier today we released 0.9.9.9-rc0 gutsy package in a new gutsy repository. It's my first packaging experience. Our README for it is really good; I made some minor updates while I was fiddling with things.

Also, I thought PodCamp was last weekend--turns out it's next weekend. That was confusing. I figured it out after traveling on the T, getting there, puzzling about why no one else was there, calling my wife to see if I was in the wrong place, sighing deeply when I found out I'm at the right physical location but the wrong chronological location, and then taking the T home. The good thing that came out of this is that I got to test my raincoat which I had just waterproofed--it works pretty well.

I spent Sunday upgrading my laptop from Feisty to Gutsy and trying to reproduce some of the gutsy bugs we've got--I haven't been able to. It's likely there are other things involved that I'm not aware of yet.

I'm going to spend some time to upgrade my desktop to Gutsy as well and then build virtual machines for Dapper, Feisty and Gutsy. So then we'll have another person who can cover Ubuntu releases and testing and such.

Update 10/24/2007: I forgot to talk about the Mediabar Firefox extension... I haven't touched it in at least two weeks--possibly more. It has some big issues that need to be figured out, but I've been spending time on other things. I do want to get it fixed up because it is a useful extension. I'll try to find some time for it in the next week or so.

Tue, 23 Oct 2007

Gutsy packages for 0.9.9.9-rc0 available -- please help us test

It's been a wild couple of days. I finished up the rc0 release for Windows and Mac OSX on Saturday, spent Sunday upgrading my laptop from Feisty to Gutsy and then on Monday we had some quirky subversion collisions.

We've worked out some/most of the issues with the Ubuntu packaging for Miro and build a package for Gutsy. This package is available in the Miro repositories.

Things to note:

  1. This package is release candidate 0 for version 0.9.9.9. If you are at all squeamish about testing software in a beta state, you should wait for the 0.9.9.9 final release which will be sometime this week or next week.
  2. Back up your ~/.miro directory BEFORE installing and using this package. If there were issues, you want to be able to go back to your previous Miro state.
  3. Miro conflicts with sun-java6-plugin. You can't have both installed at the same time. This is a workaround for problems we're having with the sun-java6-plugin, gtkmozembed, and Miro. If this is a problem for you, you should wait until the 0.9.9.9 final release. It's possible we'll have a different fix for it by then, but it's more likely that this will happen in version 1.0 or later. If you know how to set up gtkmozembed so that it doesn't load plugins, let us know.
Instructions:

If you follow the directions at http://www.getmiro.com/download/ubuntu.php but use:

deb http://ftp.osuosl.org/pub/pculture.org/miro/linux/repositories/ubuntu gutsy/

as the line to add, then you'll pick up the Miro repository for Gutsy.

What to do if things don't work:

Let us know if you have any problems. Good ways to do this would be:

And if it worked great, we'd love to know that, too.

Mon, 22 Oct 2007

Gutsy package for Miro status (2)

Someone (possibly Janet) created a gutsy keyword in Bugzilla, so I went through and tagged all the bugs that I think are gutsy related with the gutsy keyword: http://bugzilla.pculture.org/buglist.cgi?keywords=gutsy.

There are a few other issues floating around that are related to our feisty packaging--I'm going to try to fix those while I'm fiddling with packaging.

I've copied over the debian-feisty packaging to debian-gutsy in the repository. Today I'm working on getting the kinks out of building, going through all the files to make sure they work, and testing the resulting package.

Once I get to a point where the resulting package is building and stable on both of my machines, I'll post the packages for other people to test.

That's where I am with things. I imagine this will be an all-day thing.

I'll post something here when I have a 0.9.9.9-rc0 gutsy package ready for testing and solicit help in regards to testing from the people who have been posting bugs.

Any thoughts, suggestions, et al--comment below.

Fri, 19 Oct 2007

Gutsy package for Miro status

Here's the current state of Miro on Gutsy:

The first Miro version we plan on supporting for Gutsy is 0.9.9.9 which will be released soon--probably in the next week if all goes well. We have been testing with Gutsy over the last month and we have instructions for building Miro on Gutsy in Trac. I want to emphasize that Miro 0.9.9.9 will work nicely on Gutsy and the primary issue here is a packaging one.

The Gutsy universe repository has a Miro 0.9.8 package in it. I've tested it on my Gutsy box and it works for me, however it's missing a lot of the fixes that we've made for 0.9.9.9 which should alleviate problems with Miro and specific video cards. So if it works for you, then that's great, but if it doesn't, then you're going to have to wait until 0.9.9.9.

I plan on making a pass through Bugzilla and make sure any outstanding Gutsy issues are resolved. Additionally, I'll take a pass through LaunchPad and make sure we catch any bugs that didn't get reported upstream to us.

We'll be tagging our repository for 0.9.9.9 rc1 soon--hopefully today and have an rc1 out by tomorrow for Windows and Mac OSX. We'll get a Gutsy rc1 out as soon as we can, but it'll probably take a few days.

If you want to help out with testing rc1, let me know and I'll be sure to point you in the right direction and/or watch the Miro Testing blog.

If you have any problems, please write up a bug in Bugzilla, comment on an existing bug with additional information, and/or hop on #miro on irc.freenode.net and let us know.

If you have any thoughts, please comment here and if the plan changes at all, I'll post an update.

As an aside, Gutsy is a great Ubuntu release--I'm running it on one of my machines already and look forward to upgrading my other machine.

Thu, 18 Oct 2007

first spam!

Got my first spam comment on the blog. The current tally (as of this writing) is 1 real comment, 1 reply from me to the real comment, 1 trackback, and 1 spam. I think that qualifies as a full count.

Wed, 17 Oct 2007

status: week ending 10/16/2007

I spent the last week pawning bugs off on other people while I come up to speed with Firefox development. Alex Faaborg wrote a blog entry about Firefox and Miro which piqued our interest. The result of the conversations around that blog entry launched me into Firefox development.

My first impression is that Mozilla has a massive code base. They've got a lot of code for a lot of products and they're managing it with an intricate series of make files and scripts. It has taken a while to come up to speed and I'm still spending time figuring things out. I've written some loose notes about getting started with Firefox development on my other blog. As a side note, it's tough having two blogs.

Today Alex formalized the issues into bug 400059.

I spent Saturday at the Ubuntu Massachusetts Install Fest which went fantastically. I talked to a bunch of people about Miro, Ubuntu and Free Software. Most people I talked to either hadn't heard of Miro at all or had heard of it, but didn't realize we had changed the name. I'm not sure what that means in the grand scheme of things, but everyone was pretty interested in the current state of the project.

This coming Friday is the start of PodCamp Boston 2. Dean, possibly Chris, and I are going to attend some/many/most of the days and talk to people about the Miro ecosystem. Dean's also talked to Chris Brogan about making the sessions available as a feed somewhere so that we can turn it into a channel and put it on the Miro Guide. I'm not a big fan of tech evangelism, but I think telling people about the Miro ecosystem is generally a good thing for everyone involved. It's good for us for the obvious reasons. It's good for content producers because it's important for them to understand the publishing side of the equation and that they don't have to be tied down to a host/publisher. It's important for the rest of the world because the more people realize they have options, the more those options continue to exist and the less likely it is that unpopular voices are muted. That's some serious stuff.

I think I'm going to spend the coming week continuing work on the Firefox patch and poking around with the Firefox code base. I suspect things will slow down a bit as I start asking more questions and waiting for answers. That'll give me time to continue working on the Mediabar.

As a side note, I'm now using Firefox 3.0 dev--it's pretty interesting.

Update 10-21-2007: I got this weekend confused with next weekend. Not quite sure how I did that. Next weekend (26th-28th) is PodCamp and FOSSCamp. It was a good thing, too, because I spent this weekend pushing out 0.9.9.9 rc0 and upgrading my laptop to Gutsy.

Wed, 10 Oct 2007

status: week ending 10/9/2007

It's been a really really busy week. I put Mediabar down and played catch-up with Miro and infrastructure.

I fixed (or at least think I fixed) a few UDE-type errors (#8705, #8706, #8699, #8820, #8737), passed a bug to BDK, passed a bug to Chris, and I think I may have passed a bug to Nassar, too.

We didn't previously have any official policy regarding contributions from non-PCF employees. I spent some time putting together a policy for handling code contributions and also for checking code into the SVN repository. I've talked with Ben and Chris about it so far and ironed out some issues. I think it's pretty decent now. https://develop.participatoryculture.org/trac/democracy/wiki/TheRules

I spent some time going through all the code and adding GPL/Copyright headers to files that didn't already have them. I haven't done this to XML, XUL, or DTD files--I think I'm going to leave them be. Part of the reason is that there are a lot of them. The other part of the reason is that they're in a bunch of different markups and I'm not wildly psyched about trying to jam GPL/Copyright headers into them in such a way that it doesn't screw up how those files are used in the code.

I finished up an "alpha" version of the timeline script for Bugzilla. It needs some more work and it has some bugs, so it's not quite ready for prime time. I hope to have this done by the end of the week, but finding time to work on it has been difficult.

Dean is talking to contarc/Jay about skinning Bugzilla and making other changes. In order for that to work well, I needed to re-work things so we can manage the changes we're making to Bugzilla better. I spent today fixing my changes to meet the Bugzilla recommended method for changes and checked everything into SVN.

It'll be really nice to have a better Bugzilla, but we need to make sure that it meets the needs of the developers and testers as well as the rest of the community. I've heard a lot of opinions about what it should and shouldn't look like and that concerns me. While we're pushing to get Miro 1.0 and Mediabar 1.0 out the door, I don't think we should be spending gobs of time on changing minor things in Bugzilla unless the changes are necessary to fix some real problem we all agree exists.

On Sunday, Dean, Chris and I met up with Asheesh from Creative Commons and SJ from OLPC and talked about the world as it revolves around Miro and other things. It was really interesting stuff, but also pretty overwhelming. Then we went to a GNOME Summit bar thing.

I'm planning on switching back to Mediabar stuff tomorrow (Wednesday). I need to finish the tab-friendly re-architecture and I need to figure out how to deal with the recent rss-download issue Neil bumped into. Then there's a lot of little stuff that needs to be done. My rough guess is that I'll be working on Mediabar for another couple of weeks with some time spent on Miro and Bugzilla.

I think I'm going to lay low on IRC for the next week--I need to be talking less and doing more. My queue of things to do is starting to get too big for me to wrap my head around and I'm starting to feel a bit overwhelmed.

Mon, 08 Oct 2007

NPR in Wired

Wired has an article today, Entrepeneur Aims to Overthrow TV, Not Get Rich. PCF's mission is a huge reason of why I'm working here--it really appealed to me and I really believe in it.

Boston Gnome Summit 2007

The GNOME folks are meeting in Boston for the Boston GNOME Summit 2007. I met up with Asheesh (who turned out to be a PyBlosxom user I've known for a while) last night and talked with Stefan from Nokia about Miro, gstreamer, and the possibilities of porting Miro to the Nokia Internet tablets.

Tonight, Dean, Chris and I met up with Asheesh (Creative Commons) and SJ (OLPC) and talked about Miro in relation to Creative Commons and OLPC. After that, we headed over to Flat Top Johnny's and talked with more of the people who were here for the GNOME Summit.

Most of the people I talked to knew about Miro--that was neat. There's a lot of interest in Miro and its future directions. In many ways it's really exciting, but in some ways it's really daunting. How do you choose between the myriad of interesting future directions? We've got a limited number of people working on Miro, so we can't choose them all--at least, not for the next version after 1.0. It's a good spot to be in, but at the same time, a little depressing since it would be a lot of fun to do everything. :)

Sat, 06 Oct 2007

new planet look

Many many thanks to Jay (contarc) for putting together a new look for Planet Miro. It looks much better now--it feels like a Miro-related web-site now.

Now... if we could only get someone to help us with Bugzilla .... ;)

Wed, 03 Oct 2007

Helping Out

Several people have hopped on #miro and #miro-hackers and asked how they can join the community and help out.

Here are a few URLs to pages that talk about how to help:

status: week ending 10/2/2007

I didn't get a whole lot checked in over the last week.

I put Planet Miro together. I've been toying with a timeline script for Bugzilla which is now partially working (but on my local machine). I'm trying to figure out how to keep the script and related templates separate but a part of the Bugzilla code so that if/when we upgrade Bugzilla, we don't have to spend time extracting the changes I've been making and re-do them. I haven't come up with any good answers, though. I'm thinking I may just check a bunch of files into SVN with a big README on how to apply them to Bugzilla and which files go where. This is a big paragraph, but I only spent maybe 3 or 4 hours on Bugzilla stuff.

In Mediabar land, I added the code for adding and editing helper program information. It still needs some code for verifying the data that the user entered and there are a few other FIXMEs for things that need to be finished off. But for the most part, users can add, edit, and delete helper programs and assign them to the various media types and that all works now.

I've spent a majority of my time working on re-architecting the extension to be tab-friendly--mostly learning how all the XUL pieces fit together. I think I need another day or two to finish my research, then I'll do the re-architecture. I started writing up a specification, but my ideas and understanding of what's going on is changing too quickly to make that worth-while at this stage. I'll finish the specification up in a couple of days.

Neil has been moving along with other bug fixes, so we've been getting things done even though the project is waiting on the tab-friendly re-architecture code changes.

In Miro land, I did a pass at updating the miro.1 man file and I think that's about it. Chris took some of the bugs I was sitting on and fixed them. I want to spend some time to finish the other ones off since they're worth fixing.

Also, there was a guy on #miro-hackers last week named, but I forget his name. He was asking whether we want help with our Windows platform. I had to leave, though, and I haven't seen him online since.

Overall, it's been a week of spinning my wheels wishing I had a lot more prior experience with JavaScript and XUL.

Tue, 02 Oct 2007

blogs for planet miro

If you know of other blogs that would be appropriate for Planet Miro, send an email to will dot guaraldi at pculture dot org and let me know.

The loose goal for the planet is to aggregate Miro-related blogs: developer status, testing, news, ... If at some point the planet gets too big, we can split it up into focused planets.

I'd like to see some blogs from the rest of the community: users, TeamMiro, etc.

fixed the planet

I thought I had Planet Miro set up correctly, but turns out I had a one-character error in the crontab and so the planet wasn't updating. It's fixed now--the planet should be updating every hour.

Sat, 29 Sep 2007

MozRepl

I've been doing Firefox extension development and it's been going pretty slowly because it's hard for me to figure out what's going on when things are running (and I'm not wildly familiar with the things I'm working with).

After whining about how I wish there was a REPL for JavaScript, I did a Google search and came across MozRepl. It's helping a lot so far. I'm not spending hours hunting for object documentation anymore.

On an interesting note, you connect to MozRepl with telnet and it has a line-mode interface. Turns out that Lyntin (a mud client I worked on years ago) works fantastically for this. I would assume most mud clients would because at heart they're line-mode telnet clients with a bunch of features designed to remove repetition in common tasks and make it easier to skim large amounts of output quickly without having to read through all of it.

Fri, 28 Sep 2007

planet miro and watching progress

I threw together a Planet using Venus for Miro-related blogs (and other feeds). Like other Miro-related sites, the configuration and templates are stored in SVN. It's currently set to update every 8 hours, but we can change that if need be.

The mission of these dev blogs and planet miro is to keep everyone in the loop on progress of Miro. Previously if you wanted to track progress, you could hang out on IRC (#miro-hackers on irc.freenode.net), follow the Trac timeline, and/or watch bugs change status in Bugzilla through searches. These methods are good, but they don't follow the progress of a person or groups of people, they're following the status changes of development artifacts--the two things aren't necessarily the same. When I started in July, I mentioned starting development blogs and a planet because I think this has been wildly successful for other projects, but then ... I never really got around to implementing the dream. Kudos to Dean for getting the devblogs set up!

As a side note, when putting together the planet, I skimmed the Miro Testing blog and I thought the entry from the 26th on how do we grow the community was both poignant and important. It's worth reading if you haven't already.

Update 9/29/2007: Upon Dean's request, I changed the frequency of planet miro updates to once an hour.

Wed, 26 Sep 2007

getting mediabar to understand tabs

I've been working on getting the Mediabar to be tab-friendly over the last few days. Currently Mediabar re-discovers all the media on a page every time a user goes to a new url (by clicking or entering something new in the location bar) and when the user switches tabs. That's the behavior that I'm working on fixing.

In order to fix it, I'm doing a minor redesign of how Mediabar works internally. I've been hanging out on #xul and #extdev on irc.mozilla.org and picking up interesting tidbits of information.

After I fix this issue, there are a bunch of minor issues to fix and then I think it'll be golden. I think it's going to take another few days at least--probably more on the order of another week.

Tue, 25 Sep 2007

Hello world

This is a first post as I get used to the WordPress interface....

I'm a developer at Participatory Culture Foundation and I work full-time on Miro development. Currently I'm working on Mediabar which is a Firefox extension that discovers media on a web-page and allows you to send selected media to media applications like iTunes, Miro, VLC, ....

My plan is to post status-type posts on this blog as well as short essays on various development issues that I come across. This gives readers a window into my development progress so that things are more transparent.

I'm using Planet Mozilla as inspiration.

That about covers it. If you're interested in other kinds of content, comment below and I'll see what I can do.

About me

I'm a Miro developer employed by Participatory Culture Foundation.

What I do:

I spend my Miro-development hours testing, release engineering, doing some release planning, doing Linux and Windows development, working on enhancements, fixing bugs, and Ubuntu support, packaging and testing. I also do some bug triage, user support, and "public relations" (i.e. hanging out with content creators and content publishers and explaining how the Miro universe fits into their world). I think I'm averaging between 40 an 60 hours a week for work but my wife insists it's a lot more than that. I haven't had the courage to measure it, yet--some things are probably best left unquantified.

Ways that you can get a hold of me:

irc: willguaraldi on #miro-hackers on irc.freenode.net email: will dot guaraldi at pculture dot org

Meet me for coffee:

I live near Boston, MA, USA right off of the T. I'd love to hang out, get a cup of coffee, and talk Miro and Miro-related things. If you're in the area, definitely look me up.

I'd also love to do Miro or Miro-related hackfests. If you're interested, let me know.

The rest of my world:

My other web-site is at http://bluesock.org/~willg/.

I'm the maintainer of PyBlosxom. I've been doing some GSOC and GHOP work with the Python Software Foundation.

I started a co-working group called Nomadic Telecommuting Herd which grows linearly with respects to how much time I put into it which comes in spurts.

Mon, 09 Jul 2007

New job--PCF

It's been a crazy few months... I worked like crazy the last two weeks of grad school, got my Masters, got married, went on a honey moon (or toffee moon depending on where you live), pushed out a new version of PyBlosxom, and ... got a job! I'll be a developer on the Democracy Player (soon to be Miro) at Participatory Culture.

I'm really psyched about this. Hopefully it nicely weds my Open Source/Free Software development hobbies with employment. Hopefully it nicely weds the way I like doing software development with the way I have to do it for work. Regardless, it's nice to be working in one major language (Python) rather than two (Java and Python). Also, there's a lot of really neat technology that PCF is using that I haven't worked with before--so it'll definitely be a growing experience.

I start next Monday (July 16th). Because I'll be doing Python development for employment, it'll be a lot easier to focus on Python-oriented things and blog more about Python the language, tools, methodologies and all that, too.


pyblosxom::1.5 dev

All contents Copyright 1996 to 2010 Will Guaraldi Kahn-Greene.

Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License.