This Time Self-Hosted
dark mode light mode Search

New blog engine: Episode III

I haven’t written about this in the latest days because I was pretty much tired of trying to get Roller working; even after configuring it (which is far from trivial, as the instructions not only are MySQL-centric, but also make a lot of assumption on the user being an advanced Tomcat user, I wasn’t able to get it to work; first I got some ClassNotFoundExceptions, then I got some NullPointerExceptions due to the configuration being “incomplete”; I was able to fix the CNFE by copying over some of the system’s JARs rather than leaving there the ones actually provided with Roller, as I had anyway to copy over some other JARs, as hibernate wasn’t distributed together with the package because of license restrictions. My last resort would have been writing a source ebuild for Roller, but I know nothing of Java ebuilds, leave alone ant itself; and I’m on vacation.

Luckily, yesterday blojsom’s author David Czarneski answered me, pointing me to the right direction. I cannot just use blojsom as it is, because, well, I do have some extra requirements that are not currently satisfied (being able to use Textile on new entries, rather than having to change the database every time for instance), so I’ll have to look up JSP a bit and try to write an extra plugin to add a Textile checkbox on the page; I’ll probably also have to check why the <notextile> tag is not respected by the textile rendering classes that blojsom is using (even if there is that string inside the class files, at least strings tell me so); I looked at it last night, but I was offline (thanks to my ISP as usual) so I couldn’t get to the API documentation of textile4j to see what was all about.

My database conversion script is not that bad right now, I can easily convert blog entries, comments, trackbacks and categories (although this is a special case for my blog, as I’ve been using English and Italian as categories, while on the new one I’ll be reporting them as languages but not as different categories, as blojsom does not allow more than one category per post); I found an easy way to get a hold of the tags from Typo’s database and then import them into blojsom’s entries metadata, thanks to PostgreSQL and the ability to create sql-level functions and aggregates. Basically, all I care about is now imported correctly, when leaving out a few particularities, like the notextile thing I wrote above, and <pre> tags that I’m still unsure how to handle (basically I’d just have to replace them with <pre> and making sure that < and > are replaced by < and > inside the tags.

I do have to edit the template a bit if I want to make more prominent the links to the Comments feed and the per-category feeds (that are needed for Planet Gentoo for instance). And I should make the conversion script take care of giving me a table of redirects between the permalinks of Typo and the ones of blojsom, so that I can actually get whatever webserver I’ll chose to maintain compatibility with links to the current blog. One thing I actually would miss of Typo is most likely the ability to browse by tag, but it shouldn’t be so much of a problem, although I do plan to do something like changing a few tags (like xine) into categories to better suit what I actually take care of nowadays.

My problem now is deciding which server software will support my blog when I move it to blojsom; Lighty does not seem to really like doing reverse proxy for Tomcat (it gets timeout during connection), I’m not sure how much Tomcat would like to start serving also all the static content, plus it does not support FastCGI I use for Gitarella, and Resin still fail to work here. I should probably try older versions of Resin as nelchael suggested me, I just hadn’t had time yet (both today and tomorrow afternoon I’ll be busy, so I can’t check it out, and the night I’ve been either relaxing or working on something else lately).

Oh well, sooner or later, I’ll move the blog 🙂

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.