In the last few weeks, I have been writing some Ruby libraries that will ultimately empower Nukumi2, my next-generation blogware. In particular, these, and their current state, are:
bungee: The application container that will hold Nukumi2 (and other software, I hope). It will allow to use Nukumi2 using CGI or as a Webrick servlet, but can also do static page generation. bungee is currently early beta, but the design works.
topical: A dynamic and flexible categorization framework. I only started that yesterday, but I can tell it works. :-)
tangerine: Nukumi2 won’t make use of XSLT (at least, not by default). tangerine will be used to define the page templates. It already works really nicely, but hasn’t been used a lot yet.
dana: Later versions of Nukumi2 will use possibly dana, a pre-alpha, so-far proof-of-concept object database, mainly for caching purposes.
These are other Ruby libraries, not written by me, that I am likely to use:
needle is a rubyish dependency-injection framework. I will almost surely want to use it (at least 33% of the Nukumi1 code would have been superfluous if I had known about dependency-injection back then…).
WEBrick: This Ruby-based webserver will be the preferred way to access Nukumi2, however, CGI and static pages will be supported too.
BlueCloth: BlueCloth has been proven to be very useful and will continue to stay the default markup language. Other Clothes will stay to be easy to add, though.
Now, why do we (or I, at least) need Nukumi2 at all?
I’m really dissatisfied with the current code base. Every feature I want to add—and that should be easy—is harder than the one before. I don’t understand the main processing loop anymore (shame on me). Besides, I hope (nah, I’m sure…) that my coding qualities have improved, and that refactoring won’t cut it in this case.
There is much more Ruby blogware around now that inspires me. When I started coding Nukumi, all I knew of was an early Hobix, and various blosxom ports. Now, I have looked at recent Hobix versions, Blogtari!, Rublog, etc. etc. Nukumi2 won’t be without reason a new major version.
There are various features that I’d like to have: dynamic page generation (this will change a lot), better categorization features…
It sounds like fun. :-)
I’ll start writing a spike this week; I estimate about 2 weeks for it. (I shouldn’t estimate in my blog entries, I know.) Then, I’ll redo it using test-driven development. I hope to get a 0.1 out this year.
NP: Green Day—American Idiot
(American voters, it will depend on you whether I have to play that song again on November 2nd.)