Dan asks:

what's up with it being HTML 4.01 Transitional//EN in the only template that comes in the zip? i was just perusing the code and that caught my eye because of the supposed concentration on new technologies and best practices... what gives?

Dan, talk about walking into a minefield. I will try to distill more than a hundred messages used to come to a decision on this topic into a concise reply to your query.

In order to serve correct XHTML, the server must not only serve correct markup, but a correct content-type. If the content type is not an XML type (what is supposed to be used with XHTML, since it is XML) then the browser will interpret the XHTML code as poorly-formed HTML.

What really happens when you receive XHTML markup with a text/html content type (this is how WordPress serves pages, for the most part) is your browser ignores all of the extra characters and invalid non-HTML markup that is part of the XHTML. That it does this is a blessing for you, because otherwise your beautiful but improperly served XHTML code would render like garbage. A byproduct of browsers having to deal with sloppy HTML code over the years is that they are used to taking garbage-like XHTML and making it look nice in spite of itself.

Serving XHTML with a text/html content-type rather than a valid XML content type (application/xhtml+xml seems correct) is allowed by the W3C spec, but it causes the browser to render the XHTML as if it's HTML. So why didn't you code it as HTML in the first place, which is less likely for the browser to misinterpret when using the text/html content type?

Serving with a correct content type is possible, but it requires that your markup is XML-valid. There is so much user-provided content on a blog that would need to be filtered to make it XML-valid that doing so is prohibitive. Note that a single incorrectly placed tag or un-encoded element (remember, XML doesn't have all of the entities that HTML does!) would cause your entire page, and possibly your entire site, not to render in teh browser -- at all.

After consulting with experts in markup and standards who made recommendations to us not to use XHTML because it's mostly a broken standard, we decided that HTML works, it does what we want, and we can serve pages with it that validate. Compared to invalidly serving XHTML markup as text/html content, we would rather serve valid content for what content type we specify. Compared to attempting to assure that all themes, posts, and comments were valid XML before they are served by converting them somehow, we would rather focus on a standard that is well-traveled and has a future with WHATWG and HTML5.

That said, it is entirely possible to create and serve valid XHTML pages with any content type you like, valid, semi-valid, or invalid, from Habari. However, there are no tools in Habari for validating your output as XML before output, so if you screw it up, it's on you. The only place you will continue to find HTML even if you change your public site's content type is in Habari's admin.

A proper blogging tool that outputs true XHTML would have an XML parser/validator and force you to add new content nodes to a DOM before output. It's simply not practical to expect that concatenated strings will always result in valid XHTML, given the abundance of user-supplied content on a blog.

The end of September is going to be an interesting time. I had been planning to go to Ohio again this year for Ohio LinuxFest since I went last year. It was at this event that Habari was born, when I first met Chris and Rich in person, and got to tour Columbus with veteran tour guide, Skippy. It's exciting to get together with these guys again after a year has passed to support Linux, Open Source, and Habari.

So I was looking online, remembering BlogPhiladelphia and the experience there. I remembered that BlogOrlando was happening very soon, and noticed that it's the day before LinuxFest. On a lark I created a trip itinerary in Expedia to fly out of Philly for Orlando, then go directly, from Orlando to Columbus, then come home. The price of the ticket (all legs of the journey with only one layover in DC on the way to Ohio) was a mere $243!! Considering that it would take me 9 hours to drive from here to Columbus, and then I'd do it again on the way back, I'd be spending a good percentage of that in gas alone. If I flew, I'd ditch the driving and get to spend that day in Florida with friends and bloggers. No brainer?

So I booked the trip. I'm not going to be around for Thursday dinner or Saturday EPCOT (!), but I'll be there for most of the unconference, handing out what bit of Habari swag I can reasonably stuff into my carry-on. And then on Saturday - the big day - we have a table at OLF for Habari where we'll be asking questions about what people want in their blog software and providing demos. It should be a grand time.

Skippy has generously offered to pick me up from the airport and lodge me for the Ohio trip, which is great. I'm looking forward to meeting Sean and Michael while I'm on the road, but if you're at either of these events, keep an eye out for me and say "hi"!

Steps to enter the contest

  1. Go to the PacktPub contest site.
  2. Use "Habari" as the CMS name.
  3. Use http://habariproject.org as the site.
  4. Add your name and email.
  5. Submit the form!

Apart from the contest that the Viddler folks have going on where you can win an iPhone by posting a MealToday video, there's another contest where you can win an iPod simply by filling out a simple form.

Packt Publishing - a publisher of fine technical books, several of which I own - is sponsoring a contest between Content Management Systems, where simply nominating a CMS enters you to win an iPod!

As you may know, I am one of many developers who write code for Habari, a project that is almost a year old and about which we're all very passionate. I would suggest that you nominate Habari for their prize as the "Most Promising Open Source Content Management System".

It is a category only open to CMSes that have been first released in the last two years, leaving out the more obvious contenders. If Habari wins the prize, we'll be most happy about the prestige, but the cash prize could really offset server costs, fund 3rd-party security auditing, or otherwise benefit the community.

Of course, it's a bit skeezy for me to just say "you can win an iPod" to get you to endorse Habari. Perhaps I should give you a few reasons why I think Habari is the most promising open source content management system, and is deserving of the reward?

The number one thing that Habari has going for it is the people. The group of folks who are working on Habari are easily the best group of folks I've collaborated with. We've got experts on our team, people who know design, code, and the architecture on which our software runs. The people who help outside of code production are fantastic too. Our documentation team is forming up quite nicely, and thanks to them, with our latest release we've distributed the beginnings of the manual that we've been demanding from day one. The support in the community is alive and encouraging, and there's nothing but excitement about what Habari brings to content management.

Habari is promising because it is future-thinking. We've made a commitment to using the cutting edge of technology. No more PHP4, it's just PHP5 for us. This mean that as the technology trickles down to the common man, we'll have been well-established there while others are just trying to gain the advantage of that new technology.

Open source is a big part of what we do with Habari. One of the neat things about Habari is the Apache Software License that we use. I find that it's less restrictive than the GPL for a developer, really giving you power over how you want to use the software. Because we employ the ASL, we've had to write many of our components from scratch because the preexisting ones that people are familiar with are only licensed for GPL. As a result, other ASL or BSD-licensed software benefits from these libraries being available for use. We're not just expanding our source, but we're helping the open source community to build stronger applications.

The Habari project has a lot of great ideas for how to move forward with blogging. As our platform matures, you're going to see some great new features evolve from our code that hopefully other blogging platforms will employ. You can already see how some of our ideas and ideals have affected other blogging software.

I've provided what I think are a few good reasons for you to nominate Habari as the most promising open source content management system. Even if you don't use Habari, you can still see that Habari is a promising platform worthy of the award. If my reasons themselves aren't enough, then I suggest you try out Habari or learn more about our community by visiting the site. Barring that, just vote for us so that you can win an iPod.

Hey, it's not beneath me to suggest it for something that I think is deserving.

Have you heard about Habari? If you're a regular reader here, then of course you have. What you might not know is that Habari development is not dead.

It's weird how a summer can bring a natural stall to the activities usually relegated to the development spawned by countless hours of hibernating indoors. To outside appearances, it might not look like a lot is going on with Habari. Even though commits continue to trickle in, but it's not the full-blown force that it was six months ago. I'll assure you now that the project is still quite alive, and that we've even got release news to back that up.

Today we released version 0.2 for developers. This is another release that is meant to be a review for people that want to be ready to develop for Habari when the 1.0 version is released, or want to start shaping the software early on. You can run it on a live site if you're daring (I do here), but I wouldn't go as far as to recommend it. So, what all have we been doing in Habari, then? I'll tell you.

Of course, you can learn a bit about the new release at the main web site, and Skippy writes a lot about what new things we've added since our last distribution. But there's so much new stuff. We've also added cascading templates, so that you can build a theme for displaying your content that can be as simple as a single template for everything to specific as a separate template for each post. We added hooks to augment our Atom feeds via plugin. The plugin page itself has been improved so that every plugin has a dedicated page to house its own form controls. Rewrite rules have been much overhauled to vast improvement in flexibility. The interactive manual, although small for now, is included in the download.

The list of new stuff goes so far beyond what we've all listed that I'm even shocked to see all of the work we've done since the last release. Why didn't we release something earlier?

We've had a lot of great help getting this release out over the past few months, but recently Chris and Skippy drew the 0.2 release finish line and started hauling toward it. Michael has put a good bit of work transferring wiki entries into the TiddlyWiki format that Khaled originally presented to use for our manual. Sean has been posting weekly summaries of our mailing list, and wrote our announcement post on the Habari Project site. And I need to thank all of the coders who spent the last few months cranking out the software both in supplying code and submitting bugs and ideas.

But the question I really want to ask now is, What's next?

What I've been working on personally for the past few weeks is a new design for the Habari Project site itself. I hope to get the design online this weekend sometime, but these goals have been slipping for a while with work occupying time. It's not just the graphical design of the site, but a new thematic purpose for a community site based around the software. I'll probably have to elaborate on that idea when it's done.

As for the code, plans are already in the works for the new access control system. We've discussed the ideas of communication between sites, and are hyped to build Pingback support on top of our brand new ASL-licensed XMLRPC layer. The admin design should continue aggressively for version 0.3, building on the great start we already have.

Personally, I'd like to grab the media API, wrestle it to the ground, and tie it off. I've got big plans for that, and I'm anxious to make it all work with our friends from Viddler. (Chris and I have already decided to use Viddler for screencasts on the HP.o site blog when it relaunches.)

It's exciting times for our project, as we roll around to our one year anniversary. Many of us are gathering in Columbus for Ohio LinuxFest at the end of September, which should be a great event in itself. Meeting with the Habari folks again will be a great bonus.

I hope you are looking forward to participating in the future of Habari like we are!

There is so much stuff going on, I'm not even sure where to begin.

If you missed it, yesterday's April Fools Day activities went off quite well. Thanks a bunch to skippy, moeffju, and chrisjdavis for helping out and playing along.

Also, I'd like to apologize to all the WordPress users who found the ForkPress link on their Dashboards yesterday. I was really tired when I entered the post, and I hadn't intended to tag it "WordPress" when I was scanning through the text. I hope it was entertaining just the same.

Obviously, part of the plan is to use ForkPress as a jumping point to announce the Habari DR release. We've gotten the code wrapped up to a point where we'd like to have some other developers see what we've done so far. We want people to start playing with Habari, see what it can do and what it lacks, and continue to make the software better. All of the sites in yesterday's joke were running Habari, and we did production and setup of all three entirely on Saturday. Most of the work was getting the logos and photos together - Habari installation was a snap, as expected.

This release isn't for production use (although you are reading a Habari install in production currently), but it is the first release available to users outside of source control. That is, you can download it as a zip or tgz file.

Oh, and there's more on my plate after this weekend's shuffling the software out the door and getting the AFD stuff online...

I'm going to Los Angeles tomorrow for work. I'll be in town all week. I don't know what my free time is like, and I don't have a car. I don't know what that means. Are there people in L.A. who want to chat about Habari? I hope I can escape the $work$ for a few hours here and there, though I expect they'll be locking me in a closet with my notebook the whole time I'm there.

So I'll be away from home until Saturday. Easter is Sunday - there's much family planning there. And then on Monday, Berta leaves for Atlanta and her $work$ for a few days, leaving me alone at home with the kids.

I shouldn't report being alone with the kids on this blog because then people might get wise and send over social services. Popcorn for lunch! Pizza for every other meal! Bed time at 3am!

Berta's birthday is Wednesday. I have no idea what to do about that.

And I guess that's all I can talk about for now. Hopefully have more stories for you from LA. I hope the hotel has wifi, or it's dialup via bluetooth via cell for me.