Donate to MediaGoblin, get a chance at free PyCon tickets! Mon, 05 Nov 2012

MediaGoblin is currently running a fund-raising campaign to raise funds for Chris to work on MediaGoblin for the next year implementing federation, making it easier to install and use, and other features as well.

We just announced that the next 25 people who donate $$200.00 or more will get a chance to get free tickets to PyCon.

That's pretty awesome!

If you've been waiting to support MediaGoblin, now's the time to do it!

Donate to GNU MediaGoblin! Help us cross the chasm! Mon, 15 Oct 2012

The GNU MediaGoblin project is raising funds to allow Chris Webber to work on it full time for the next year. The project has done really well over the last year and a half and has come a long way. However, there's a bunch of work that needs to be done and the sooner it gets done, the better. Essentially, we're staring at a chasm between "bootstrapping the project" where we needed enough to grow a community and have something people can build on and "1.0" where it's generally usable by our target audience.

Because of that, Chris quit his job at Creative Commons to work on MediaGoblin full time in a valiant attempt to get us across that chasm.

There are a lot more details on the MediaGoblin campaign page and a movie that Chris and Deb put together that explain why and why now.

Support GNU MediaGoblin!

Support GNU MediaGoblin!

Please help fund MediaGoblin so we can get across that chasm!

Please Tweet, Dent, Facebook, blog and otherwise get the word out, too! Use the campaign url when you do. That helps a ton! Thank you!

Migration to Trac: How some small projects balloon into massive projects when you have good intentions and you're not paying attention Mon, 30 Jan 2012

Since around July, I've been working on migrating MediaGoblin from Redmine hosted on the Foocorp servers to Trac hosted on our server. The project looked small enough initially, but then suffered from a series of complications that turned the small project into a big project that took about 6 months and involved writing about 5000 lines of code. Pretty crazy. I don't even want to estimate how many hours I spent on it. Oy.

It wasn't a terrible project, though. Parts of it were educational. I'd written scrapers in Java and Perl a long time ago, but hadn't written anything with Python, lxml, and cssselect [1]. I read through parts of Trac and Trac's db schema. I also read through Trac plugin code.

The best part about it is that it's done now. This gives the GNU MediaGoblin project more autonomy and also more flexibility for adjusting the project to meet their specific needs. That's good stuff---time for cake!

[1]cssselect is amazing. Many thanks to Asheesh for telling me what I was doing was silly and to use cssselect since it's way easier to use. As a side note, Asheesh is teaching Web scraping: Reliably and efficiently pull data from pages that don't expect it at PyCon 2012. If you get the advice I got, it'll be awesome.

phil 1.0 released! Sat, 03 Dec 2011

Mediagoblin has monthly project meetings. One of the things I wanted to automate was meeting reminders that gets sent x days in advance, contain the link to the Meetings page in the wiki, and specify the date and time of the next meeting. I figure if we automate it, it's one less thing we have to think about---it just happens.

To do this, I decided to write phil. For the most part, it's sort of a throw-away project, but it was so small that I decided to go through a complete project development cycle with it and make sure it had all the bits a mature Python project should have: proper packaging, license, configuration, tests, project infrastructure, ...

I think it took about 10 hours over the course of 2 weeks. I was learning the icalendar library and python-dateutil and also figuring out exactly what I wanted it to do as I went along. For a small project like this, that's fine. For a larger project, I'd prefer to spend more time researching and designing ahead of time.

It was nice to "take a vacation" and put all the other projects I normally work on on hold to throw something together from scratch.