Dev (old posts, page 19)

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

, | Tweet this

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.

The release hat-trick!

, | Tweet this

I mothered the Miro 1.1 release earlier today. Then I decided to push out PyBlosxom 1.4.3 which I have been sitting on for a month. Then after talking with "paulproteus", I decided to go for the hat-trick and released Lyntin 4.2 as well.

w00t for releasing three software thingies in one day! Boo for sitting on two of them for extended periods of time.

Pretending to add new files with cvs

, | Tweet this

I was throwing together a patch for Firefox 3 and needed to add some files to CVS but I don't have add privs. If I don't add the files, then they don't show up in the diff. After a Google search, I bumped into fakeadd which tweaks the Entries file so that the new files show up in the diff. No clue if that's a good thing, but it certainly fixes the problem I was having.

Nose and coverage

, | Tweet this

I'm working on improving the PyBlosxom testing situation and in the process of doing that ran into a problem with nose (version 0.10.0) and coverage (version 2.77). Both installed with easy_install.

When running:

nosetests --verbose --with-coverage --cover-package=Pyblosxom --include unit
nosetests --verbose --with-coverage --cover-package=Pyblosxom --include functional

I bumped into the problem described here ( and here ( The solution is to either:

  1. remove from /usr/bin, or
  2. change the filename from /usr/bin/ to /usr/bin/coverage

Miro 1.0 released!

, | Tweet this

I work for Participatory Culture Foundation as a developer on the Miro internet video player.

Today we released Miro 1.0. For most of the projects I've worked on, the 1.0 mark is exciting to reach, but also somewhat of a downer because it really requires you to hone the list of all possible things you could do down to a small finite list. Inevitably, there are things people will want to do that 1.0 doesn't do. Still, it's a huge milestone for the project. We're already working on post-1.0 development and making changes to decisions that didn't turn out as well as we had hoped.

A good portion of the work we do is in Python with lots of interaction between Python and libraries written in C and C++. For example, we use a lot of Pyrex to speed up critical sections.

Miro is a great product to continue to push open standards for video distribution and consumption on the Internet. I regularly watch GoogleEDU videos through Miro and I'm hoping other Python-related channels will be available as well. At some point, I'd like to create my own Python-videos channel and aggregate good Python-related video content. There's a lot of screencasts and tutorials out there....


, | Tweet this

I've been doing Firefox extension development and it's been going pretty slowly because it's hard for me to figure out what's going on when things are running (and I'm not wildly familiar with the things I'm working with).

After whining about how I wish there was a REPL for JavaScript, I did a Google search and came across MozRepl. It's helping a lot so far. I'm not spending hours hunting for object documentation anymore.

On an interesting note, you connect to MozRepl with telnet and it has a line-mode interface. Turns out that Lyntin (a mud client I worked on years ago) works fantastically for this. I would assume most mud clients would because at heart they're line-mode telnet clients with a bunch of features designed to remove repetition in common tasks and make it easier to skim large amounts of output quickly without having to read through all of it.

For example, say I was interested in skimming changes for the title attribute. I could do this:

#highlight {reverse,green} {title=*}

That will highlight lines with "title" in them from "title" onwards.

Paste and WSGI

, | Tweet this

I'm hanging out on #pyblosxom on more often now that I'm hanging out on 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.