owen

The last five days have seemed both like an eternity and an eye blink, all over a word - Habari - that many people are just recently becoming aware of.

Maybe you first noticed when Chris J. Davis switched his blogging software away from WordPress. After that, dominos started falling, with posts about it from interesting corners of meta-blogdom. It’s really been hard to keep up with the influx of interested people and do development and have a life. Thanks so much to Berta for her support during this process, which is undoubtly greatly attributed to her being tired of hearing me complain about WordPress.

So what’s the big deal, anyway? Maybe people have said they’re interested, but without actually dipping into the small-but-growing community and asking around, it might be hard to get a sense of what any of this really means. Let me cover a few of the common questions and misunderstandings surrounding Habari.

What is Habari?
Habari is a new blogging platform named with a swahili word meaning “News” or colloquially, “What’s up?”. It is installed on a server of your own, not a blogging service, like Blogger. Habari aims to be a fully functional blogging tool. With Habari, a blogger can do anything they can with the most common blogging tools that are available - draft posts, publish drafts, receive and moderate comments, the sort of thing that blog software does.

Why not use {some other blogging tool}?
There are different reasons for using different tools as each has its strengths. I hope that time proves out Habari’s choice to focus on community involvement in every step - planning, design, implementation, distribution, through support. Habari has also chosen to focus on modern technology and coding techniques that legacy systems are not as easily able to integrate.

Why develop another blogging tool?
Everyone in the project has his own reasons for wanting to start fresh rather than contribute to another project or fork something extant, and any reason is really going to be personal. For me, the big reasons are an opportunity to help shape the direction of the project, to build something truly new and inventive, and - especially - to share the experience with people who have these same interests.

Who is associated to this project?
Well, we’ve had a few people join up with the cause since skippy, Rich Bowen, Chris J Davis and I conceived it back during OhioLinux. We knew that our coder skills would need some help if we were ever going to get a pretty UI design. Khaled Abou Alfa offered up his time in response to our call, and dropped off some crazy wonderful UI designs. After seeing what the project was all about, Michael Heilemann decided he was in, too.

Robert Deaton, who I practically dragged to the New York WordPress meetup with the intention of chatting up Habari, has provided a ton of great PHP insight from very early on. Jay Pipes has been great at pounding against our stubborn WP-isms (since that’s where most of us come from) and getting us to consider some code that will really blow your mind when we finally release.

There are four published book authors in our core group. That statistic blows my mind.

I’m missing people who I don’t know if I should name specifically, but who have provided code and design reviews all along the way. And I’m really lax in recognizing the folks who have come by our IRC channel on freenode over the past few days and - for whaveter reason posessed them - actually started to help and contribute code, documentation, testing, and enthusiastic moral support. I knew that people would want what we’re trying to build, but the turnout from even our unprepared unofficial announcement has amazed me.

So what is special about Habari?
There are a few things that you’ll notice about Habari the software apart from the decidedly inviting atmosphere in which we all work. Predominantly, we’re using all of this year’s tools. PHP 5 instead of PHP 4. MySQL 4 (or 5, still thinking about that) instead of 3. We use a complete object-oriented approach to our code that makes it very easy to experiment; tossing new things to the wall and see if they stick. The PHP Data Objects that ships with PHP 5 enables us to ditch some of the SQL injection issues that have plagued blog tools in the past, and affects performance very positively. (Using imports of our blogs with 2-3k posts and their comments, pre-alpha Habari data access was visibly perceptible as faster.)

The plugin system is top-notch: simple and flexible, written using objects that are very easy to learn. Habari does most of the work for you by registering your plugin hooks, and providing a special home in the interface for your plugin to interact with the admin pages for configuration. The theme system is similarly flexible.

Instead of settling on a single type of template, our template engine is pluggable. You should be able to create a theme using PHP functions (like WordPress does), or the popular Smarty engine, or an engine of another design. Themes will decide what features they offer, either by using a default set of templates (providing a set of template files for each type of page that the engine will display) or by telling the theme engine what pages are available - allowing you to easily add templates with special features at the URL of your choosing.

It sounds complicated, but in the few short days Habari has been in the open, I’ve seen both a new, working theme, and the Habari engine turned into something like pastebin. Note that this was constructed without anything but the sample code and the inline documentation, and in about a day. It just kind of showed up one day with a couple of guys saying, “Look what I did!”

Spam-handling is not an afterthought in the core product. While we continue to hack away at Habari, comment spammers are bringing some servers to their knees. When MT and WP were in core development, spam didn’t exist. Having helped pioneer comment spam detection on WordPress (the original Spam Karma plugin was based on my spam-prevention plugin design), I know how difficult it was to shoehorn detection and moderation into the plugin architecture. As a result of the experience everyone has gained over the years of fighting spam, we realize the importance of making it easy for Habari to fight spam.

As a testament to this, Chris Davis showed me his Akismet plugin for Habari (hey, it’s GPL! see below) tonight, and it seems to work just fine (and may be released on his site in a few days). If this development can happen that fast, I have full faith that an open source, peer-to-peer, distributed anti-spam solution that handles spam as well as Akismet will eventually find it’s way to a Habari plugin.

Our documentation is going to be edited and ship with the software. If our site goes down, your documentation doesn’t. Even with the bundled help, we still plan for a full community site with extra detailed help and user interaction for people who need more. And since we require documentation be submitted with source code updates, all of the developer documentation is written by actual developers that understand the code, and it instantly exists.

I’m glossing over a lot. There is too much very cool stuff to cover in this short of a space. Did I mention database independence with MySQL, SQLite, and Postgres as targets? Atom Publishing Protocol support?

Of course much of this is unimplemented functionality. But it is planned functionality. And a lot of it already does exist. We’ve figured out how we’re going to do it over the past few months, and now it’s just a matter of doing it.

But the next time you ask me what’s special about Habari, I’ll be sure only to mention the people. Because they just freakin’ rock.

I’ve heard you’re not using the GPL, does that mean Habari is not open source?
Habari uses a slightly modified Apache Software License. The Apache Software License (ASL) allows us to distribute our source and make sure everyone who helped out gets credit for it. If you contribute to Habari, you’re agreeing to those terms. Apart from that, and that’s not really a downside, where is the downside?

With the GPL, if you release your code as GPL, anyone who modifies your code is required to distribute that code under the same license, and the license requires them to pass on both the license and the source. In fact, some have suggested that plugins authored for GPL blogging tools are also tainted by the GPL in that they use that blogging tool’s library functions. This means that you are permitted to sell your WordPress plugin, but when you do, the person who buys it can then re-sell it for less money, or even give it away for free! I guess there’s a business model there – sell your first copy for big dollars.

People who argue against the ASL say that if you can sell the code that’s ASL-licensed, then the freely available source of plugins and themes will dry up. People who argue against the ASL say that we’ll lose the ability to use wonderful GPL-licensed code in our project. I don’t know how the community will respond to those statements. I wonder idly who benefits more from which license, and whether people realize that GPL plugins to an ASL core are just as valid and possibly more flexible than using a GPL core.

I know that our intent is to keep Habari free and open, and also to be fair with our own use of other projects with the same license, just like open source intended. If people think they can make money by selling Habari add-on tools, that’s great - it means Habari is doing as well as I hope it will.

Isn’t the high-tech requirement a bit steep for the common blogger?
Last year I started putting my Adsense money to good use, buying cheap hosting at a ton of hosting sites to see if you actually get what you pay for. That plan… It kind of fizzled. But as a result, I’ve got a few hosting plans at a few popular hosts and suddenly a good reason to do some “common man” testing.

As it turns out, Dreamhost, Site5, MediaTemple, and A Small Orange will all support Habari, with a single config line change. If your host isn’t on this short list, your host might even still be able to run Habari. The thought that PHP5 is not widespread enough to be mainstream is, well… about as old as PHP4.

What’s with the bells?
You might hve seen some bells in our various logo revisions. Here’s the idea: Habari is the swahili word for news. When one thinks of news, they might think of a town crier, which is a very primitive form of podcasting. A town crier often has a bell.

One of the first logos we had was one I cooked up that is basically kind of trying to be a lowercase “h” in a sort of bell shape with a clapper. You can see it carved into a pumpkin.

Aren’t you just another WP contributor who is angry about being passed over for inclusion in Automattic, and so you’ve gotten together to form a new blog package out of spite, but just like b2evolution, TextPattern, and other WordPress-knockoffs it’ll never get off the ground?
Oddly, I’ve seen this question twice this week, and I suppose that even more people are thinking it.

Yes I am a WP contributor, and I continue to be. I organize the world’s largest regular WordPress meetup, and that won’t stop just because of Habari. I continue to use WordPress professionally, so I don’t really see what sense there is having “bad blood” between these projects. I certainly don’t have any bad feelings because nobody ever asked me to work for Automattic. I love my job and the people I work with, and I’m pretty comfortable right where I am, as is everyone else on the Habari team whose job I know of.

As far as whether Habari gets off the ground, well… From the interest so far, I’d say we have a pretty good chance. Those other projects mentioned do have fairly decent sized followings of their own (the size of any of those groups for Habari would make me plenty happy), and remember that WordPress was once good ole b2|cafelog. Being that the project is three months old and is hundreds of lines long, it is now much more mature than what this question implies.

How did all this start?
This is about as good a recount of the Habari conception story as you can get without Memorex. And the reason I was at OhioLinux? Skippy suckered me out there with the promise of beer, only to fill my head with ideas of new projects and collaboration. I was seduced by the spinning, plexiglass-encased bust of Pope John Paul on the giant lazy susan table at Columbus’ Buca de Beppo, and I somehow agreed to the whole thing. But there was beer. And live, nude penguins.

When will it be ready for me to try?
It’s going to be ready for me to try very soon, just as it was ready for Chris. I need to sort out some feed details to make sure certain things don’t break, and then it’s import/switch to the new theme.

You can try it now, too. Go to the project site, check out the code with subversion (we’re not even at a developer preview state yet, so there’s no archive you can download) to a server that meets the requirements, and watch it run.

If you have a WordPress database around, you can run the importer to test out Habari with all your posts. Stop by the #habari channel on irc.freenode.net and tell use about your experience. Join the mailing list, read up, and send in your comments.

“Spread the News” - that’s our slogan about what you do with . Be a participant. You’ll enjoy it.

Thanks to these sites, who talked about Habari early on:
h0bbel
Blogging Pro
Yellow Swordfish
Photomatt
wank
Solo Technology