[[Introduction]]\n[[FAQ]]\n
''What does "habari" mean?''\n"Habari" is a Swahili word that means "what's the news?" It's similar to the English "What's up?" or the Spanish "��Qu�� pasa?" The typical response is "mzuri sana", which means "very good."\n\n''What are the system requirements?''\nHabari is a modern solution for blogging, and requires modern software. To successfully use Habari, you will need:\n#a web server ([http://httpd.apache.org/ Apache] and [http://www.lighttpd.net/ lighttpd] tested so far)\n#PHP version 5 or above. Habari *will not* work with PHP 4.\n#[http://www.php.net/pdo PHP Data Objects] support\n#A database. [http://www.mysql.com/ MySQL] and [http://www.sqlite.org/ SQLite] tested, [http://www.postgresql.org/ PostgreSQL] coming soon.\n\nHabari has been successfully tested on Etch, the soon-to-be-released next stable version of [http://www.debian.org/ Debian].\n\nHabari has been successfully tested on \n#[[Dreamhost | http://dreamhost.com]]\n#[[Site5 | http://www.site5.com/ ]]\n#[[(mt) Media Temple - (gs) Grid-Server | http://www.mediatemple.net/webhosting/gs/ ]]\n#[[A Small Orange (servers Claire, Epsilon, Libby, Nu, Pickett) | http://www.asmallorange.com/ ]] \n#[[Celeonet | http://www.celeonet.fr ]]\n#[[1and1 France | http://www.1and1.fr ]]\n\n''How is this different from the eleventy billion other blog packages?''\nIt's true that there are tons of blogging software solutions from which to choose. Each has their place, and their legion of ardent followers.\n\nHabari is being written with a firm understanding of the current state of blogging. Most other blogging packages have been around long enough that their responses to things like comment spam and Digg site overloads are bolted on after the fact; whereas Habari is being written from the beginning to take these things -- and more -- into account.\n\nHabari strongly favors open, standard, and documented protocols. Atom, being both open and documented, is the prefered syndication format, and the Atom Publishing Protocol is the prefered means of remote communication with your site. This is a core feature, and not a plugin.\n\nHabari is being written specifically for modern web hosting environments, and uses modern object-oriented programming techniques. Using these recent but well-established additions to the PHP language allows Habari to make use of PDO, enabling prepared statements for all interactions with the database. This greatly reduces the system's vulnerability to SQL injection attacks. This is just one of many benefits of modern object-oriented techniques.\n\nThose are just a few of the technical differences, but a major component of what makes Habari different is its community participation model. Users who demonstrate a consistent level of quality contributions to the project are granted more privileges within the project.\n\n''Why not fork an existing project?''\nNone of the packages we've tried have really satisfied us, so in the fine tradition of open source software we're trying to scratch our own itch. \n\nTo be sure, there's a lot that many blog packages do right, and we'd be foolish to re-invent the wheel simply to be different. But many existing blog packages have made fundamental decisions that limit what can be done, or how, with the system. Rather than try to work around those limitations, or try to remove what's broken, we'd prefer to start fresh and import those ideas that are good.\n\n''How is Habari licensed?''\nHabari uses a modified version of the Apache License (http://www.apache.org/licenses/LICENSE-2.0). For those unfamiliar with this license, the [http://www.apache.org/foundation/licence-FAQ.html Apache License FAQ page] should answer most of your questions.\n\nDevelopers contributing to the Habari project itself should note that, unless explicitly stated otherwise, any contribution intentionally submitted for inclusion shall be under the terms and conditions of the Habari license, without any additional terms or conditions. However, plugins and themes designed to work with Habari are not required to have the same license as Habari itself.\n\nYou can find our license included in the source, and [http://habari.googlecode.com/svn/trunk/LICENSE in our code repository].\n\n''How can I help?''\n#Open new issues here describing problems you experience, or to request new features.\n#Join the Google Group(s) in which you have the most interest, and start sharing!\n#The habari-users group is for end user support, and general discussion.\n#The habari-dev group is for nitty-gritty implementation discussions of the code, database schemas, and the like.\n#The habari-svn group is a way to track the development activity of the source code. You can review the commit logs, and monitor changes as they occur.\n#The habari-issues group is a way to follow by email the Issue Tracker here at Google Code.\n\n''How do I add my code changes to the project?''\n\nIf you would like to work on a feature or bug fix, there is a best practice for getting your changes into the process.\n\nRegardless of the type of fix/change, first create an issue in the issue tracker describing your proposed change. Allowing the group to review your proposal could save you the time of implementing something that is being done as part of a larger task, and could gain you the insight or help of other people who are interested in what you're doing.\n\nAs you prepare your changes, ask for review on the development mailing list as often as you need it.\n\nWhen your changes are complete, file code changes as a diff in the issue that you're tracking, and attach any associated files. Be sure to mention how the files are to be applied if there are any special considerations. Your issue will be reviewed, and if suitable, will be applied in the code repository.\n
Like most wikis, TiddlyWiki supports a range of simplified character formatting:\n| !To get | !Type this |h\n| ''Bold'' | {{{''Bold''}}} |\n| --Strikethrough-- | {{{--Strikethrough--}}} |\n| __Underline__ | {{{__Underline__}}} (that's two underline characters) |\n| //Italic// | {{{//Italic//}}} |\n| Superscript: 2^^3^^=8 | {{{2^^3^^=8}}} |\n| Subscript: a~~ij~~ = -a~~ji~~ | {{{a~~ij~~ = -a~~ji~~}}} |\n| @@highlight@@ | {{{@@highlight@@}}} |\n<<<\nThe highlight can also accept CSS syntax to directly style the text:\n@@color:green;green coloured@@\n@@background-color:#ff0000;color:#ffffff;red coloured@@\n@@text-shadow:black 3px 3px 8px;font-size:18pt;display:block;margin:1em 1em 1em 1em;border:1px solid black;Access any CSS style@@\n<<<\n\n//For backwards compatibility, the following highlight syntax is also accepted://\n{{{\n@@bgcolor(#ff0000):color(#ffffff):red coloured@@\n}}}\n@@bgcolor(#ff0000):color(#ffffff):red coloured@@
[[Introduction]]\n[[Design Philosophy]]\n[[FAQ]]\n
<!--{{{-->\n\n<div id='topMenu' refresh='content' tiddler='MainMenu'></div>\n<div id='sidebar'>\n<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>\n<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>\n</div>\n<div id='displayArea'>\n<div id='messageArea'></div>\n<div id='tiddlerDisplay'></div>\n</div>\n<!--}}}-->
Khaled Abou Alfa
| User Manual
Habari
/*{{{*/\n/*Blackicity Theme for TiddlyWiki*/\n/*Design and CSS by Saq Imtiaz*/\n/*Version 1.0*/\n/*}}}*/\n/*{{{*/\nbody{ font-family: "Neue Helvetica", Helvetica, "Lucida Grande", Verdana, sans-serif;\n background-color: #fff;\n color: #333;}\n\n#topMenu {position:relative; background:#282826; padding:10px; color:#fff;font-family:'Lucida Grande', Verdana, Sans-Serif;}\n#topMenu br {display:none;}\n\n#topMenu a{ color: #999;\n padding: 0px 8px 0px 8px;\n border-right: 1px solid #444;}\n#topMenu a:hover {color:#fff; background:transparent;}\n\n#displayArea {margin-left:1em; margin-bottom:2em; margin-top:0.5em;}\n\n\na, a:hover{\ncolor:#1398CA;\ntext-decoration: none; background:transparent; \n}\n\n.viewer a, .viewer a:hover {border-bottom:1px #1398CA; font-weight:bold;}\n\n\n.viewer .button, .editorFooter .button{\ncolor: #333;\nborder: 1px solid #333;\n}\n\n.viewer .button:hover,\n.editorFooter .button:hover, .viewer .button:active, .viewer .highlight,.editorFooter .button:active, .editorFooter .highlight{\ncolor: #fff;\nbackground: #333;\nborder-color: #333;\n}\n\n.tiddler .viewer {line-height:1.45em;}\n.title {color:#222; border-bottom:1px solid#222; font-family:'Lucida Grande', Verdana, Sans-Serif; font-size:1.5em;}\n.subtitle, .subtitle a { color: #999999; font-size: 0.95em;margin:0.2em;}\n.shadow .title{color:#999;}\n\n.toolbar {font-size:90%;}\n.selected .toolbar a {color:#999999;}\n.selected .toolbar a:hover {color:#333; background:transparent;border:1px solid #fff;}\n\n.toolbar .button:hover, .toolbar .highlight, .toolbar .marked, .toolbar a.button:active{color:#333; background:transparent;border:1px solid #fff;}\n\n/***\n!Sidebar\n***/\n#sidebar { margin-bottom:2em !important; margin-bottom:1em; right:0;\n}\n\n/***\n!SidebarOptions\n***/\n#sidebarOptions { padding-top:2em;background:#f3f3f3;padding-left:0.5em;}\n\n#sidebarOptions a {\n color:#333;\n background:#f3f3f3;\n border:1px solid #f3f3f3;\n text-decoration: none;\n}\n\n#sidebarOptions a:hover, #sidebarOptions a:active {\n color:#222;\n background-color:#fff;border:1px solid #fff;\n }\n\n#sidebarOptions input {border:1px solid #ccc; }\n\n#sidebarOptions .sliderPanel {\n background: #f3f3f3; font-size: .9em;\n}\n\n#sidebarOptions .sliderPanel input {border:1px solid #999;}\n#sidebarOptions .sliderPanel .txtOptionInput {border:1px solid #999;width:9em;}\n\n#sidebarOptions .sliderPanel a {font-weight:normal; color:#555;background-color: #f3f3f3; border-bottom:1px dotted #333;}\n\n\n#sidebarOptions .sliderPanel a:hover {\ncolor:#111;\nbackground-color: #f3f3f3;\nborder:none;\nborder-bottom:1px dotted #111;\n}\n/***\n!SidebarTabs\n***/\n .listTitle {color:#222;}\n#sidebarTabs {background:#f3f3f3;}\n\n#sidebarTabs .tabContents {background:#cfcfcf;}\n\n#sidebarTabs .tabUnselected:hover {color:#999;}\n\n#sidebarTabs .tabSelected{background:#cfcfcf;}\n\n#sidebarTabs .tabContents .tiddlyLink, #sidebarTabs .tabContents .button{color:#666;}\n#sidebarTabs .tabContents .tiddlyLink:hover,#sidebarTabs .tabContents .button:hover{color:#222;background:transparent; text-decoration:none;border:none;}\n\n#sidebarTabs .tabContents .button:hover, #sidebarTabs .tabContents .highlight, #sidebarTabs .tabContents .marked, #sidebarTabs .tabContents a.button:active{color:#222;background:transparent;}\n\n#sidebarTabs .txtMoreTab .tabSelected,\n#sidebarTabs .txtMoreTab .tab:hover,\n#sidebarTabs .txtMoreTab .tabContents{\n color: #111;\n background: #f3f3f3; border:1px solid #f3f3f3;\n}\n\n#sidebarTabs .txtMoreTab .tabUnselected {\n color: #555;\n background: #AFAFAF;\n}\n\n\n\n/***\n!Tabs\n***/\n.tabSelected{color:#fefefe; background:#999; padding-bottom:1px;}\n .tabSelected, .tabSelected:hover {\n color: #111;\n background: #fefefe;\n border: solid 1px #cfcfcf;\n}\n\n .tabUnselected {\n color: #999;\n background: #eee;\n border: solid 1px #cfcfcf;\n padding-bottom:1px;\n}\n.tabUnselected:hover {text-decoration:none; border:1px solid #cfcfcf;}\n.tabContents {background:#fefefe;}\n\n\n\n\n\n.tagging, .tagged {\nborder: 1px solid #eee;\nbackground-color: #F7F7F7;\n}\n\n.selected .tagging, .selected .tagged {\nbackground-color: #f3f3f3;\nborder: 1px solid #ccc;\n}\n\n.tagging .listTitle, .tagged .listTitle {\ncolor: #bbb;\n}\n\n.selected .tagging .listTitle, .selected .tagged .listTitle {\ncolor: #333;\n}\n\n.tagging .button, .tagged .button {\ncolor:#ccc;\n}\n.selected .tagging .button, .selected .tagged .button {\ncolor:#aaa;\n}\n\n.highlight, .marked {background:transparent; color:#111; border:none; text-decoration:underline;}\n\n.tagging .button:hover, .tagged .button:hover, .tagging .button:active, .tagged .button:active {\nborder: none; background:transparent; text-decoration:underline; color:#333;\n}\n\n\n\n.popup {\nbackground: #cfcfcf;\nborder: 1px solid #333;\n}\n\n.popup li.disabled {\ncolor: #000;\n}\n\n.popup li a, .popup li a:visited {\ncolor: #555;\nborder: none;\n}\n\n.popup li a:hover {\nbackground: #f3f3f3;\ncolor: #555;\nborder: none;\n}\n\n\n\n#messageArea {\n\nborder: 4px dotted #282826;\nbackground: #F3F3F3;\ncolor: #333;\nfont-size:90%;\n}\n\n#messageArea a:hover { background:#f5f5f5; border:none;}\n\n\n#messageArea .button{\ncolor: #333;\nborder: 1px solid #282826;\n}\n\n#messageArea .button:hover {\ncolor: #fff;\nbackground: #282826;\nborder-color: #282826;\n}\n\n\n\n\n\n\n.tiddler {padding-bottom:10px;}\n\n.viewer blockquote {\nborder-left: 5px solid #282826;\n}\n\n.viewer table, .viewer td {\nborder: 1px solid #282826;\n}\n\n.viewer th, thead td {\nbackground: #282826;\nborder: 1px solid #282826;\ncolor: #fff;\n}\n.viewer pre {\nborder: 1px solid #ccc;\nbackground: #f5f5f5;\n}\n\n.viewer code {\ncolor: #111; background:#f5f5f5;\n}\n\n.viewer hr {\nborder-top: dashed 1px #222; margin:0 1em;\n}\n\n.editor input {\nborder: 1px solid #ccc; margin-top:5px;\n}\n\n.editor textarea {\nborder: 1px solid #ccc;\n}\n\nh1,h2,h3,h4,h5 { color: #282826; background: transparent; padding-bottom:2px; font-family: Arial, Helvetica, sans-serif; }\nh1 {font-size:18px;}\nh2 {font-size:16px;}\nh3 {font-size: 14px;}\n/*}}}*/