New job--PCF

It's been a chaotic few months... I worked a lot the last two weeks of grad school, got my Masters, got married, went on a honey moon (or toffee moon depending on where you live), pushed out a new version of PyBlosxom, and ... got a job! I'll be a developer on the Democracy Player (soon to be Miro) at Participatory Culture.

I'm really psyched about this. Hopefully it nicely weds my Open Source/Free Software development hobbies with employment. Hopefully it nicely weds the way I like doing software development with the way I have to do it for work. Regardless, it's nice to be working in one major language (Python) rather than two (Java and Python). Also, there's a lot of really neat technology that PCF is using that I haven't worked with before--so it'll definitely be a growing experience.

I start next Monday (July 16th). Because I'll be doing Python development for employment, it'll be a lot easier to focus on Python-oriented things and blog more about Python the language, tools, methodologies and all that, too.

Playing with category feeds

It occurred to me that adding a link to category feeds was pretty trivial, so I figured I'd give it a try. It's a bit cluttered to look at (I'm talking about the Categories section on the right hand side there), but ... it's functional.

In case anyone was wondering what my category properties looked like, they're like this:

# category plugin properties
py["category_start"] = ""
py["category_begin"] = ""
py["category_item"] = r'%(indent)s<a href="%(base_url)s/' + \
   r'%(fullcategory_urlencoded)sindex.%(flavour)s">%(category)s</a>' + \
   r' [<a href="%(base_url)s/%(fullcategory_urlencoded)sindex.xml">atom</a>]' + \
   r' (%(count)d)<br />'
py["category_end"] = ""
py["category_finish"] = ""

PyBlosxom 1.4 released

It's been 17 months or so since the last PyBlosxom release which for a small project is probably too long a period of time. Real life is a tough sometimes.

Changes:

  • bunch of bug-fixes

  • converted the documentation from docbook to restructured text

  • updates to the documentation

  • code overhaul

  • added the beginnings of unit/functional testing using nose

  • better WSGI support

  • Paste support

w00t!

GPL 3 released

I went to the FSF GPL 3 release event and it was really interesting. There's been a lot of discussion and heated exchanges over the GPL 3, but I was in grad school and wasn't really paying much attention. Listening to the discussions at the event about GPL version 3 was really enlightening.

Personally, I'm excited about the license. It allays some fears I've always had as a developer. Going foward, I'll be putting the majority of my work under the GPL version 3 license.

PyBlosxom status: 06/20/2007

I quietly released an RC2 for PyBlosxom 1.4 today after merging in Yury's patch for Paste support and merging in Steven's work for WSGI support. It's really awesome to be able to do <code>paster serve blog.ini</code> and have things work. At a minimum, it'll be a lot easier to test PyBlosxom--no mucking about with web-server configurations needed anymore.

We've finished moving all the documentation from docbook to reST format. It still needs a lot of work, but we're making measurable progress which is really cool. Also, the documentation is easier to work with and maybe that reduces the amount of energy it takes for people to help out.

PyBlosxom 1.4 should be released soon. Very soon. Will it be perfect? No, but it's a huge milestone for the project. That's pretty exciting in the grand scheme of things.

Updates:

06/24/2007 Fixed "server" to "serve". I keep typing:

paster server ...

Using exiftool and Python to fix photos (edit: to order them)

S and I decided to get a wedding photographer [1] in addition to allowing our guests to take as many photos as they wanted of all aspects of our wedding (except when we were getting dressed [and ... undressed]). There were a few reasons for this one of which being the several horror stories we've heard about people's digital media dying causing them to lose all pictures of their wedding. Ick.

The problem is that there are a fajillion pictures and it's really hard to order them into a single consistent timeline. The wedding photographer we had<sup>1</sup> had four cameras and took some 800 pictures. My dad took another 100 or so. Other people took a bunch, too. Right now I'm working with 1200+ pictures all of which are pretty big (between 5 MB and 10 MB each). It's not feasible to tweak them all by hand to order them. I didn't want to leave them unordered--my soul shudders at that thought. I needed a way to do batch processing to reorder pictures from a bunch of cameras into a nice timeline.

Read more…

Using register allocation algorithms for determining table layout

S and I decided to assign tables for our guests during the wedding reception. There were a bunch of good reasons for doing this which I'm not going to go into here. However, assigning 100 or so guests to 10 or so tables while maximizing "goodness" and minimizing "badness" isn't trivial to do on paper by hand. At some point during wedding planning, I decided we could do table layout with a modified register allocation algorithm. This is a quick summary of translating register allocation into table layout along with some commentary on how this works nicely and also where it doesn't quite work.

Read more…

Married!

I've been married for a little over a week and it's really great!

Our wedding went off fantastically! The photobooks I made using Tabblo evoked amazement from most people who looked at them. The cakes we made came out great with little sugar bees flying around on top. Creative Catering, our caterer, was amazing and the food was some of the best food I've ever had at a wedding. During the reception we had New England style contra-dancing. Even though it was very warm, many guests participated and it was a lot of fun!

It was really great to see people, but ... I didn't have enough time to get to talk with everyone. I don't think S did either. I think that's my only regret--we'll have to throw another big party next year.

The day after the wedding, S and I went to S' parents' house for a brunch then off to Cape Cod where we bumped around for a few days amidst glorious weather.

I'm still fiddling with my ring. I think that'll take a bit of getting used to because it gets sticky and then feels weird.

Wedding planning was nuts and while there are a zillion guides and articles filled with pictures of blushing brides and cakes that are built like a Scottish castle none of the ones I saw use project management techniques. I figured while it's all fresh in my mind, I'll sketch something out and at least hit all the big issues that, had we known earlier, would have made it a lot easier and more straight-forward.

Google Summer of Code 2007: PyBlosxom

Blake poked me via email and suggested I put together some ideas for a PyBlosxom GSoC project under the PSF umbrella a couple of months ago. It was a hectic time, but I threw some ideas together based on items we had in the TODO list (many of which are pretty stale at this point). I'm happy to say that we had a great proposal for building a web front end for PyBlosxom--a tool that I think a good portion of PyBlosxom users would be happy to have.

I'll be mentoring this project over the course of the summer. Z has already started working on things and I think this will turn out nicely.

As a side note, this is a huge motivator towards finishing up a release and getting out a new version of the PyBlosxom manual. On the flip side, I'm getting married in a week so I'm finding it difficult to allocate time to get the work done. Wedding planning is intense. They should use wedding planning to teach project management courses--talk about shifting requirements and general project shenanigans.