Hello world

, | Tweet this

This is a first post as I get used to the WordPress interface....

I'm a developer at Participatory Culture Foundation and I work full-time on Miro development. Currently I'm working on Mediabar which is a Firefox extension that discovers media on a web-page and allows you to send selected media to media applications like iTunes, Miro, VLC, ....

My plan is to post status-type posts on this blog as well as short essays on various development issues that I come across. This gives readers a window into my development progress so that things are more transparent.

I'm using Planet Mozilla as inspiration.

That about covers it. If you're interested in other kinds of content, comment below and I'll see what I can do.

About me

, | Tweet this

I'm a Miro developer employed by Participatory Culture Foundation.

What I do:

I spend my Miro-development hours testing, release engineering, doing some release planning, doing Linux and Windows development, working on enhancements, fixing bugs, and Ubuntu support, packaging and testing. I also do some bug triage, user support, and "public relations" (i.e. hanging out with content creators and content publishers and explaining how the Miro universe fits into their world). I think I'm averaging between 40 an 60 hours a week for work but my wife insists it's a lot more than that. I haven't had the courage to measure it, yet--some things are probably best left unquantified.

Ways that you can get a hold of me:

irc: willguaraldi on #miro-hackers on irc.freenode.net email: will dot guaraldi at pculture dot org

Meet me for coffee:

I live near Boston, MA, USA right off of the T. I'd love to hang out, get a cup of coffee, and talk Miro and Miro-related things. If you're in the area, definitely look me up.

I'd also love to do Miro or Miro-related hackfests. If you're interested, let me know.

The rest of my world:

My other web-site is at http://bluesock.org/~willg/.

I'm the maintainer of PyBlosxom. I've been doing some GSOC and GHOP work with the Python Software Foundation.

I started a co-working group called Nomadic Telecommuting Herd which grows linearly with respects to how much time I put into it which comes in spurts.

Paste and WSGI

, | Tweet this

I'm hanging out on #pyblosxom on irc.freenode.net more often now that I'm hanging out on irc.freenode.net for work during the day. Zeth was on today and pointed out that if you're running PyBlosxom with Paste, then the default configuration doesn't allow for css and image files to be served.

This weekend, I wrote a media serving plugin for PyBlosxom which solves this issue, but I decided to spend some time to write a WSGI application to do the same thing and use Paste's urlmap to handle the routing. It took 10 minutes to throw together and it works nicely. I'll clean it up and throw it in the Trac instance tomorrow. Over time, I'm liking WSGI more and more.

Status 09/08/2007

, | Tweet this

I ordered a Seagate Barracuda Ultra ATA/100 drive from Amazon.com the other day and it arrived today. I opened it up to discover it's a PATA drive. However, I thought I ordered an ATA drive and not a PATA drive.... Long story short after an hour of researching and finally calling up a friend who does hardware work, I discovered that "they" renamed ATA to PATA so that it won't be confused with SATA. No one sent me the memo.

I was at Tag's Hardware in Porter Square (Cambridge, MA, USA) to buy Poly-acrylic for some shelves I'm putting up and they're selling decent bookshelves for $20.00. We bought one--it's pretty sturdy and it folds up for moving/storage/whatever. They probably have more left if you're in the area and interested.

I've been working through PyBlosxom stuff. I updated the web-site to use PyBlosxom 2.0-dev (in trunk). We worked through entry caching plans on the mailing list and implemented most of them. We've also been discussing and working through template variable syntax and semantics. I've been adding new unit tests and using tests to help work out the design issues. The testing framework has made it so much easier to do development work.

I've been writing a todo-list-tracking application in Django. I'm hitting a point where it's half-implemented, but I'm thinking I may switch back to Pylons because it's Paste-friendly and easier to deal with.

Bunch more stuff, but it'll be in separate entries.


, | Tweet this

My mother made great granola growing up. I think she got the recipe from her mother. I know my sister makes it, too--it's good stuff.

I keep losing the recipe, though, so I figured I'd post it in my blog. I'm not an aspiring chef, this isn't my hobby, and I don't watch the Food Channel. So... this is probably a once-only recipe blogging experience.

  • 4 cups - rolled oats
  • 1 1/2 cups - shredded unsweetened coconut 1
  • 1 cup - wheat germ
  • 1 cup - chopped nuts 2
  • 1 cup - unsalted hulled sunflower seeds
  • 1/2 cup - sesame seeds
  • 1 cup - honey
  • 1 cup - oil 3
  • 1 teaspoon - vanilla extract

[1] - I find it difficult to find shredded unsweetened coconut in the grocery store, but I can usually find it at a gormet, organic, or health food store pretty easily. On the flip side, I don't get around to frequenting those kinds of stores often, so I just go with the shredded sweetened coconut. YMMV.

[2] - Walnuts, pecans, and almonds are fine. I haven't tried other kinds of nuts, but I think most nuts will do.

[3] - Vegetable oil is good. I think it'd probably be fine with sesame seed oil and some of the other oils. Olive oil is probably a bad choice since it's got a pretty distinct non-granola flavour.

  1. Pre-heat oven to 325 degrees. I don't follow this step... I heat the oven to 300 degrees. However, when I moved in my oven had no markings on the dial so I wrote them in with a Sharpie and it's not clear to me that my markings match up with reality. YMMV, but the key is not to burn your granola.
  2. Mix all the dry ingredients in a big bowl. Sometimes I throw other stuff in, too--whatever I have lying around: flax seeds, wire-cut oats, extra sesame seeds, ...
  3. Heat the honey in a small pot and mix in the oil and the vanilla. You just have to heat it enough such that the honey and oil mix.
  4. Mix it all in the big bowl.
  5. Spoon the granola onto a couple of baking pans that are 1 inch deep and like 9x13. If they're cookie sheets you're going to have a hell of a time stirring the granola--it'll get everywhere.
  6. Spread the granola out so that it's not too thick anywhere.
  7. Put the pans in the oven.
  8. Every 5 to 10 minutes, take the pans out of the oven, stir the granola around and then put them back in. I swap which pan is on top and which is on bottom because my oven is hotten on the bottom than the top. Bake for no more than 30 minutes total.
  9. Your granola is done when it's toasty brown. Your granola is overdone if it's dark brown and/or black.
  10. I take it out, leave the pans on the stove to cool, and do some other stuff for 45 minutes. Then I take a spatula, break up the granola, and in the messiest possible way pour it into large yogurt containers.

Sometimes I throw in dried fruit like raisens in.

That's it!

Better Gmail plugin

, | Tweet this

I read on Voidspace about Better Gmail and figured I'd give it a try. It fixes one of the things I dislike about Gmail: lack of fixed width font on messages. I've gotten used to or around the other things I'm not wildly excited about, but lack of fixed width font when viewing messages is such a pain in the ass. Bugzilla emails come in and they're all screwy, emails from my stock broker come in and they're all screwy, emails from other people that involve text-based tables... they're all screwy, too.

Anyhow, Better Gmail has a Fixed Font option and it's awesome. I don't understand why the Gmail folks haven't added a fixed width font option to Gmail yet.

Home improvement projects

, | Tweet this

Since I got married and since we decided to stay in the current apartment for another year, I've been involved in a bunch of home improvement projects to neaten things up, clean some stuff out, re-organize, and build some furniture to make better use of space. I've finished a set of shelves to replace one of the desks I had. I'm in the process of building a small set of shelves to go above the counter to use some vertical space in the kitchen for storage. I'm thinking about building another set of shelves.

My brother-in-law uses Google Sketchup to do his drafting. I had a look at it a couple of days ago and what he's done with it and it's pretty wild. My problem, however, is that I'm running on Linux and I have a preference towards Free Software and Open Source. Partially because I'd like to share my plans with other people in non-proprietary formats and partially because I stand a better chance of fixing things when they go wrong.

Does anyone know of 3-d modeling/drafting/basic CAD software similar to Sketchup that works in Linux?

As a side note, it turns out I have the same estimation problems with home improvement projects that I have with programming projects. Irritating.

Google Summer of Code 2007: PyBlosxom ... finale

, | Tweet this

I mentored Z who was working on pyblosxom-webfront which is a web-based interface to your PyBlosxom blog.

Overall I'm pretty happy with the project. I had a pretty crazy May and June that definitely affected the first half of the project, but Z and I had a few chats just before the second half and ironed most of the issues out.

While he was working on webfront, I rolled out PyBlosxom 1.4 (and 1.4.1 and 1.4.2) which have support for Paste. Paste makes writing plugins and testing them _so_ much easier. Z also worked out some problems with making complex plugins. We should look into refactoring the comments plugin accordingly.

From here Z says he'd like to continue working on webfront and maintaining it. There are a bunch of things that it's missing, but it's a good platform to build on and it was a good experience to work with him to get there.

Thank you Google!

Migrating tickets in Trac to bugs in Bugzilla

, | Tweet this

I spent a large portion of the last few weeks at PCF building a migration script to migrate tickets from our Trac instance to bugs in our Bugzilla instance.

I started writing SQL scripts, but then it got too hairy because there are a bunch of Trac ticket fields that have no constraints and translating them to Bugzilla equivalents required mappings and temp tables ... I abandoned that approach pretty quickly and wrote the migration script in Python.

The outcome of the migration is pretty decent. We've spent time fixing the data in Bugzilla after the migration, but I don't think there's a way to do a perfect migration because of the nature of the two bug systems.

I thought the project was interesting and mentioned it to a few people. The most common thing people respond with when hearing I was working on migrating our bug data from Trac to Bugzilla is, "What??? WHY?!?!" and their eyes would open wide with shock. I think Bugzilla has an undeserved bad rap.

The scripts are here (participatoryculture.org) if anyone else with similar plans is looking for them.

As a side note, the Python Database API specification PEP is fantastic--anyone who contributed to it should get a gold star.

Athlon XP on the side of the road

, | Tweet this

Last night, S and I were walking to meet some friends at the crepe place when I spotted a black mini-tower with a "free" sign taped to it. I looked at it and it had been hand-built and had case fans with LEDs. I figured that's kind of interesting. So I picked it up and brought it home.

Needless to say we were late to meet the friends. But the next day (today), I took a better look at the machine (i.e. I plugged it in and turned it on). It's an Athlon XP 1800+ with 640 MB of RAM (or something like that). I figure I'll slap one of the half-dozen hard drives I have sitting around in it and use it as a spare build machine or something along those lines. The things you find on the side of the road....