February 10, 2009, 14:42
I’m a bit late in blogging about this, but last month saw the release of Zine, a blog engine written in Python and in the spirit of WordPress – i.e. having a user-friendly web interface, nice looking themes, a lot of plugins, etc. It is the only Python blog engine that I know of in this style. These are very early days for the project, but already it looks pretty impressive and I have to admit I am tempted to start using it instead of investing more effort in CherryBlosxom.
Where CherryBlosxom uses CherryPy to handle the HTTP side of things, Zine uses Werkzeug (which, if I recall correctly from my quick peek when it was released, is actually even lighter and simpler than CherryPy). Where CherryBlosxom uses Cheetah for its templating, Zine uses Jinja (which I’ve never really looked at before). Where CherryBlosxom keeps everything on the filesystem, Zine uses SQLAlchemy (which I’ve never used but have consistently heard very high praise for) to store entries in MySQL, PostgreSQL or SQLite. The fact that it works with any of these three major database engines gives it a good advantage over WordPress, which only works on MySQL.
I don’t really see Zine as competition for CherryBlosxom as such, since they are both striving to fill extremely different ecological niches. I am sure that Zine will appeal to people the most and if Zine only gets better than how it looks now I expect that it won’t be too long before it is the preferred blog engine for Pythonistas, since it will be able to do anything WordPress can do just as well – and perhaps more, perhaps better. Nevertheless, I know that at first glance the two are going to look like their in competition by virtue of both being blog engines in Python (of which there are surprisingly few), so the release of Zine is somewhat motivating to put more effort into CherryBlosxom.
I’d like to put some proper, intelligent caching functionality into CherryBlosxom – so that GETs of entries or entry lists are cached (i.e. the filesystem isn’t hit to get the entry text each time) but as soon as someone comments on the entry the cache is invalidated (so that the next GET does hit the filesystem and pick up the new comment along the way). I’d also like to write some command line tools to make using CherryBlosxom easier, so that people aren’t directly writing files in their entries directory, and to automate things like spell checking, etc – much like the old setup I had for PyBlosxom, discussed here. Perhaps I’ll release CherryBlosxom 0.2 with some steps in this direction (oh, and RSS/Atom feeds, of course) sometime soon.
October 25, 2008, 20:16
Back on Thursday I made the first public release of Cherryblosxom, calling it 0.1. It is probably of minimal use to anybody because it comes with no documentation and is missing crucial features (e.g. RSS/Atom feeds), but I think even a mostly-useless 0.1 release can be beneficial for a project in that it maintains a sense of momentum.
As you’ll be able to see if your browser does RSS/Atom auto-discovery, the development version of Cherryblosxom that powers this blog has basic RSS/Atom functionality – provided by a development version of feedformatter. I hope to have both of those development versions released sometime in the next week, but I have substantially less free time for that sort of thing for the next fortnight (and have had for the last week, hence the relative lack of blogging). If I do get the Cherryblosxom version out as 0.2, perhaps I’ll make some minor concessions in the direction of user friendliness. Once the product itself is a little more complete I will disttools to make it easy to install (in the usual way, python setup.py install) and eventually I’ll put it on PyPi.
I’ve not forgotten about my Prime Time series, but when I next have time to put out a “proper” blog entry I hope to talk briefly about the use of Bayesian inference in phylogenetics. This is admittedly not something I know a lot about, but I feel like I know enough to find it justifiably fascinating.
September 20, 2008, 00:38
As I said I would, I had a poke around the relevant PyBlosxom plugins in an attempt to figure out why the anti-spam question feature was playing havoc. To cut a long story short, I did not succeed. In the process of failing, I was driven near insane by what seemed like inexplicably inconsistent behaviour by Pyblosxom. This might be due to PyBlosxom being a low quality product or it might be due to me not understanding what I was doing.
Regardless of the cause, I decided that a change was due. I wanted to use a blogging platform whose ability to “just work” I could have some degree of trust in. I turned, first, to Wordpress, because, well, everybody else does (mass popularity of software, in my experience, is a terrible metric for software quality, but generally is a good metric for “ease of just getting the damn thing to do what you basically want it to do”). One minute through their “famous five minute install” I discovered that Wordpress only works with MySQL as a backend database. Seriously lame. MySQL is one of the aforementioned cases of software popularity being a terrible metric for software quality. My server uses PostgreSQL and I really didn’t feel like installing a second RDBMS
on an already over-strained machine just for a blog. Heck, I really didn’t want my blog to rely on a database at all.
So I bit the bullet and did something similar to what I threatened to do back when I first set up commenting in PyBlosxom, and wrote my own blogging platform, in Python, using CherryPy to handle the HTTP request routing stuff and Cheetah
to handle the templating. This new platform is entirely filesystem based, like PyBlosxom and Blosxom before it – no databases are necessary. I’m tentatively naming it “CherryBlosxom”, acknowledging the fact that CherryPy does all the
hard stuff and that it follows in the idealogical footsteps of Blosxom and PyBlosxom, being that it tries to be as small and simple as possible.
If you’re reading this entry, it means that I’ve made the switch and this blog is now powered by CherryBlosxom – an extremely alpha version of CherryBlossxom, which has not been thoroughly debugged and is missing some features (like RSS and Atom feeds, which I hope to eventually provide with feedformatter). It’s entirely possible that features like archive links and tag links and commenting will not work entirely properly just yet. I am hoping to have the most severe bugs taken care of pretty quickly, in which case I’ll call what’s there 0.1 and formally release it. In the mean time, please try to use the blog like you usually would and if anything breaks drop me a line. I’m looking forward to making CherryBlosxom a polished product!