5/25/2005: pyblosxom development status

, | Tweet this

I'm going to try to fix a couple of issues before releasing PyBlosxom 1.2.1 and contributed plugins pack 1.2.2. The issues are as follows:

I'm working on PyBlosxom Manual changes as well. I think it's good to add a chapter on comments and I need to flesh out the chapter on syndication, too. If anyone wants to help with the PyBlosxom Manual, let me know--I'm happy to pass off some of the writing/collection/verification work to other people.

If you find any problems with PyBlosxom 1.2 or the contributed plugins pack--let me know those issues as well.

"tyranny of email"

, | Tweet this

I was skimming jkOnTheRun [1] and he linked to an article called The Tyranny of Email. The article isn't very exciting, but there were a couple points that caught my eye because they're crappy things that I keep doing but shouldn't be. For example:

"First, never, ever, criticize someone in email. For reasons which I have never fully grasped, any negative emotion is always amplified by communication through email. Sometimes you intend to be critical - someone has done something dumb, or said something silly, or emailed something ridiculous. Resist the urge to reply. Sometimes you don't mean to be critical - you're just making an observation, or engaging in technical debate, or adding facts to a discussion. But as soon as you sense that the recipient has taken your email as criticism, you must immediately switch media - a face-to-face meeting is best, but a 'phone call is also okay."

Also this one (less so):

"Second, don't get into prolonged technical debates in email."

Usually, the "technical debates" I get into over email are less "technical" and more hyperbole. All hyperbole is bad! [2]

[1] Every time I look at "jk", I think he's just kidding. It's confusing.

[2] j/k

My PyBlosxom setup (5/15/2005)

, | Tweet this

I figured I'd take some time to share my PyBlosxom setup. As of this writing, I'm running PyBlosxom under Python 2.3.4 on Debian with Apache 1.3.33. I'm running PyBlosxom 1.2 (with some minor adjustments). I have the following plugins:

  • booklist - displays a list of books that I'm reading
  • comments
  • wbgcomment_blacklist - rejects comments that have certain blacklisted terms in them (which has the minor nuissance that no one can talk about Texas Hold'em on here)
  • conditionalhttp - returns a 304 if the content hasn't been modified
  • filter - filters out CVS and other directories from my blog
  • gecko - tells people to use Firefox at the top if they aren't already doing so
  • plugininfo - lists the plugins that I'm using
  • pycategories - lists the categories in a hierarchy
  • pyfilenamemtime - allows me to set the mtime of the blog entry in the file name
  • pyinclude - allows me to include files with python scriptlets in the head and foot templates
  • pystaticfile - (poorly named) allows "static" content on my site but renders it in the existing template structure
  • readmore - allows me to break up my entries into a summary and extended section (I don't think I ever use this)
  • rss2renderer - builds the RSS 2.0 feed
  • tipsparser - parses tips files
  • title - urlencodes the title of a blog entry and tosses it in $urlencodedtitle (which is better for Google Links)
  • wbgamazon - builds Amazon links
  • wbgarchives - builds archive pages for entire years
  • wbgdebug - allows me to look at the debug output of my blog by tossing debug=yes in the querystring
  • wbggrep - my incredibly hacked "search" engine
  • wbgpager - builds paging navigation when there are more entries to display than I want to display at one time
  • wbgrecent - summarizes recent activity on my blog

I write most of my entries using vi or emacs and for the most part I write them in HTML.

There was a time where I wrote blog entries on whatever was in my head to build content and thus test PyBlosxom. Recently, I've been doing development summaries and writing about life changes. I think a good portion of my blog entries talk about how I don't have much free time.

I have no idea who my audience is or what they look for here.

pyblosxom manual, pyblosxom 1.2.1, and contrib 1.2.2

, | Tweet this

The last couple of weeks have been really crazy. S went off to New Jersey for the weekend, so I've had a few days to work through the things in the bottomless queue of things to do. I've been making a lot of progress, but the queue is still daunting.

There were a few bugs found in the contributed plugins pack 1.2.1, so I'm going through, fixing the ones mentioned on the mailing lists and fixing some additional issues as well. I think I'll be done with the things by Monday.

In tracking down problems with conditionalhttp, I found a bug in the PyBlosxom blosxom renderer. I think it only affects conditionalhttp, but it does so in a way that makes conditionalhttp totally useless. If conditionalhttp looks at the If-Modified stuff and decides that the content has not been modified, it issues an HTTP 304... but then the renderer goes and renders all the content and sends it down the stream just as it would with an HTTP 200. Needless to say, this doesn't do much to curb bandwidth usage.

I'm hoping to fix the problem where we fetch and filestat all the blog entries multiple times in a given PyBlosxom request. It won't be the amazingly elegant fix I was hoping to do a couple of months ago--but that requires a whole lot more work and rewriting a bunch of things in a non-backwards-compatible way and thus disrupting plugins and such.

That brings me to the PyBlosxom manual work I'm doing. The manual is already 46 pages long (that include the GDFL text). I haven't covered developer topics yet--mostly I've spent my time writing and re-writing content dealing with installation, setup, configuration, flavours, plugins, static rendering, and writing entries. I'm still getting my feet wet with docbook, so that's causing it to take longer.

Manuals take a stupendous amount of time to write. Anyone who tells you otherwise is an armchair developer.

Incidentally, if you've even looked at the manual, let me know. I have no way of knowing whether I'm doing a lot of work for nothing. I'm also very interested with problems people have, portions that are vague, and any other comments. Additionally, if you want to help out, let me know.

Boston PIG 5-12-2005

, | Tweet this

I finally attended the Boston Python Meetup monthly meeting. Nate did a presentation on ArchGenXML for building archetypes in Plone. I have no Plone/ZOPE experience, though I do know what they are and I've followed the projects for a bit. The presentation was really interesting and definitely broke the Plone/ZOPE ice for me.

Update - The Boston Python Interest Group (Boston-PIG) no longer uses Meetup. The web-site for the group is now at http://wiki.python.org/moin/BostonPig.

contributed plugins pack 1.2.1 for PyBlosxom 1.2

, | Tweet this

This is the second release of the contributed plugins pack for PyBlosxom 1.2. In terms of functionality, there were a bunch of fixes to the comments and trackbacks components and I overhauled pycategories. Beyond that, there were a lot of license changes (or in most cases license applications) and some documentation changes. In general, this release is a huge milestone for sorting out the big mess that was the contributed plugins.

Bravo to Wari, Ted, Steven, Blake, Bill, and everyone else that was involved in pulling this together.

If you find problems with contributed plugins, visit this page on how to contact us. "Problems" could be bugs, feature-requests, or setup issues.

Find the contributed plugin pack here (contrib.1.2.1.tar.gz).

Release Forge

, | Tweet this

I've been doing SourceForge releases for years and it's kind of a pain in the ass and I've always dreaded the two or three hours it takes to get all the pieces in line and do a release.

Steven Armstrong mentioned using ReleaseForge which makes half of that process _so_ much easier to deal with. I highly recommend it to anyone in the same boat I'm in.

Backwards logic

, | Tweet this

The nice thing about writing the logic backwards for something is the behavior ends up exactly the opposite of what you were expecting. [1] That's what makes this sort of thing easy to find.

After you realize what's going on, it becomes a matter of figuring out where to place the ! .

[1] That's a terrible sentence.

Me and PyBlosxom

, | Tweet this

I plain ran out of time and energy to work on PyBlosxom, so I stepped down as maintainer. I'll stay on the project as an occasional developer.

I went through my plugins and discovered wbgpager had a bug in it that prevented it from working with PyBlosxom 1.2. So I fixed it and released wbgpager 1.2. You can find it here with all the other plugins I've done. I also made some fixes to some of the other plugins. So if you're using anything I wrote, you might want to check to see if there are new versions.

48 hour film project (2005)

, | Tweet this

My brother is the producer this year for the Boston 48 hour film project again. So I showed up to help out on the kick-off on Friday night and again for the drop-off on Sunday night. All very exciting.

Last year there were some 48 teams. This year there were 62 or 63 so the place was packed. As I was helping out, I recognized a lot of people who did it last year--that's pretty cool. I even remembered some names here and there.

There are going to be 5 screenings this year. We learned a lot about ushering last year and I hope to employ ISO 9001 compliant policies, standards, and things of that nature to this year's ushering. It's going to be a busy couple of weeks!