Jul 12

anniversary

Posted by Will Kahn-Greene

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!

Jul 3

fast and loose cloc stats for Miro

Posted by Will Kahn-Greene

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
-------------------------------------------------------------------------------
Jul 3

status of trunk

Posted by Will Kahn-Greene

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

Jun 23

trunk about to be _very_ broken

Posted by Will Kahn-Greene

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

Jun 19

at FUDCON 10 — come meet me!

Posted by Will Kahn-Greene

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. ;)

Jun 18

review flag; contributing patches

Posted by Will Kahn-Greene

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.

Jun 4

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.

May 22

Miro hackfest in Boston

Posted by Will Kahn-Greene

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:

  • cleaning up and improving the gtkx11 platform interface, gstreamer/xine use, …
  • working on bitesized bugs and working on unittests
  • hacking together an interface for Elisa or MythTV
  • testing out the fledgling Mozilla embedded API with the gtkx11 interface
  • sorting out packaging issues
  • other things?

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.

May 17
  • (r6949, bug 9908) gstreamer renderer uses gconfvideosink now–much better video output
  • (lots of revisions) new user interface
  • (lots of revisions) Windows ui looks and acts like Mac OSX ui
  • (bunch of revisions) all unit tests pass

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

May 17

firefox 3 and enclosures (recap)

Posted by Will Kahn-Greene

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.

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