Miro 1.0 released!

I work for PCF 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....

Bee Careful, Marvin! (2)

Back in 2005, S and I wrote a children's book called Bee Careful, Marvin. We did the entire thing by hand using free/open source software (Ubuntu, Scribus, the Gimp, ...) and self-published it on Lulu.

After two years, I finally got around to updating the book. I updated the license to a Creative Commons BY-NC-SA 3.0 license, moved the licensing text to the end, added a dedication page and updated the colophon. I also put all the "source" in version control using Bazaar and built a Trac instance to manage it and any other books S and I write going foward. You can see all this at https://bluesock.org/~willkg/marvin/beecarefulmarvin.html.

The "source" is under a disjunctive set of licenses: GNU General Public License 3.0 or later and Creative Commons BY-NC-SA 3.0. People can choose which one fits their needs better.

The book is free--I encourage anyone to download it, purchase it, copy it, give it to a friend, give it to a child, translate it, adjust the layout, ... Light user testing has suggested it appeals to children between 2 and 4 years of age.

It took forever to get around to figuring out how to manage the pieces, but I'm pretty happy with what we've got set up. We're currently working on the next book... hopefully we'll get it done by the end of the year.

Updates:

April 7th, 2021: Updated link to Marvin source.

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.

Galcon in Gutsy

I had to install the following on a fresh Gutsy install to get Galcon working:

sudo apt-get install python2.4 libsdl-ttf2.0-0 libsdl-mixer1.2 \
    libsdl-image1.2

Figured I'd mention it here. I don't have a Galcon Forums account and don't really feel like creating one. If someone else has a Forums account, post the above in case other Gutsy-users are having problems.

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:

  • Simon from dbus-python who walked me through fixing the dbus-python deprecation issue and reviewed the code changes I made.

  • Markus who helped me with a variety of Gutsy and Gutsy packaging issues.

  • Paul who noticed our README was out of date and suggested changes.

  • Matthias who helped with Gutsy and Feisty packaging issues.

  • Gotz who helped with packaging issues.

  • Stéphane who helped with packaging issues.

  • Marco who helped with packaging 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.

status: week ending 10/30/2007

This week I spent time on:

  • gutsy-related issues

  • gutsy packaging issues

  • dbus-python deprecation warning (6226)

  • sun-java*-plugin problems with Miro and gtkmozembed (8444)

  • problems with mismatched gtkmozembed between compiling and linking

  • tagging and releasing rc1 and rc2

  • triaging all bugs assigned to me

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.

Status 10/25/2007

Work has been pretty busy. I've been doing release manager stuff, working on Gutsy packaging issues, puzzling over an intermittent problem between the sun-java6-plugin and Miro, working on a Firefox extension, and working on a patch for Firefox 3.0.

I went to some of the after-hours activities for the GNOME Summit Boston. I'm going to PodCamp Boston this weekend.

I was writing my todo list management application in Django, but then decided to switch it to Pylons. Now I'm thinking I may just go a much easier route and implement it in web.py. A year ago, I wrote a wiki system that was code-friendly using web.py in three hours which included the amount of time it took to learn how web.py worked.

PyBlosxom work for version 2.0 has slowed considerably. I just haven't had much time to spend on it. A bunch of us are hanging out in #pyblosxom on irc.freenode.net and we're talking about things more often. I met paulproteus in real life during the GNOME Summit Boston. I'm trying to figure out how to create multi-page output using docutils. There was some development in that arena over the summer, some of it due to a GSoC project. I need to spend some more time to figure out what's available now in SVN, how to use it, and whether it'll fix my problem.

I've upgraded all my machines to Gutsy. It's nice--the fonts seem to be much easier to read on both my laptop and my desktop with an LCD.

That about covers it. It's been a low-Python high-JavaScript month.

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.

Updates:

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.

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:

  • add to an existing bug report or create a new bug report in our Bugzilla system, and/or

  • comment here (but make sure I have some way to reply to you)

  • hop on #miro on irc.freenode.net and let us know.

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