Update and Cleanup
Part of that's because I've been preparing (gulp) to go job hunting: My current work is good, but I'm getting married really soon, and my current income and Songbird's current income just aren't enough to cover our collective bills — that, and I've been thinking for a while now that it was time to start doing something different career-wise. Despite the fact that I own my own (very small) company, I really do feel like I'm going in the wrong direction right now.
Luckily, I work in the computer industry, and folks pay pretty well here, so we'll be okay once I find a new job, hopefully in web-dev stuff; that's been a lot of fun to work on as I've been doing it more and more over the last couple of years, and it's a place where I feel like I can actually contribute something meaningful. But job hunting is scary no matter when or where you do it, and as it's been seven years since I last did it, I'm pretty rusty on the whole resume-and-interview process — not on my work skills, which are, as always, in tip-top shape and very current, but on my interview skills.
Anyway, to that end, I've decided to clean up this blog a little; I've removed some of the sillier postings and personal postings from awhile back, and left mainly the more recent postings and stuff about CMXpress, since that seems to be why most people are coming here anyway. Anybody who really wants to delve into my private life can find plenty of it elsewhere online.
But let's get into the meat of the topic: What's the status of CMXpress?
The answer is that it's in progress. We did a successful rollout of it to Crossworlds back in June, and Crossworlds has been running on it ever since, which is good. That said, I learned a lot during that rollout, and realized that it wasn't quite ready for the general public yet. Thom was willing to put up with some installation headaches to gain its administration tools, but the average Joe-on-the-street isn't going to be able to. (C.D. Rudds, who draws and writes SailorSun.org, has been working with it a little bit for his new site, Wolfpac, and that's also demonstrated some areas where it's needed more cleanup and end-user-friendly-ization.)
So some parts of it were pulled back into the workshop for retooling; during the Crossworlds rollout, I went through three or four version numbers in a hurry, patching and fixing and upgrading. I've since done a lot of work on the installer, and fixed a lot of interesting (and ugly) bugs in the backend, and added in some services that really should've been there since the start (like logging). It also needs documentation by the barrel; this is a huge and powerful package, and right now, I'm really the only person who understands it fully, and a lot of folks who are testing it have been griping about that fact.
And, of course, there was about a month during July when I was swapping out its BBCode parser with NBBC, because the old parser was slow and was covered under GPL, which isn't very friendly toward my preferred BSD license.
So where's that leave us? Right now, I'm working on the logging-and-statistical facilities, so that site owners can get a handle on their visits and visitors, which is useful for a wide variety of purposes (not the least of which is paid advertising). I've backported some of the new code to the old Wotch site, so that their database is kept in sync with CMXpress's preferred format (Lordy, Lordy, I can't wait to finally switch in the new code at the Wotch site). The search engine is in pieces right now, too, and needs some work; and I've seen a lot of evidence from the test sites that the custom-page facilities will need to be done, finis, finito before I can release CMXpress to the public too.
I know I told folks that I was hoping to have it released this summer, and I'm sorry for not releasing it yet. But I think it's better this way: The test sites have identified some places where it still needs work, and their discoveries (and my subsequent bug-fixes, patches, and upgrades) will help all of you who are waiting on it. Ideally, this thing should just be install-and-go, but it's just not quite there yet.
One other topic that arose as I was talking with Becky Heineman the other day was a simple enough question: She pointed out that she'd needed a webcomic engine for Sailor Ranko, and so she just built one in a weekend, and added most of the facilities she wanted within a week or two after that; and given that that was so easy for her to do, what was the point of CMXpress? To this question, I have several answers, and I think they're all valid:
- Most webcomic authors aren't a Becky Heineman, for one thing: Becky's a star programmer, capable of coding anything she wants in relatively short time. Whereas a typical webcomic author knows how to write and draw, and if he's lucky he can scrabble together a few lines of PHP to help automate the site a little, but coding a solid backend is beyond him.
- Becky's engine is no doubt powerful and well-suited to her needs, but it probably doesn't scale to other sites. That's the same problem the current Wotch code has and that many webcomic sites have: The code's acceptable enough code for the needs of that site, but it was designed to run that one site, not hundreds of others, and isn't easily customizable for another site. There's a very good reason we've repeatedly turned down requests for the current Wotch site code — it's ugly and unportable.
- CMXpress provides sophisticated and easy-to-use administrative services. A coded-over-the-weekend system provides very minimal administration (I should know; I've built enough of those kinds of things). A good general-purpose package should be so incredibly point-and-click-crowd-friendly that anybody can manage reams of data, and the Crossworlds rollout has shown CMXpress is meeting that goal: Darin Brown, the artist for Crossworlds, is very computer-phobic but has used CMXpress to post a comic or two by himself, and I consider that a very successful benchmark.
- CMXpress provides a solid API. The API of most backends is somewhat ad-hoc: You add stuff by altering a line of code here and there. For CMXpress, I wanted to do better than my last webcomic engine, and build a system that a programmer could love, with a clean, tight API that makes a lot of nasty stuff (page templates, BBCode, form handling, administration, etc.) really easy, and that ensures that site changes can usually be done without altering the engine. I'm tired of reinventing the wheel, and I think that even the webcomic authors who are programmers probably would rather the hardest work be done for them too.
- CMXpress is maintained. This thing was built first and foremost to meet the exotic needs of the Wotch, and that means I still am going to be regularly adding features and patching bugs because of my involvement with them. Although I've drawn some webcomic pages in the past, I'm not a webcomic author and don't really want to be; I'm a coder, and I'm quite happy with that job. This means that you can fix bugs and add upgrades to your own site just by downloading the latest copy of CMXpress and installing it: It's a lot easier to steal my bug fixes than to make them yourself, even if you are a programmer.
- CMXpress is needed — whether any other site ever uses it or not, Crossworlds is already using it, and the Wotch needs it very badly, and Tsel's asked several times if he can install it on Cheer! too. For those reasons alone, I will continue working on it. People want it; it has a purpose; there's the answer.