Jul 3

status of trunk

Posted by wguaraldi

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…!

Mar 26

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.

Mar 18

status: week ending: 3/18/2008

Posted by wguaraldi

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.

Mar 5

status: week ending 3/5/2008

Posted by wguaraldi

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

  • Bug 9644: implemented a preference allowing you to switch between renderers on GTKX11–it’s not great, but it’s good enough (probably).
  • Bug 3067: applied a patch for suspending the screensaver when playing video in fullscreen on GTKX11… then I found a couple of problems with it and backed it out today.
  • Fixed a bunch of other bugs related to gstreamer renderer, ff/rew, revver, mefeedia, …
  • Worked on bug 9214 where if you click on the delete link when viewing a video in fullscreen on GTKX11, then you’re stuck in fullscreen. I worked on it for a couple of days and ended up giving up today.
  • Sent out a proposed tentative release schedule for Miro 1.2 to the develop mailing list.
  • Helped with some of the initial GSoC preparation.

Next week I’m going to:

  • Bug 9692. Check out Fabien’s patches for Ubuntu that get Miro to work with xulrunner 1.9.
  • Bug 9691. Look into Miro compiling with gcc 4.3. Uwe said something that suggested that gcc 4.3 on Debian is imminent. So… this needs to be figured out.
  • Continue to shepherd Miro 1.2 until it’s out the door.

Busy busy busy….

Feb 26

status: week ending 2/26/2008

Posted by wguaraldi

It was an exciting week:

  • Bought a new laptop (Dell 1420n with Ubuntu Gutsy on it, 4 GB of memory and BRIGHT YELLOW)
  • Spent a couple of days switching to the new laptop and getting VNC working on my desktop machine
  • Worked on bugs 9614, 9627 and 30679627 took me a while to figure out
  • Centralized the list of projects for internships, GSOC, et al — see it at https://develop.participatoryculture.org/trac/democracy/wiki/CommunityProjects
  • Toyed with Hardy Heron alpha 5 for a few hours to get a feel for where we are with that; turns out Miro 1.1.2 is in the Hardy repositories, so that’s a good sign

This coming week I’m planning to:

  • Work on 1.2 bugs starting with mine and continuing with Nassar’s
  • Take a look at the two-stage problem with the subscribe.getmiro.com site

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

  • mutantmonkey for the patch which disables the x screensaver for GTKX11 when watching movies in fullscreen — this is awesome!
  • Njaal for the patch so that Miro will automatically stop seeding torrents when a specified ratio is reached in bug 8793
  • Sid for the excellent bug report for 9627
  • elmargol for help with bug 9614
  • Uwe from Debian and Christopher from Ubuntu for the work they’re doing and the help they give us on packaging

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.

Feb 20

status: week ending 2/19/2008

Posted by wguaraldi

It was a pretty slow week.

  • I spent some time trying to implement 5403 and 8619 on Mac OSX, but then discovered that Luc must use some gui builder tool that I don’t have. So I ended up passing those two bugs off to him.
  • I spent some time doing bug triage.
  • I fixed a few problems from code flux.
  • I worked on 9521 for a few days. It’s a lot more complicated than I thought it was partially because it touches sections of the code I haven’t touched yet. Nassar thinks it’s probably not something we want to bother with. I think I might be able to implement it, but I think it’ll take a week to get it right. I think we should defer it to a future version.

Things I’m planning on doing this week:

  • Possibly continue working on 9521 depending on the call.
  • The two-stage installer bug is still out there and I have access to pcf3 now, so I think I can solve it. I sent an email to plans regarding that subscribe.getmiro.com site being all kinds of bit-rotty and whether I should spend time fixing it, but didn’t get any replies.
  • We got a patch for bug 8793 for implementing ratio restrictions for torrents for GTKX11. The bulk of the patch is the glade code for GTKX11; the actual code is pretty trivial. I’d like to look into this and probably apply it.
  • Check out Miro on Ubuntu Hardy (which is in alpha 4 now) and get a feel for where it’s at.
Feb 12

status: week ending 02/12/2008

Posted by wguaraldi

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

Things I did:

  • implemented 5403 and 8619 for GTKX11 and Windows
  • worked on Mediabar specs (briefly)
  • went to the Worcester office to hang out with the Nicks
  • bought a Mac mini for Boston devs
  • wrote a blog entry about the Firefox 3 work I did so it’s clearer as to what I was working on and how it impacts Miro
  • did a 1.1.2 release which contains the exception text for OpenSSL and GPL co-existence (though it’s not entirely clear if I did this right)
  • did some bug-fixing on GTKX11 to get the timebar and video information displaying correctly
  • did some re-working of the theme I’m using on my devblog so it’s less annoying–still needs some help, though

Things I’m working on this week:

  • finishing up work on bugs 5403 and 8619 (though I may end up giving up–I’m not really following where oid comes from in the strings)
  • go through the bugs and do some more light triage work and start marking bugs that look bite-sized as such
Jan 30

status: week ending 1/29/2008

Posted by wguaraldi

I spent the week working on:

  • Firefox patches for 303645, 400061, and 400064
  • Fixing build issues with Miro 1.1.1 on Gutsy (i386 and amd64), Feisty and Dapper
  • Mediabar specs and revival
  • Some minor bug triaging
  • Bug 9150: implementing feed:// and feeds:// support at the command line

This coming week I’m:

  • Working on Mediabar specs and revival
  • Any post-landing Firefox patch work
  • Working on bugs 9523, 9521 and 5403
  • Getting a Mac-mini for Boston devs for testing/development
  • Visiting the Worcester office on Thursday, February 7th

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.

Jan 22

status: week ending 1/22/2008

Posted by wguaraldi

Things I did this week:

  • Visited the Worcestor office on Thursday.
  • Cut a 1.1.1 rc1 release.
  • Cut a 1.1.1 final release.
  • Built Gutsy, Feisty and Dapper packages for 1.1.1… then spent half a day dealing with repository issues resulting from Gutsy i386 miro-data package being slightly different in some way than the Gutsy AMD64 miro-data package. I haven’t figured out the problem here. I’ll try to do it this week. I suspect foul play. Probably my fault. If you’re having problems with Gutsy, Feisty or Dapper packaging for Miro from the PCF repository, let me know.
  • Pulled an all-nighter Friday night working on and finishing up patches for 400061 and 400064. Then spent several days talking with Mozilla folks, fixing the patches based on reviews and generally trying to get as much done as possible to increase the chances of these patches making it into Firefox 3.

Things I plan to do this week:

  • Continue pushing the patches for 303645, 400061 and 400064 until they’re landed.
  • Figure out what the problem with building the miro-data package is.
  • Figure out what to do about a new laptop. I’m currently looking at the Dell 1420N and System76 laptops. Any thoughts on Ubuntu-based laptops would be hugely useful.
  • Try to avoid getting involved in anyone else’s work until the patches for Firefox are out of my hands.
  • Spending some time with my wife before she forgets who I am.
Jan 15

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.

WordPress. Theme based on Simplism, but without bits I found irritating. I'm still toying with it.