I really should go to bed. But this jotting down and public airing of thoughts is catchy. Cevan had remarked, “Boy, these people must like hearing themselves talk.” Maybe. But there seems something seductive about sending out a signal from the voices in my head and seeing if it echoes back from any other head voices. (Which is why I especially like the ‘comment on this’ link!)

Anyway… the current dillema. I’m a hacker. My title at the day job is Senior Application Architect. After hours, my roommate and I have been working on NinjaCode.com and the Iaijutsu project.

What’s Iaijutsu? Glad you asked. It’s an object oriented web content management and application development framework. What’s that? Well, it’s basically a system of expandable code and services that seeks to allow web hackers to solve problems once and for all. For example, this site could probably be done in a short afternoon with it. Slashdot.org could probably be done in a leisurely weekend. And then, after doing that, you can just repackage and reuse everything you’ve done and build upon it for the next project. (Well, to temper those assertions– Iaijutsu still needs a bit of work, but that’s the general idea)

Also, it promotes a discipline of clean separation of logic, content, and presentation. What’s that mean? It means, crudely, that there is no mixing of application code (Perl) and presentation (HTML). The code does its thing and provides results to a template system that uses HTML template files to present the results, quite a bit like this LiveJournal site itself works. So, the code, if written properly and with reuse in mind, can be given any number of faces.

As for content… well, content is treated like objects. Each kind of content (text, image, sound, whatever) is associated with a class, or module of code. Also, if you know anything about object oriented programming and inheritance, you know that in a class framework many classes can share code by being descended from a parent class. So, all these different kinds of content classes are descended from a basic object class that provides basic management facilities.

In other words, each class of content is a variation on a theme. All objects in Iaijutsu can be created, edited, uploaded, cut, copied, pasted, etc… each specific class of content can do all of those things, plus the things special to that kind of content. Image objects can tell you their dimensions. Text can be edited online. Sounds could tell you how long in minutes they are.

Blah blah blah… anyway, enough of the advertisement. On with the dilemma:

Smart though I may sound, I am not the only guy to have thought of this. Enter Zope. What is Zope? Zope is an object oriented web content management and application development framework. Whoo… deja vu.

So, why did I make Iaijutsu. Zope already does what my thingee is supposed to do, it’s been around longer, and it already has more people working on it. Well, I have some major pet peeves with Zope. I also have very much disliked the language it’s written in, Python. (I’m a Perl Monger) In true Open Source spirit, I had an itch, decided to scratch it myself and just !@#$% do it!

Well, that started a year or so ago. I’ve gotten very good with Perl. I’ve met a lot of excellent people and love them all. Iaijutsu has also come a very long way, and does most of what I set out to do. But I’ve got a ways yet, have not written much documentation so that other hackers can help me, and am now running out of the free time to work on it. On top of that, NinjaCode, more than 1 1/2 years later, is not a reality yet, and that’s really why I started Iaijutsu.

Now I have what feels like a dilemma. I have a boss at my day job who loves Zope and knows the guys who made it. I also really want Ninjacode to be a reality by this summer. The computer scientist in me is also, finally, being swayed over by Python. (Because damn it, I’m not just a Perl hacker, I’m an artist and a scientist!) But I’ve got this project I’ve invested so much of my life in, hours and hours, which is just not quite ready for prime time. I feel like I’m about to abandon it.