I re-re-wrote the flavour template code for the upcoming PyBlosxom 1.3 release. It works like this now:
- Pulls flavour templates from taste.flav that comes with PyBlosxom if that flavour exists.
- In either $datadir OR $flavourdir:
- If there is a directory named taste.flav, then it will take the template files from there and override the ones it got from step 1.
- OTHERWISE, it will look for files ending in .taste and override the ones it got from step 1.
- If the request is for a non-root path, it'll look in all the directories between $datadir (OR $flavourdir) and $datadir/path_info/ (OR $flavourdir/path_info/) looking for taste.flav directories OR files ending in .taste.
This allows you to put all your flavour files in a flavour directory that you specify in your config.py file.This allows you to put all the flavour files in a taste.flav directory (for example, html.flav, happygoodness.flav, rss20.flav, atom10.flav, ...).
This allows you to override individual template files from the default flavours. For example, if you wanted to add RSS enclosures, you can put a story.rss file in your $datadir/, $flavourdir/, $datadir/rss.flav/, or $flavourdir/rss.flav/ directory (depending on how you set things up) with the enclosure markup in it and PyBlosxom will pull the default rss templates and use your story.rss template.
This allows you to override individual template files depending on what category the user is looking at.
This makes it easier to package and distribute flavour packs because they can all sit in a single directory all by themselves.
There should be no backwards-compatibility issues with the new code between PyBlosxom 1.2 and 1.3.
NOTE: The code needs to bake a bit. I tested a lot of combinations of things, but I'm still finding occasional issues. This blog is using the latest code, so if you find any issues, write a comment below (assuming that's not broken) and I'll fix the issue.
I have one more big thing on my list of things to do for PyBlosxom 1.3. After that I'll probably release an RC1. Depending on school work, that could happen in the next few weeks. If you want to see the code now, get it from CVS (instructions for CVS access here).
This is more for my notes. I figured if I post it here, then I've got it written down in a place I can find again some day.
I have a Canon Powershot S230 and it records video in some format that has a .AVI extension and I think it's Motion JPEG or something like that (I have no idea what I'm talking about in terms of video formats/codecs/whatever).
Kino doesn't like the format, though. So I need to use ffmpeg to convert the files to a format that Kino does like:
ffmpeg -i _file_name_ -target ntsc-dv file_name_.dv
Kino seems totally kosher with that. No clue why or how--I figured it out by trial and error.
Then I insert all the .dv files I want in a given "movie" into Kino. After doing some fiddling around, I Export, click on the DV Pipe tab, make sure the frame of: dropdown thingy is set to All, write the file name in, make sure the tool is set to FFMPEG VCD Export and then click on the Export button. That creates a file that's in a format that I can record to a cd as a data file and it plays magically on my Philips DVD player.
I was talking with Josh the other day and he told me that I should take the time to learn Subversion and switch over rather than investing more time to tame my projects with CVS and CVSTrac. So I spent a good portion of today moving my PyBlosxom plugins (the ones that I wrote and/or maintain on my own) to a Subversion repository and Trac.
There are a couple of things that will take getting used to, but overall I've been able to replicate everything I did with CVS in Subversion.
I'm still making modifications to the setup, but I'll be hosting all my PyBlosxom plugins work at http://www.bluesock.org/~willg/cgi-bin/pybltrac.cgi/. I've allowed anonymous ticket creation for feature requests, bug reports, and the like. If you're sitting on issues, patches, and things of that nature, feel free to submit them.
I've been following (very loosely) Ian Bicking's (ianbicking.org) paste progress and it's really amazing stuff. Today, I bumped into his screencast on Ajaxy exception catching. That was really cool and I could see how it could be immensely helpful with debugging/fixing PyBlosxom plugins.
I'm adding "investigate porting PyBlosxom to paste" to my todo list for winter break; paste looks seriously awesome.
I'm going to release the PyBlosxom contributed plugins pack 1.2.3 for PyBlosxom 1.2 in the next couple of days. So if anyone is sitting on any fixes that need to go on, let me know soon.
This has a few fixes here and there--some of which are cosmetic. It also has a behavior fix for the comments plugin so that comments are shown if you have ?showcomments=yes in the querystring as well as when the specific story is viewed.
Prior to today, I was maintaining all my PyBlosxom plugins by hand... which was kind of stupid, but I hadn't really gotten around to investigating better solutions.
However, that day has come! I've pulled them all into a CVS repository and set up CVSTrac to manage documentation, bugs, features, and allow people to see version history for all of them. I'm in the process of going through all the plugins, adding CVS tags, updating copyright dates, fixing documentation, adding notes in regards to where the plugin is maintained and all that.
I aim to make the end result more organized for me and users looking for plugins and also require less effort to maintain.
I got an email from Carol Spears (http://carol.gimp.org/) that caused me to take a day off to re-organize and relax a bit.
Anyhow, so no work for me today. I'm just going to clean out my email inbox, clean off my desk, figure out where I am with bills, do the dishes, and stuff like that. Maybe if I get really excited, I'll go grocery shopping.
I did spend a couple of minutes to update my blog to the most recent PyBlosxom in CVS. Thus I now have an ATOM 1.0 feed which seems to be working nicely. I'll look into the RSS 2.0 feed next, but that requires some planning because I don't want to hose any of the Planet feeds I'm on when I switch from the rss2renderer plugin to the native RSS 2.0 feed.
It's been a month since my last blog entry. I haven't done any blog updates since I haven't really made any progress with anything. Nonetheless, here's an update of where things are.
My algorithms course is just killing me. I'm doing some 40 hours of homework and studying for it each week and ... there are still some topics that I haven't really wrapped my head around. My computer systems course, however, is pretty easy--for some bizarre reason I'm very familiar with much of the material we've covered so far.
I've been very slowly working through PyBlosxom 1.3. It's going to contains a series of bug fixes (I have to re-organize everything so I know which ones have gone in so far) and also an overhaul of the flavour code allowing for flavour directories, subdirectory handling in the flavourdir, shipped flavours (better ones), ATOM 1.0, RSS 2.0, and hopefully with the changes it'll be much easier for people to build new flavours, package them up, and ship them around in a way that's trivial to install. That's the theory.
I think the ATOM 1.0 flavour is done--I need to do some more testing with it. I think I'll do this by upgrading my blog to the code in CVS and working with it there.
I don't think I've finished with the RSS 2.0 code yet. I don't remember where I am with that.
I'm trying to figure out how to pull images, css files, and other flavour-helper content in a flavour directory and source it through PyBlosxom. I think I may build a handler for it and have the handler kick off before the default blosxom_handler. It would then figure out which flavour is being displayed by looking at the referer and various other things available, check to see if the image/css file is there, and serve it if it is. I'm pretty sure there are corner cases here. It'd be nice if people could turn on and turn off this feature, too, since it could cause issues with other plugins. Though since it's a handler that runs if none of the other handlers ran, maybe it's not a big deal. It still needs thought. (Also, this isn't a comprehensive description.)
Also, I need to put together (or at least start putting together) a TODO list for the web-site. I'm having huge problems wrapping my head around this, though. I'd love to do this as a plugin, but... I think I may end up doing it all by hand. The other possibility is to enter in all the items into the SF bug and feature trackers--but I really dislike them. Tempting thoughts would be to move all development to my server, installing subversion and Trac, and doing the whole thing with those. But... that's a lot of work and it puts me in a position where I can't just throw my hands in the air and walk away.
I started grad school last week. The last few weeks have been pretty work-intensive as I squared away a lot of stuff so I didn't have to worry about it while I'm studying.
Also, bluesock suffered a hard drive failure and that took a few days to sort out.
I haven't finished the things I wanted to finish with PyBlosxom. I have been doing some research on Leonardo to see what sorts of things we can do to make installation, configuration, and extending PyBlosxom easier.
One thing I've been thinking about a lot is the current state of PyBlosxom plugins. I'm not as psyched about splitting plugins off into a separate project anymore. Lyntin had a core set of plugins that came with Lyntin and formed most of the functionality. Then users could add additional plugins if they so desired on a user-by-user basis. I think it's prudent to do the same thing with PyBlosxom. I think this will help the typical PyBlosxom installation. I'm not sure why I didn't think of this 8 months ago or so. I'd like to do this work for PyBlosxom 1.3.