A Nerd Vent

I know I’m supposed to be all “dude, 2004 was awesome and here are 7,000 links to all the awesome stuff.”

Can’t do it. This is a geek entry. It shouldn’t make Leta less cute, though. Plus, Leta was born in 2004. That’s all you need to know, right there.

Anyway, I was going to write a big long message to the Movable Type Developer’s Network, because a certain hot-button issue came up for me. Namely, the way categories are used (and under-used) in Movable Type. Bear in mind that I have a headache, it’s late and I’m too lazy to go back through and change all the MT’s to Movable Type. If you see MT below, I meant to type Movable Type, but couldn’t due to holiday delirium.

Here’s what I was going to send:
I may have been a little glib about the category implementation, but I think the ability to have a template that is specific to a category (or group of categories) should be application-level functionality, not reliant on plug-ins. Regardless of philosophy about what the software does and where it’s going, the app [Movable Type] currently provides categories (and now sub-categories) as a way to display and sort content. It doesn’t allow for a very full range of options. As a result, brilliant plug-ins have been written to make up for the shortcomings of how Movable Type deals with categories. I just think it’s time for MT to step it up in this regard, and having spent three years using MT, it’s been my biggest hangup. MT has created such an enormous level of empowerment, I would love to see it get more powerful from the inside.

When we redesigned Dooce, we used a method described here to get the various category archives to render differently. My real-world reason for venting: what happens when a category is added? The main user (Heather) has to tell me she’s added a category and I have to go in and code all those includes and templates.

How should it work, then? When I make a new category, I should be able to assign an archive template to it. So for categories 1, 2, 4, 6, 8, 9 and 15 archives, use Template A. Categories 3, 5 and 10 use Template B. How sweet would that be? Everytime the user adds a category, they associate an archive template with it. My life would be awesome.

I know that TextPattern has something like this, but why doesn’t Movable Type?

What if I wanted to do a site that had nothing to do with publish date but relied solely on categorization for it’s architecture? I’d have to jump through some big hoops with MT to accomplish this, particularly if I wanted the app to build my navigation. Previous and Next entry within a specific category isn’t something that I can do very easily with MT, either. I believe this should also be core application functionality, particularly for large sites that have loads of categories.

The other major issue with categories being juiced would be having to not sweat plug-in breakage with every major upgrade. That the tutorial and methodology linked to above is dated 2003 speaks to the need for a hard look at categories and their functionality within MT. It’s not just the template per category issue, either. It goes deeper into the app. Let’s say I want to show lastn entries for a particular category on every page of my site. It won’t work without some major gymnastics. It shouldn’t be so hard.

Jay Allen, I was being cheeky in my earlier email. Chalk it up to too much eggnog and chocolate and Aunt Lola’s toffee. But categories, man. Categories. Kind of like in The Graduate where the guy says, “Plastics, Ben, Plastics.”

I’m now going to upgrade my cloak of invisibility to a level 30 and throw a 20-sided die to determine whether or not my gonads will remain attached or put in the freezer.

  • http://spankyourcat.blogspot.com/ christilee

    You are such a geek.

  • http://kasei.us/ Gregory Williams

    It could even go deeper than that. Basing content within an index template on the category of the post would be a useful, but requires jumping through some hoops at the moment. I know kottke does something like this for his site (movie reviews look different than weblog posts), but it would also be great in RSS 1.0 feeds where appropriate RDF terms could be used to describe category-appropriate content. However, this also brings up the issue of cramming various forms of data (weblog posts, movie reviews, links) into Movable Type’s static input fields (Body, Extended, Excerpt, Keywords).

    Anyway, this is all a rather round-about way of saying that I wholeheartedly agree.

  • http://www.nataliebuxton.com Natalie

    Well put. The categories in MT are seriously under-spec’d. In order to do what SHOULD be able to be done with categories, you have to use a third party plugin and read heaps of technical crap and pray it doesn’t break everything, or use another blog instead and include that blog in your main blog.

    Totally too much work for most people.

    MT is still the best weblogging app I’ve used (and I’ve used them all — commercially and privately) but it still has some major areas where it just doesn’t cut the mustard.

    Six Apart would do well to do a market research survey on their site for what existing MT users would like to see refined, developed or nixed.

  • http://www.sweetney.com sweetney

    hey, i know this is somewhat unrelated (and you’ve probably remarked about this before, but i have the attention span of a 13 year-old with ADHD), but what do ya’ll use to counter the rush of comment spam? i’ve had a ridiculous amount of it lately (free online poker! FREE ONLINE POKER!!!), and have resorted to comment moderation, which is lame. me no likey lame.

  • http://redefining.org di

    Jon, so by saying “This is what I was going to write to the MT Developer’s Network,” does this means you’re NOT going to send them your gripe about categories? Because I wholeheartedly agree with your reasoning. And you explained yourself eloquently.

    Do it! Send it! Get drunk and THEN send it! Whatever works to get you to send it.

    Sweetney, MT-Blacklist works for the most part. It’s not perfect but it helps.

  • http://symbioticfishes.blogspot.com fish

    Wow. That is a hot-button issue.

  • http://mamamusings.net Liz Lawley

    Bravo! I agree completely. Unlike the person who challenged you on the pronet list, I also think this is a core functionality issue–without it, categories are not nearly as helpful as they could be.

    Of course, the subcategory implementation in MT3.1 is problematic, as well, as is the handling of multiple authors. I’ve got mini-rants of my own coming on that topic…

  • http://www.donkeyontheedge.com/ Dug Falby

    Beautiful. I saw your exchange on ProNet. I have to say you’ve clearly expressed the frustration I’ve felt for ages. All MT sites I build use categories as site sections.

    The MT way of modelling content just doesn’t support non-blog-type-data. This is fine, unless you claim to be a powerfull abstracted CMS.

    One other point, once you’ve set your site up with categories as sections (about us, portolio, contact etc) what do you do about pagination? It would make sense that the section called “products” might need a way to accomodate 100’s of products while “contact” might just need room for a phone number. MT needs a server-side way to handle large categories.

    Anyway.

    This all reminds me of a series of bitchy fights on the old MGI list. It all boiled down to not particularly technical people squeezing functionality out of an app that was being asked to do more than it was originally designed for. Nothing wrong about a blog app that is brilliant at managing blogs and not much else, just don’t promise me the bloody moon with every upgrade:-(

  • http://thefathousewife.blogspot.com/ Kizzay Strizzay

    Wow.
    I am just going to admit that I didn’t really go past the first sentence in the second paragraph before I started seeing –shdcfkianvf ksdnvisdfvw-.
    I did read the last paragraph however.
    Big Plastic Watches. :0P

  • http://www.silverberry.org Lacy

    Great email — and I agree on all points. My entire site is in MT — about me, contact, and regular blog entries. I use categories extensively … but I ended up setting up additional blogs to handle some of my content. It was easier than using 14 plugins — and I got the result I wanted. It sure would be great to be able to say — hey all those entries in the static category? I just want those to show a single entry — and with this on the side. But the link ones — Just use the body as the link. Thanks MT. Instead — you have to go in hack a bit. Which is ok … but not ideal.

    I still love MT though … I think it’s the most customizable CMS out there. I love that I can output to any format I want. I love that it’s constantly being improved. I love that if I can’t figure out something on my own … I’m 99% sure I can go on the forums and be able to figure it out.

    But category specific templates would certainly my my glasses a bit more rose-colored.

  • tobyjoe

    Interesting post, J.
    I’ve been working for roughly 6 months on a personal publishing tool and the functionality you ask for is inherent to the system. There is a database table full of template pointers (paths), with a description, title, etc, for the admin tool to use in making it easy to keep up with various templates. There is another table that relates each category, subcategory, AND vernacular match (think keywords) to a template in the templates table. More importantly, you can have conditional template use for given content, enabling, say, multiple ways of displaying a given chunk of content depending on how a user accessed it.
    I’m finished with the design of the system and am moving into implementation, and choosing between PHP5, which is fairly ubiquitous AND which is the subject of a book I’m finishing this week, and Java, which is just BETTER, but less accessible to personal users (versus companies, which is a core audience for my software). It’s a tough call.

    Maybe you can chime in, or users here can. Would you switch hosts to a reputable Java (Tomcat) host in order to use a better tool? What if the hosting were to cost an extra $5–10 per month (as many Java hosts do)?

    One of the big obstacles for me will be building a method to import old MT data into my system. Hopefully once I open the source I can get some help on that :)

  • http://moxiemoron.diaryland.com Moxie

    I now know why your main user swoons when you talk shop. Having to code it all must be a bitch, but then just take it out in kind. Have her break out the hot rollers.

  • http://www.sugarpants.net Candice

    This basically sums up the major problem with MT (much as I love it so): Created by the design-minded rather than the programming-minded, so it’s just not as intuitive as it could be. But then, I’m not an expert on either, so perhaps I’m too judgmental when I get frustrated with the program. I’m just glad there are plenty of talented people willing to make some fantastic plugins for MT to bridge the gap.

    Am I making sense? Probably not. I’m still groggy today, and it’s nearly lunchtime.

  • http://humanwrites.blogspot.com Dr. Johnny Fever

    I’ll bet you have a really big watch.

  • http://www.jayallen.org/ Jay Allen

    Hey Jon, could you copy the ProNet list about this since the conversation started over there?

    You make some very valid points and put forth a lot of interesting ideas. I would point out that much of what you want can and should be done using CSS (i.e. using the category as the class for the body tag and then styling accordingly) but certainly even CSS has its limitations.

    Hoops do in fact exist for jumping.

    I think the most concise statement that can be made about this whole issue came from Natalie above:

    “The categories in MT are seriously under-spec’d. ”

    The implementation of categories is a bit long in the tooth. It was part of MT a LOOOOOOOOONG time ago and the only significant upgrade it’s has is the inclusion of subcategories. To be honest, my two pet peeves with categories is the lack of ability to do faceted categorization and the ability to filter by date AND category (i.e. 2004/12/CATEGORY and CATEGORY/2004/12) without serious hoop-jumping.

    I can promise you that you’ve been heard and that your criticisms have been received well. I like cheeky. :-)

    I can also tell you that this probably won’t happen for a little while though because we’ve got some other very big things up our sleeves for the immediate and mid-term future. But, we hear you…

    Thanks for taking the time to lay out your vision.

  • Brick

    Hmmm, what?

  • tobyjoe

    Jay — The CSS comment is valid if and only if you assume that all output should be viewed in a browser AND that semantic markup wouldn’t change based on context. As you essentially pointed out, templates aren’t about the presentation layer. The only question that pops up from that, though, is why you chose to speak about the presentation layer when the complaint is about templates :)

  • PKD

    I know there are thousands of folks who understand what you wrote, but I’m not one of them. All I can say is: I’m going to the Consumer Electronic Show next week and I get to see ALL the new gadgets.

  • tobyjoe

    Jay — that sounded a little bitchy. Sorry. I was typing with one hand while stuffing a bagel into my face.

    I’ll rephrase.

    Your CSS comment is spot on for presentation, but as we all know, you often have to “massage” your markup for certain layouts and such. More importantly, though, since templates *shouldn’t* be about presentation (if only browsers had ideal CSS support), I would assume that Jon’s gripe, as that of so many others, and even myself when deploying MT for friends, is more about the inherent lack of flexibility. For instance, I’m a big fan of XSLT and I’d only want to use a publishing tool that allowed me to use contextual XML templates to output given content.

    I’m not a MT user, but I’m a big fan and love how they have such a dedicated community. The software I’m writing is mostly to help meet the needs of commercial content publishers while providing free and easy usage to personal publishers who want to be able to break from the blog paradigm as MT has helped define it. Not because I think MT is bad or anything, but a good deal of my friends and clients are basically looking for publishing systems that allow for any number of datasources and presentation layers. They’ve sort of moved beyond (or perhaps just parallel) to what MT has to offer.

    From the source I’ve looked at, it should be fairly simple to create relational mappings of categories/subcats to templates, though.

  • http://rocksandgarbage.blogspot.com/ angela marie

    I understood the first two paragraphs and the last one.

    Good thing you’re good looking.

  • http://misskimberley.blogspot.com Kimberley H.

    Fuck sakes.
    I just about went cross-eyed reading that. I just learned HTML and that post makes me feel like I am a kindergardener who has been told to read Proust.

  • http://mihow.com mihow

    Should I be worried that this makes sense to me now? But didn’t a few years ago before I met TobyJoe?

    I’m not worried.

    Jon, you constantly spawn discussions over here in the Bourdeaux/Howley household. And for that, I must thank you. It’s nice when someone’s blog can have that effect on someone.

  • tobyjoe

    Well, to be fair, the discussions are spurred by Michele noticing you writing something about personal publishing and me spending all my time developing applicable software.

  • http://www.agirlandaboy.com Leah

    Freak out! Le geek? C’est chic!

  • http://www.blurbomat.com Amanda B.

    How big of a f’n dork am I? The only thing I got was the D&D reference.