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.

I like my job. 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.

Firefox 3 enclosure support: retrospective (2008)

A little under two weeks ago patches for bugs [bug 303645], [bug 400061], and [bug 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:

/images/firefox_2_before.thumbnail.png

Feed preview page in Firefox 2

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

/images/firefox_3_after.thumbnail.png

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, etc.

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.

status: week ending 2/19/2008

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.

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:

  • 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

PyBlosxom status: 02/10/2008 and GHOP thanks!

I overhauled the PyBlosxom web-site so that it's now being statically "compiled" using PyBlosxom's static renderer. The whole thing is checked into SVN, too. That's a huge improvement from the previous situation, but the web-site could use user-interface and navigational work.

In doing that, I did a lot of futzing with static rendering using the code in trunk and fixed some issues. I also thought through the filelist implementation and re-worked it so that it handles sorting and truncating better. The results are really nice and I think it fixes all the major problems previous versions had.

GHOP was a big help. PyBlosxom had several tasks that were worked on and the results speak for themselves:

  • Testing plugins #1: testing comments, comment-openid, nospam or spamquestion: completed by klossalex

  • Testing plugins #2: testing pyguest, weblog-add, tags: completed by CanadaBear

  • Testing plugins #3: testing filter, latest, autoping: darkmessenger88

  • Testing plugins #4: testing pycategories, pygallery, contact: completed by CanadaBear

  • Memory footprint: investigate memory footprint of PyBlosxom: completed by josiahw

  • Writing plugin #1: write a new entry cache plugin using pickle for PyBlosxom 2.0: completed by jdzolonga

  • Writing plugin #2: write a new entry cache plugin using shelve for PyBlosxom 2.0: completed by jdzolonga

  • Writing plugin #3: write a new rst formatter plugin for PyBlosxom 2.0: completed by cracka80

It was a huge help that these people did for PyBlosxom. I haven't fully absorbed their work yet, but it should happen before PyBlosxom 2.0 is released. Many thanks to those of you who helped out and many many thanks to Google and the GHOP, PSF, Titus, Doug, Georg, Leslie and all the others who helped make this possible. Thank you!

There are a few big things that still need to be done for PyBlosxom 2.0. I'm moving through it slowly and methodically. I was hoping to have it done by the end of December, but I'm thinking now it's going to be the end of March or thereabouts.

status: week ending 1/29/2008

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.

Updates:

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

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.

status: week ending 1/22/2008

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.

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.

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:

  • pushed out the Miro 1.1 release on Thursday which had some minor release-engineering issues (I forgot the symlinks for Miro.dmg, the appserial number is 20080101000 but should have been 20080110000, and Feisty and Dapper won't build)

  • I updated the instructions for releases in the wikis which improves the release process going forward

  • I spent Thursday night, Friday and most of Saturday investigating the segfaults with the Dapper and Feisty packages and traced it down to the fix for bug 9373

  • I backed out the fix for bug 9373--I'll release Feisty and Dapper packages when we "release" Miro 1.1.1

  • I worked on the Firefox patch work for bug 400061

  • I made some more changes to the patch for bug 303645, it was reviewed, and it looks like it's on its way to Firefox 3 (assuming all goes well)

I'm going to spend the next week:

  • aiding Paul with the Miro 1.1.1 release

  • continuing the work on bug 400061 and friends