Habari - Next Generation Blogging

28 05 2009

Habari. Spread the news.

Einige haben schon davon gehört, andere mal die Web­seite besucht, wenige haben ihren WordPress-​Boliden ange­wor­fen und dar­über berich­tet und eine ver­schwin­dend geringe Zahl an (deut­schen) Blog­gern hat Habári im Ein­satz. Die­ser Arti­kel wird wohl der erste einer gan­zen Reihe von Pos­tings über Habari wer­den: Es gibt viel zu berich­ten, Vor­züge zu nen­nen und zu zei­gen, warum Habári momen­tan wohl die fort­schritt­lichste Blogging-​/​CMS-​Plattform ist. Ande­rer­seits will ich nie­man­den über­zeu­gen oder andere Scripte schlecht reden… die Viel­falt der freien Soft­ware auf die­sem Sek­tor ist ein Segen und so soll es bleiben.

Back­ground

Once upon a time… gegen Ende des Jah­res 2006, ver­lie­ßen einige alt­ge­diente WordPress-​Entwickler das Team und leg­ten den Grund­stein für eine neue Blogging-​Software. Die Gründe warum sie Word­Press den Rücken kehr­ten sind viel­schich­tig und haben mit per­sön­li­chen Dif­fe­ren­zen gegen­über den Machern von Auto­mat­tic zu tun, mit der Ent­wick­lung die Word­Press nahm aber auch mit dem Wunsch eine neue, moderne Blogging-​Plattform zu kre­ie­ren, die den Ver­än­de­run­gen des Net­zes Rech­nung trägt. Ihnen gefiel z.B. nicht, dass die Ent­wick­lung der freien Soft­ware Word­Press mitt­ler­weile fast aus­schließ­lich in den Hän­den von Matt Mul­len­weg und sei­ner Firma Auto­mat­tic liegt und kaum noch in ech­ter Open-​Source-​Manier von einer Com­mu­nity betreut wird.

habari-logo.png
Ehe­ma­lige WordPress-​Entwickler star­te­ten das Pro­jekt Ende 2006.

Egal. Die Gründe Habari aus der Taufe zu heben sind nach knapp drei Jah­ren auch nicht mehr son­der­lich wich­tig. Obwohl… die Grün­dungs­vä­ter zu denen u.a. Owen »Ring­mas­ter« Wink­ler, Scott »Skippy« Merill, Michael C. Har­ris und Michael Hei­le­mann gehö­ren, legen bei Habari größ­ten Wert dar­auf, daß die kom­plette Com­mu­nity am Pro­jekt betei­ligt ist und bleibt. Wer also Ahnung von PHP, SQL und objekt-​orientierter Pro­gram­mie­rung hat, kann direkt mit­ent­wi­ckeln. Oder sich anders ein­brin­gen: mit Über­set­zun­gen, Hilfe bei der Projekt-​Homepage, dem Schrei­ben von Plugins usw. Die Gemein­schaft ist der Motor und zumin­dest bis­lang ste­hen dahin­ter keine mone­tä­ren oder andere Interessen.

Vor­aus­set­zun­gen

Der zweite und wich­ti­gere Grund, warum Habari völ­lig from scratch star­tete, sind die Mög­lich­kei­ten die sich dadurch bie­ten. Man konnte ohne auf Abwärts­kom­pa­ti­bi­li­tät zu ach­ten, auf aktu­elle Soft­ware set­zen, neu­este Pro­gram­mier­tech­ni­ken ver­wen­den und Erfah­run­gen im Kampf gegen Spam ein­brin­gen. Das Pro­blem älte­rer Blog-​Scripte ist heute, daß sie zu einer Zeit ent­wi­ckelt wur­den, als PHP 3 oder 4 und MySQL 3 aktu­ell waren. Objekt-​orientierte Pro­gram­mie­rung wurde damals sel­ten bis gar nicht ver­wen­det. Deut­lich wird dies am Bei­spiel von Word­Press: Bis heute sind Frag­mente des Vor­läu­fers b2/​cafelog vor­han­den, der Code ist im Laufe der Jahre auf­ge­bläht und Kom­pa­ti­bi­li­tät zu frü­he­ren Ver­sio­nen schränkt zumin­dest die kon­se­quente Nut­zung moder­ner Stan­dards ein.

Habari blickt nicht zurück und nutzt die Mög­lich­kei­ten der Zeit. Ein Blick auf die Sys­tem­an­for­de­run­gen macht dies deutlich:

Das klingt schlim­mer als es ist. Gute Web­hos­ter wie all-​inkl, Host Europe usw. bie­ten das sowieso und auch sonst ist PHP 5 heute Stan­dard. Bei Schnäppchen-​Hostern könnte es u.U. Pro­bleme mit dem Zugriff auf mod_​rewrite geben. Im Habari-​Wiki gibt es einen Requirements-​Checker, ein­fach auf den Webs­pace laden und aufrufen.

Vor­sprung durch Technik

Habari unter­stützt ver­schie­dene Daten­ban­ken. Momen­tan MySQL, SQLite, Post­greSQL.

Einer der größ­ten Unter­schiede zu den bekann­ten Blog-​Systemen ist die Nut­zung von PDOs. Durch die völ­lige Abstra­hie­rung des Daten­bank­zu­griffs, kann Habari quasi mit jeder mög­li­chen Daten­bank betrie­ben wer­den. Momen­tan exis­tie­ren Klas­sen für die Unter­stüt­zung von MySQL, SQLite und Post­greSQL. Ins­be­son­dere die SQLite-​Unterstützung ist für Blog­ger mit einer durch­schnitt­li­chen Inhalts­menge sehr inter­es­sant, da SQLite nur eine Datei benö­tigt, die direkt auf dem Webs­pace lie­gen kann. Eine echte Daten­bank ist in dem Fall nicht not­wen­dig. Durch soge­nannte pre­pa­red state­ments wer­den wirk­sam SQL–Injec­tions verhindert.

Auf Grund des modu­la­ren Auf­baus und der Objekt-​Orientierung läßt sich Habari ein­fach und belie­big aus­bauen (Stich­wort: class und extends). Auf diese Weise las­sen sich ohne Auf­wand Plugins schrei­ben, Theme-​Funktionen erwei­tern oder hin­zu­fü­gen und die Core-​Dateien blei­ben davon unbe­rührt. Glei­ches gilt für die soge­nann­ten Media-​Silos. Silos gewähr­leis­ten einen direk­ten Zugriff auf Medien-​Dateien, wie z.B. Flickr, Vidd­ler und eigene Dateien auf dem Webs­pace. Wei­tere sind ein­fach hinzuzufügen.

habari-flickr-edit-entry-500.jpg

Auch ein Schman­kerl: Mit einer Habari-​Installation las­sen sich meh­rere Weblogs/​-​seiten auf ver­schie­de­nen Domains gleich­zei­tig betrei­ben. Ein Unter­ord­ner im User-​Verzeichnis und das wars schon im Wesentlichen.

Auch die Ent­wick­lung von The­mes geht leicht von der Hand. Habari arbei­tet dies­be­züg­lich mit rei­nen PHP–Dateien (ähn­lich wie Word­Press). Ich bevor­zuge diese Vari­ante deut­lich gegen­über ande­ren Mög­lich­kei­ten wie Smarty (Seren­di­pity), Tags (Expres­sion Engine) oder gar der Spei­che­rung des Tem­pla­tes in der Daten­bank (Text­Pat­tern). So hat man die größte und direk­teste Kon­trolle über den Out­put. Es gibt bereits etli­che fer­tige The­mes und selbst­re­dend auch ein Ver­zeich­nis mit sinn­vol­len Plugins.

In Habari gibt es Ein­träge und Sei­ten, aber auch völ­lig andere Inhalt­s­ty­pen sind möglich.

Natür­lich wurde auch an die – heute unum­gäng­li­chen – CMS–Funk­tio­nen gedacht: neben klas­si­schen Blog­ein­trä­gen, kön­nen pages erstellt und sta­ti­sche Front­sei­ten ver­wen­det wer­den. Habari geht jedoch wei­ter und legt sich nicht auf diese bei­den Inhalts-​Arten fest. Der Anwen­der kann mit ent­spre­chen­dem Know-​How oder unter Nut­zung beste­hen­der Plugins eigene content-​types defi­nie­ren, erstel­len und ver­wal­ten. So gibt es bereits einen PodCast-​Content-​Type, einen für Link-​Blogs, aber auch Dinge wie ein Pho­to­blog sind damit zu rea­li­sie­ren. Gerade hier steckt gro­ßes Poten­tial in Habari.

Und schließ­lich (nicht als abschlie­ßend gemeint) gibt es Import-​Plugins für Word­Press und Seren­di­pity. Wer fängt schon gern bei Null an. ;-)

Con­clu­sio

So weit ein ers­ter Über­blick. Bedenkt man, daß die Platt­form die­ser Tage in Ver­sion 0.6.2 erschien und somit noch vie­les im Fluß ist, muß man vor den Ent­wick­lern den Hut zie­hen. Die Soft­ware ist sta­bil, pro­duk­ti­ons­taug­lich und die Ent­wick­lung schrei­tet rasant voran. Ich kann jedem Inter­es­sier­ten nur emp­feh­len, sich die neu­este Ver­sion in die Sand­box zu legen und aus­gie­big zu tes­ten, es macht regel­recht Spaß. Da alle Infor­ma­tio­nen zu Habari den Rah­men eines Arti­kels gesprengt hät­ten, fol­gen hier in Kürze wei­tere Ein­träge zum Thema. Dann wer­den Schwer­punkte wie die Instal­la­tion, das Admin-​Interface (»Mono­lith«, ein Meis­ter­werk von Michael Hei­le­mann!), Plugins und The­mes näher beleuchtet.